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 Grawitacja, gęstość, tarcie, sprężystość w grach

    Gdy już uruchomimy silnik fizyki to musimy się wtedy martwić wieloma problemami naraz. Już tak łatwo nie uciekniemy od grawitacji, tarcia, sprężystości oraz gęstości poszczególnych obiektów. No i dobrze - wreszcie dzieje się coś ciekawego...

corona_sdk_57.jpg     Posłużymy się przykładem małej piłki plażowej spadającej na białe podłoże. Kod jest w poprzednim artykule więc go nie powtarzam.

Współczynnik grawitacji w grach

Do naszego kodu zaraz po physics.start() dodajmy jeszcze parametr:

 physics.setGravity(0,9.8 

 Gdzie pierwszy parametr to grawitacja w osi x a drugi w y. Oczywiście my skorzystamy z grawitacji w osi y, by symulować otaczający nas świat. Parametr 9.8 odpowiada ziemskiemu współczynnikowi grawitacji.

Jak można testować program? Zanim przejdziemy dalej polecam wykonać kilka testów:

  • physics.setGravity(0,1 - piłeczka bardzo powoli będzie spadać. Przyciąganie na tej planecie jest bardzo słabe
  • physics.setGravity(0,40 - piłeczka pogna jak szalona. Dobrze, że u nas przyciąganie nie jest tak silne, bo ciężko by było chodzić
  • physics.setGravity(0,-9.8 - piłeczka poleci... ale do góry! Co jest grane! Ta planeta raczej odpycha niż przyciąga!  Ujemne wartości sprawiają, że panuje tu antygrawitacja 
  • physics.setGravity(9.8,0 - piłeczka poleci... zaraz zaraz w prawo zamiast w dół. No cóż jak świat fantazyjny to i boczna grawitacja może się zdażyć.

Sprężystość obiektów

    Dodając dany obiekt do świata fizyki definiujemy podstawowe parametry. Jednym z nich jest sprężystość - bounce, która domyślnie ma wartość 0,2.

Zobaczmy jakie zmiany wywoła manipulowanie tym parametrem:

  • physics.addBody(pilka_plazowa_mala, {density=1friction=0.5bounce=0}) gdy nadamy parametrowi bounce wartość 0 to nasza piłka spadnie jak worek z piaskiem. Oczywiście podłoże też musi mieć bounce=0
  • physics.addBody(pilka_plazowa_mala, {density=1friction=0.5bounce=1})  Teraz to już wykraczamy poza świat realny - piłeczka będzie cały czas się odbijała w nieskończoność. Po upuszczeniu jej będzie wracała w to lub prawie to samo miejsce skąd była upuszczona.
  • physics.addBody(pilka_plazowa_mala, {density=1friction=0.5bounce=1})  Teraz to jest już całkowite science fiction! Piłka z każdym upadkiem nabiera prędkości. Uwaga zaraz zniknie nam z pola widzenia i coraz rzadziej będzie do nas zawijać...

Gęstość obiektów

Gęstość obiektów definiuje parametr density i wartość 1 oznacza gęstość wody a poniżej to lżejsze przedmioty zaś więcej to cięższe takie jak np. żelazo.

Tarcie

Tarcie wyznacza parametr friction.

Gęstość oraz tarcie dokładniej omówimy podczas zderzeń z innymi obiektami, bo w przykładzie spadania piłki ciężko jest zaobserwować jakieś zmiany.

Czytaj dalej: Fizyka w grach 2d - 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