[C/SDL2] Pomysł na właściwe wyświetlanie rect'ów sprite'ów
Ostatnio zmodyfikowano 2022-01-26 18:29
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. 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 ); }
|
|
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. |
|
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 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 ); }
|
|
pekfos |
» 2022-01-26 18:29:36 Może SDL_RenderCopy( renderer, sprite.img, srect ? srect : &sprite.rect, drect ? drect : &sprite.rect );
|
|
« 1 » |