Ta strona stosuje pliki cookies. Poczytaj co to jest w polityka cookies



Tworzenie gier 2D i 3D
Animacja 2d
Grafika 3D
Tworzenie muzyki

Kącik początkującego

Gimp Jak wykonać ruch sinusoidalny

    Czasami będziemy potrzebowali, by nasz obiekt, np. wrogi statek powietrzny poruszał się ruchem sinusoidalnym. Możemy go w dość łatwy sposób uruchomić u siebie. Zobaczmy jak to zrobić.

    Oczywiście do uruchomienia takiego ruchu wykorzystamy funkcję trygonometryczną jaką jest sinus. By wywołać taki ruch na wzór wykresu tejże funkcji trzeba przemieszczać obiekt w osi Y tym co zwraca sinus ewentualnie powiększone o określoną wartość tzw. amplitudę zaś w osi X należy przesuwać jednostajnie w określonym kierunku w lewo lub w prawo.

Idea jest dość prosta zajmijmy się więc jej realizacją.

             local pilka_plazowa_mala display.newImage("pilka_plazowa_mala.png")

        
punkt_startowy_y=
250

        pilka_plazowa_mala
.x=
0
        pilka_plazowa_mala
.y=
0
        
       i
=
0
      amplituda
=
200

        
        
function przesun
()          
                  pilka_plazowa_mala
.xpilka_plazowa_mala.x+
10
                  pilka_plazowa_mala
.y=punkt_startowy_y+amplituda*math.sin(i
)
                  
i=i+
0.3
                  
if i==360 then i=
0   end
                  
if pilka_plazowa_mala.x>700 then pilka_plazowa_mala.x=-
50                   end
    end

Runtime
:addEventListener("enterFrame"przesun)

 Na początku ustawiamy punkt startowy, czyli przesunięcie względem osi Y na 250 pikseli, bo przecież gdy zaczniemy od 0 to połowa sinusiody nie będzie widoczna i amplitudę czyli wysokość sinusoidy oraz jej gęstość.

Następnie w funkcji przesun() przesuwamy względem osi x równomiernie o 10 pikseli za każdym odświeżeniem ekranu, co załatwia śledzenie zdarzenia "enterFrame". W niemal tym samym czasie przemieszczamy naszą piłkę względem osi Y zaczynając od punktu startowego mnożąc wynik funkcji sinus(kąt_od_zera_do_360) przez wcześniej ustawioną amplitudę. Jej gęstość możemy zmienić zmieniając parametr i, czyli linijka i=i+0.3 gdzie zwiększanie warości spowoduje, że wyświetlane będzie więcej cykli zaś zmniejszanie spowoduje rozciągnięcie sinusoidy.

 

Czytaj dalej: Jak poruszać obiekt po okręgu?
Warning: include_once(includes/rss_fetch.php) [function.include-once]: failed to open stream: No such file or directory in /home/ekoinst/domains/pcwiedza.pl/public_html/tworzenie-gier/includes/funkcje.php on line 548

Warning: include_once() [function.include]: Failed opening 'includes/rss_fetch.php' for inclusion (include_path='.:/opt/alt/php52/usr/share/pear:/opt/alt/php52/usr/share/php') in /home/ekoinst/domains/pcwiedza.pl/public_html/tworzenie-gier/includes/funkcje.php on line 548

Różne

copyright © Pcwiedza.pl