Realistyczna fizyka piłki w GM: Różnice pomiędzy wersjami
(→Rynny) |
|||
Linia 64: | Linia 64: | ||
I to wszystko. | I to wszystko. | ||
+ | |||
+ | {{Funkcje|[[move_bounce_solid()]]}} | ||
+ | |||
[[Kategoria:Kursy i tutoriale]] | [[Kategoria:Kursy i tutoriale]] | ||
[[Kategoria:Kursy i tutoriale dla użytkowników GM]] | [[Kategoria:Kursy i tutoriale dla użytkowników GM]] | ||
[[Kategoria:Artykuły dla średniozaawansowanych]] | [[Kategoria:Artykuły dla średniozaawansowanych]] |
Aktualna wersja na dzień 12:15, 21 lis 2006
Jaklub
Artykuł ten pokaże, jak zaprogramować realistyczne toczenie się piłki w Game Makerze. Zrealizowanie rzeczy opisanych w artykule nie wymaga posiadania zarejestrowanego Game Makera.
Spis treści
Realizacja
Potrzebujemy tylko jednego obiektu, mianowicie naszej kulki. W stepie wpisujemy skrypt:
if speed>0 then speed-=0.5 if speed<0.5 and speed>0 then speed=0
Jak można się domyślić, dzięki temu skryptowi kulka ciągle zwalnia.
W evencie Keyboard Right wstawiamy kod:
if hspeed<8 then hspeed+=1
Czyli jeśli kulka nie osiągnie maksymalnej szybkości, przyspiesza.
Keyboard Left:
if hspeed>-8 then hspeed-=1
Keyboard Up:
if vspeed>-8 then vspeed-=1
Keyboard Down:
if vspeed<8 then vspeed+=1
Dzięki powyższym skryptom poruszamy kulkę.
Odbijanie
Chcemy, żeby kulka odbijała się od ścian? Proste. Mur musi mieć włączoną opcję solid.
Kolizja kulki z murem - skrypt:
move_bounce_solid(1)
Rynny
Dorabianie rynn również jest proste.
Z rynną poziomą
Kolizja kulki z tą rynną:
if y<other.y-8 vspeed+=1 else if y>other.y+8 vspeed-=1 else { y=other.y vspeed=0 }
Z rynną pionową
Kolizja kulki z tą rynną:
if x<other.x-8 hspeed+=1 else if x>other.x+8 hspeed-=1 else { x=other.x hspeed=0 }
I to wszystko.