[SDL, C++] Odbicie obiektu po kolizi
Ostatnio zmodyfikowano 2011-08-11 17:22
dudero Temat założony przez niniejszego użytkownika |
[SDL, C++] Odbicie obiektu po kolizi » 2011-08-11 16:36:48 Witam, Mam taki problem, program rozpoznaje kolizję dwóch prostokątów prawidłowo, ale chciałbym żeby po kolizji jeden prostokąt został przesunięty o jakiś wektor np. Przed kolizją: prostokat.x = 100; Po kolizji: prostokat.x = 200; Jeśli napiszę coś takiego to niestety prostokąty nachodzą na siebie i nie otrzymuje oczekiwanej zmiany: prz.x = 100; if( check_collision( player, prz ) == true ) prz.x = 200; |
|
DejaVu |
» 2011-08-11 16:39:20 |
|
dudero Temat założony przez niniejszego użytkownika |
» 2011-08-11 16:56:36 Po takiej operacji prostokąt się nie przesuwa. Dwa prostokąty nakładają się na siebie tak jakby kolizja nie występowała. Może ma na to jakiś wpływ to, że mój prostokąt tak naprawdę jest bitmapą, już tłumaczę o co mi chodzi: SDL_Surface * przeszkoda = NULL; przeszkoda = SDL_LoadBMP( "przeszkoda.bmp" ); prz.x = 100; SDL_BlitSurface( przeszkoda, NULL, ekran, & prz );
if( check_collision( player, prz ) == true ) |
|
DejaVu |
» 2011-08-11 17:11:59 Jak w pętli wczytujesz grafikę i ustawiasz położenie to nic się przesuwać nie będzie. Poza tym kolizje w grach to temat złożony i wymaga wielu przemyśleń oraz kompromisów typu 'łatwiej, lepiej czy wydajniej'. |
|
dudero Temat założony przez niniejszego użytkownika |
» 2011-08-11 17:15:42 Zdaję sobie sprawę, że kolizję to temat złożony. Ja po prostu chcę żeby po kolizji dwóch prostokątów jeden się przesuwał. Wywnioskowałem z twojej wypowiedzi, że za pomocą bitmapy tego nie zrobię tak ? Jeśli masz jakiś prostszy pomysł to chętnie go wypróbuje. |
|
DejaVu |
» 2011-08-11 17:22:07 Bitmapa... to tylko reprezentacja graficzna obiektu. W praktyce sprawdzasz czy kolidują prostokąty/okręgi czy inne figury, które sobie oprogramujesz.
Jeżeli umiesz wykryć kolizję oraz przesuwać obiekty, które chcesz na scenie to resztę powinieneś sam sobie umieć napisać (co jest najtrudniejsze). Wątpię czy komuś się będzie chciało Ci dać kod, który Ciebie zadowoli. Spróbuj poszukać jakichś tutoriali jeżeli samemu nie możesz nic wymyślić lub poczekać ja kogoś innego wypowiedź... |
|
« 1 » |