Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C/SDL2] Pomysł na właściwe wyświetlanie rect'ów sprite'ów

Ostatnio zmodyfikowano 2022-01-26 18:29
Autor Wiadomość
dominicuss
Temat założony przez niniejszego użytkownika
[C/SDL2] Pomysł na właściwe wyświetlanie rect'ów sprite'ów
» 2022-01-25 21:15:54
Cześć, mam taka funkcje i chce wyświetlać/rysować sprite zależnie od podania SDL_Rect (jeśli jest to rysować jeśli nie to stworzyć w funkcji i rysować), obecnie nie mam pomysłu... myślałem nad podaniem wskaźników do srect i drect i gdy w funkcji podam NULL to wyświetli sprite.rect
w skrócie chce narysować albo srect albo sprite.rect i analogicznie drect... kod w C. Podejrzewam że rozwiązanie jest trywialne, ale z jakiegoś powodu szukam drogi naokoło.


C/C++
void sprite_draw( SDL_Renderer * renderer, Sprite sprite, SDL_Rect srect, SDL_Rect drect )
{
   
srect.x = sprite.rect.x;
   
srect.y = sprite.rect.y;
   
srect.w = sprite.rect.w;
   
srect.h = sprite.rect.h;
   
   
drect.x = sprite.x;
   
drect.y = sprite.y;
   
drect.w = sprite.w;
   
drect.h = sprite.h;
   
   
SDL_RenderCopy( renderer, sprite.img, & srect, & drect );
}
P-179233
DejaVu
» 2022-01-25 22:07:11
Niestety nie rozumiem ani co chcesz osiągnąć ani sensu kodu, który wkleiłeś... pewnie inni też nie zrozumieją o co Ci chodzi.
P-179234
dominicuss
Temat założony przez niniejszego użytkownika
» 2022-01-26 14:58:26
W zasadzie sam sobie odpowiadam... zrobiłem rozwiązanie ze wskaźnikami, ale ono nie wydaje mi się dobre i dodatkowo potrzebuję więcej zmiennych. No tak jak mówiłem szukam drogi naokoło :D

C/C++
void sprite_draw( SDL_Renderer * renderer, Sprite sprite, SDL_Rect * srect, SDL_Rect * drect )
{
   
SDL_Rect src, tgt;
   
if( srect == NULL )
   
{
       
src = sprite.rect;
   
}
   
else
   
{
       
src = * srect;
   
}
   
if( drect == NULL )
   
{
       
tgt.x = sprite.x;
       
tgt.y = sprite.y;
       
tgt.w = sprite.w;
       
tgt.h = sprite.h;
   
}
   
else
   
{
       
tgt = * drect;
   
}
   
   
SDL_RenderCopy( renderer, sprite.img, & src, & tgt );
}
P-179235
pekfos
» 2022-01-26 18:29:36
Może
C/C++
SDL_RenderCopy( renderer, sprite.img, srect ? srect : &sprite.rect, drect ? drect : &sprite.rect );
P-179236
« 1 »
  Strona 1 z 1