Tworzenie labiryntu 3D w GM

Klikipedia - klikowa encyklopedia
Skocz do: nawigacji, wyszukiwarki
Autor.jpg
Autorem tego artykułu jest
Jaklub

Ten artykuł pokaże, jak stworzyć trójwymiarowy labirynt w programie Game Maker. Konieczne jest posiadanie wersji zarejestrowanej, która udostępnia funkcje wyświetlania grafiki w 3D.

Realizacja

Stwórzmy sprity - wystarczy okrąg i kwadrat, obydwa w rozmiarze 32x32 px.

Teraz tła (backgrounds), czyli tekstury. Tekstury muszą być w rozmiarze potęgi liczby 2 (2x2, 4x4, 8x8, 16x16, 32x32,64x64, 128x128, 256x256 itd). Ja zalecam rozmiar 256x256 pikseli. Potrzebujemy na potrzeby naszej gry 3 takie tekstury.

Teraz pora na silnik. Tworzymy obiekt o nazwie kamera

W evencie ROOM START piszemy kod:

d3d_start()

W evencie ROOM END piszemy kod:

d3d_end()

W najważniejszym evencie DRAW piszemy kod:

d3d_set_projection(kulka.x+16,kulka.y+160,100,kulka.x+16,kulka.y+16,16,0,0,1)

Uff. Trzeba było sporo wstukiwać z klawiatury. Chyba, że użyłeś opcji kopiuj. :)

Ale koniec żartów.

Kulka

Tworzymy nowy obiekt o nazwie kulka i nadajemy mu sprite okrągu.

W evencie DRAW piszemy:

ttt=background_get_texture(uua)

(uua to nazwa backgrounda z teksturą kulki.)

draw_set_color(c_white)
d3d_draw_ellipsoid(x,y,0,x+32,y+32,32,ttt,1,1,24)

W evencie KEYBOARD RIGHT piszemy skrypt:

if place_free(x+4,y) then x+=4

W evencie KEYBOARD LEFT piszemy skrypt:

if place_free(x-4,y) then x-=4

W evencie KEYBOARD DOWN piszemy skrypt:

if place_free(x,y+4) then y+=4

W evencie KEYBOARD UP piszemy skrypt:

if place_free(x,y-4) then y-=4

To koniec kulki - pora na kolejny obiekt.

Ściany

Tworzymy obiekt o nazwie murek i dajemy mu sprite kwadratu.

Zaznaczamy w nim koniecznie funkcję SOLID.

W evencie DRAW piszemy skrypt:

ttt=background_get_texture(uua)
(uua to nazwa tekstury murka)
draw_set_color(c_white)
d3d_draw_block(x,y,0,x+32,y+32,32,ttt,1,1)

Tworzymy obiekt i dajemy mu nazwę end, jego spritem ma być kulka.

Event DRAW:

ttt=background_get_texture(uua)
(uua to nazwa tekstury końca.)
draw_set_color(c_white)
d3d_draw_cone(x,y,0,x+32,y+32,64,ttt,1,1,1,24)

Event COLLISION (kolizja z obiektem kulka):

show_message('Wygrałeś moją pierwszą grę 3D! Hurra!')
room_restart()

Tworzenie levelu

Ostatnia rzecz: level. Z tym sobie poradzisz - najpierw wstaw obiekt kamera, następnie ustaw labirynt ze ścian, postaw kulkę i obiekt end. Potem kliknij zakładkę VIEWS i włącz viewa 0.

I tak oto powstała twoja pierwsza gra 3D. Proste, nieprawdaż? :D