Realistyczna fizyka piłki w GM: Różnice pomiędzy wersjami

Klikipedia - klikowa encyklopedia
Skocz do: nawigacji, wyszukiwarki
(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ń 11:15, 21 lis 2006

Autor.jpg
Autorem tego artykułu jest
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.

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.

informacje na temat funkcji, użytych w artykule: move_bounce_solid()