Jak poruszać obiekt po spirali
Pisałem już w poprzednich artykułach o tym jak poruszać naszą piłkę po okręgu i po elipsie w Androidzie. Teraz nadszedł czas by opisać sposób na ruch po spirali.
Mając już zrealizowany ruch po okręgu czy elipsie możemy w łatwy sposób przerobić go na przemieszczanie się po spirali. Trzeba tylko zadbać o to, by promień z każdym przesunięciem się zmieniał się np. zmniejszał.
Przerobimy teraz nasz program tak, by najpierw piłka poruszała się w ruchu spiralnym do środka a po osiągnięciu promienia równego zero przeszła na wartości ujemne co oznacza, że znów promień będzie się zwiększał.
local pilka_plazowa_mala = display.newImage("pilka_plazowa_mala.png")
srodek_x=250
srodek_y=250
pilka_plazowa_mala.x=srodek_x
pilka_plazowa_mala.y=srodek_y
i=0
promien=200
function przesun()
pilka_plazowa_mala.x=srodek_x+promien*math.sin(i)
pilka_plazowa_mala.y=srodek_y+promien*math.cos(i)
i=i+0.2
promien=promien-1
if i==360 then i=0 end
end
Runtime:addEventListener("enterFrame", przesun)
Zobaczmy, że ta właśnie zmiana promien=promien-1 spowoduje, że przy każdym uruchomieniu promień będzie miał coraz to mniejszą wartość aż po ujemne. Można oczywiście cały czas bazować na warościach dodatnich lub też nie dopuścić, by piłka opuściła ekran ale to już inny temat.
Teraz piłka będzie poruszać się ruchem spiralnym napierw do środka a później na zewnątrz, by w końcu zniknąć z ekranu. |
Ruch spiralny po elipsie
By dokonać tego samego ale na episie wystarczy zmodyfikować program ruchem po elipsie. Trzeba zmienić:
promien_x=200
promien_y=100
function przesun()
pilka_plazowa_mala.x=srodek_x+promien_x*math.sin(i)
pilka_plazowa_mala.y=srodek_y+promien_y*math.cos(i)
i=i+0.2
promien_x=promien_x-1
promien_y=promien_y-1
if i==360 then i=0
end
Zatem dodajemy zmianę nie samego promienia tylko promienia w osi X i Y. Oczywiście wartości tych zmian mogą być różne.
Na zdjęciu ukazuję w jaki sposób będzie się poruszać okrąg. Najpierw będzie to ruch eliptyczny w osi poziomej natomiast, gdy wartości promieni staną się ujemne wówczas elipsa się odwróci. |
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