Tworzenie labiryntu 3D w GM
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.
Spis treści
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