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 Skalowanie i obrót obiektów Corona SDK

    Niekiedy w grach obiekty, które wyświetlamy na ekranie smartfonów potrzeba nieco obrócić lub też przeskalować. W tym artykule ukażemy jak tego dokonać w silniku do gier Corona SDK.

Obrót obiektów

Do tego celu służy specjalna funkcja o nazwie:
object:rotate(deltaKąt)

DeltaKąt to liczba stopni o jakie zostanie obiekt obrócony np. o 90 stopni.
Zobaczmy to w praktyce.

corona_sdk_14.jpg

Dopiszmy do naszego kodu dodatkową linijkę:
pilka_plazowa:rotate(90)

i zobaczmy obok na efekt działania - piłka obróci się o zadany kąt.


Pamiętajmy też o drugiej możliwości o wykorzystaniu parametru rotation przypisanego do konkretnego obiektu.

Różnica między funkcją rotate() a parametrem rotation jest taka, że gdy zastosujemy ten drugi to obiekt zostanie obrócony o zadany kąt względem swojego pierwotnego położenia czyli np. konkretnie do 45 stopni. Gdy zastosujemy funkcję rotate() wówczas kąt ten doda się lub odejmie od obecnego.

Podsumowując zakładam, że obiekt jest obrócony wstępnie o 90 stopni. Wywołanie

  • obiekt:rotate(45) sprawi, że obiekt będzie obrócony o 90+45=135 stopni.
  • gdy natomiast skorzystamy z przypisania objekt.rotation=45 to kąt będzie wynosił dokładnie 45 stopni.

Skalowanie obiektów

Do skalowania służy funkcja:

scale(skalaX, skalaY)

Pierwszy parametr sprawi, że obiekt zostanie przeskalowany wzgędem X zaś drugi parametr będzie dawał efekt przeskalowania względem osi Y.

Pomniejszmy więc obiekt dwukrotnie względem osi X i jednocześnie powiększmy też dwukrotnie względem Y. Musimy zatem wywołać funkcję scale z parametrami:

pilka_plazowa:scale(0.5, 2)


corona_sdk_15.jpg
Efekt takiego działania jest widoczny obok.
corona_sdk_16.jpg

Nic nie stoi na przeszkodzie, by piłkę potraktować jeszcze raz naszą funkcją czyli raz za razem wpisujemy:

pilka_plazowa:scale(0.5, 2)
pilka_plazowa:scale(0.5, 2)


corona_sdk_17.jpg

Zobaczmy jednak co się stanie, gdy zamiast funkcji scale() zastosujemy atrybut xScale i yScale.
Dopisujemy zatem do kodu dwie linijki:

pilka_plazowa.xScale=0.25
pilka_plazowa.yScale=0.25

Zauważmy, że sposób ten znowu tzn. podobnie jak przy rotacji nie zważa na poprzedni stan tylko bezwzględnie stosuje się do przypisanego parametru, czyli w naszym przypadku zmniejsza obiekt czterokrotnie względem osi x i y.



Czytaj dalej: Jak wyświetlić obrazek - Android
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