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 Niestandardowe kształty obiektów w grach

     Oprócz prostokątnego oraz kolistego możemy przypisać obrazkowi bardziej złożony kształt stosując parametr shape. Oczywiście wcześniej musimy uruchomić zmienną z wymiarami obrazku.

     Załadujmy do naszego przykładu dodatkowy obiekt - trójkąt. Bezpośrednie dodanie do silnika tego obiektu następuje nieprawidłowe interpretowanie trójkąta jako prostokąt. By temu zaradzić wystarczy przypisać zmiennej shape punkty obrazku. Zobaczmy jak tego dokonać.

Dodajemy rysunek do projektu a następnie przeciągamy obiekt do kodu, ustalamy pozycję y na 650 pikseli i następnie uruchommy naszą aplikację.


corona_sdk_63.jpg

Warto zauważyć, że w ten sposób tworzymy obiekt o prostokątnych kształtach, co nie odzwierciedla taktycznego kształtu przedmiotu.

Aby uzyskać prawdziwy trójkąt trzeba uwzględnić faktyczne wymiary naszego trójkąta a dokonać tego możemy z pomocą współrzędnych, które musimy sami wyznaczyć.  

corona_sdk_65.jpg

Cała trudność polega na tym, że musimy wyznaczyć je względem środka obiektu, czyli punkty położone powyżej np. lewy górny róg będzie zawierał wartości ujemne. 

Gdy spróbujemy wyznaczyć współrzędne za pomocą edytora nie uwzględniając tego, że środek obiektu jest punktem zerowym to niestety próba ta skończy się przesuniętym obiektem w prawo...

Zwykłe współrzędne możemy wyznaczyć za pomocą edytora - klikamy dwukrotnie na dany obrazek i uruchomi się on w podglądzie "preview". Teraz gdy ustawimy kursor myszy na punktach narożnych to u góry będziemy mieli wypisane ich współrzędne, co widać obok na zdjęciu, gdzie kursor jest na górnym punkcie i jego wartość wynosi odpowiednio x=150 a y=0.

corona_sdk_64.jpg

 Zobaczmy jak to będzie wyglądało.

Niestety jak już wspomniałem trójkąt będzie przesunięty z powodu tego, że został on wyznaczony bez uwzględnienia tego, że jego kształt trzeba liczyć od środka a nie od lewej i górnej krawędzi, ale to rozwiążemy później na razie sprawmy, by trójkąt został dodany do naszego programu.

Aby to zadziałało musimy do kodu dodać:

local trojkat display.newImage("trojkat.png")
trojkat.y=
650
local ksztalt_trojkata
={03001500300300
}

physics.addBody(trojkat, {density=0friction=1bounce=0.3shape=ksztalt_trojkata})

Czyli wstawiamy obrazek "trojkat.png" (polecam ściągnąć na dysk, dodać do projektu i przetestować u siebie) i przesuwamy go na sam dół w punkt y=650.

Następnie tworzymy nową zmienną, tablicę o nazwie ksztalt_trojkata z kolejno punktami x,y, x1,y1, x2,y2 wyznaczającymi kolejne wierzchołki naszego trójkąta.

W klejnym kroku dodajemy objekt do silnika fizyki za pomocą polecenia addBody z dodatkowym parametrem shape=ksztalt_trojkata czyli z naszą tablicą wyznaczającą współrzędne tegoż obiektu.

Problem jednak jest w tym, że ciało fizyczne nie pokrywa się z faktycznym obiektem, zatem piłki będą reagowały na niewidoczny (jeśli włączymy tryb normalny a nie uruchomieniowy) obiekt a nie na ten właściwy. Co należy zatem zrobić, by te figury się pokrywały? Oczywiście wyznaczyć właściwe punkty dla x,y, x1,y1, x2,y2.

Ale przecież nie jest to łatwe, bo z edytora będzie ciężko, gdyby to był prostokąt to może nie byłoby to takie trudne ale przy trójkącie nie mówiąc już o nieregularnych kształtach to probem staje się poważny. Co zatem zrobić?

Jedno z rozwiązań przedstawiam w kolejnym artykule zapraszam do lektury.

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