Skocz do zawartości

Efekt fali


Rekomendowane odpowiedzi

Witam napisałem sobie fale w oparciu o funkcje trygonometryczną sinus :)

Wszystko fajnie... rysuje sie... ale... no własnie ale... różnica poziomów między rysowanymi punktami jest zbyt mała i fala jest prawie niewidoczna (unosi się i opada w dół na całej szerokości ekranu zamiast "falować")

 

KOD:

GML
for (i = 0; i <= 32; i+=1)

{

l+=0.1

if l>359 then l = 1;

yy = (sin(degtorad(l)) * 8);

}

 

draw_primitive_begin(pr_trianglefan)

 

for (i = 0; i <= 32; i+=1)

{

draw_vertex_color(i * 32,700 + yy,c_blue,0.3);

}

 

draw_vertex_color(room_width,room_height,c_blue,0.3);

draw_vertex_color(0,room_height,c_blue,0.3);

 

draw_primitive_end();

 

żeby zwiększyć różnice poziomów między rysowanymi punktami musiał bym zwiększyć inkrementacje "l"... to jest proste... kłopot w tym że jak zwiększam l to fala zaczyna szaleć... faktycznie zaczyna ona falować tak jak należy ale wykonuje się ona zbyt szybko... tzn w 60 klatkach na sekunde widać tylko jakieś takie przeskakujące coś... nie wygląda to za ciekawie... nie mam już pomysłu jak rozwiązać mój problem... może wy coś doradzicie ?

Odnośnik do komentarza
Udostępnij na innych stronach

GML (create)
l = 0;

krok = room_width / 32;

amplituda = 20;

 

Ta fala jest bez przesunięcia fazowego w czase

GML (draw)
l += 0.1;

draw_primitive_begin(pr_trianglestrip)

for ( i = 0; i <= 32; i += 1 )

{

draw_vertex_color( i * krok, room_height, c_blue, 0.3 );

draw_vertex_color( i * krok, 700 + sin( l ) * sin( i ) * amplituda, c_blue, 0.3 );

}

draw_primitive_end();

 

 

a ta z przesunięciem fazowym w czase ( realistyczniejsza [ różnica też jest w tym drugim sinusie 'i' zamienione na 'l' ] )

GML (draw)
l += 0.1;

draw_primitive_begin(pr_trianglestrip)

for ( i = 0; i <= 32; i += 1 )

{

draw_vertex_color( i * krok, room_height, c_blue, 0.3 );

draw_vertex_color( i * krok, 700 + sin( l + i ) * sin( l ) * amplituda, c_blue, 0.3 );

}

draw_primitive_end();

 

Edit: wprowadziłem poprawki

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...