본문 바로가기
GameMaker강좌[GM8]/3D기능강좌

[게임메이커강좌-3D 강좌]간단한 3D 탈출 게임 만들기-2-게임 구성

by 타락카얀 2013. 5. 22.
728x90

 

 

 

 

기본적인 3D설정을 해보았으니 이제 게임을 다듬어봅시다.

 

 

(▲강좌에서 만들게 될 탈출 게임)

 

 

 


◈ 3D 벽(obj_wall_h,obj_wall_v)

 


일단 벽을 구성할 오브젝트 2개를 만듭니다.
한개는 가로로 배치할 것이고, 또 하나는 세로로 배치할 것입니다.

 

 

(▲벽 오브젝트)

 

마스크로 사용할 스프라이트를 지정하고, 플레이어(카메라)가 벽을 뚫고 지나갈 수 없도록
Solid를 체크합니다.

먼저 가로에 배치할 벽을 만들어봅시다.

 

 

(▲벽으로 사용할 텍스쳐이미지)

 

텍스쳐 이미지를 준비하고, Draw이벤트를 추가한 다음, 아래와 같이 입력합니다.

 

     //obj_wall_h - Draw이벤트
     draw_set_alpha(1);
     draw_set_color(c_white);

     texid=background_get_texture(back_wall);

     d3d_transform_add_translation(x,y,0);
     d3d_draw_wall(0,0,32,32,0,0,texid,1,1);//좌표를 가로 형태로 설정
     d3d_transform_set_identity();


참고로 좌표를 설정할때 마스크를 염두하면서 설정해야 실제 플레이 할때 좌표가 어긋나지 않습니다.

다음은 세로로 배치할 오브젝트도 구성해봅시다.
Draw이벤트를 추가한 다음, 아래와 같이 입력합니다.

 



     //obj_wall_v - Draw이벤트
     draw_set_alpha(1);
     draw_set_color(c_white);

     texid=background_get_texture(back_wall);

     d3d_transform_add_translation(x,y,0);
     d3d_draw_wall(0,0,32,0,32,0,texid,1,1);//좌표를 세로 형태로 설정
     d3d_transform_set_identity();


 

이제 벽이 완성되었네요.
제대로 작동되는지 벽을 배치하고 테스트해봅시다.

 

 

(▲그리드를 이용하면 배치하기가 편함)

 

 

(▲벽 배치 예)

 

만들어진 벽들은 위의 그림처럼 배치하시면 됩니다.
강좌에서 바닥과 천장은 룸크기만큼 늘렸지만, 벽의 크기만큼 설정하여, 룸에 하나씩 배치해도 됩니다.

 

 

 

 

 

 



◈다른 룸으로 이동시키기(obj_goal)

 


다음은 다음 룸으로 이동시킬 지점을 만들어 봅시다.

먼저 오브젝트를 하나 만들고 블럭형태로 만듭니다.
문처럼 만들면 되겠지요.

 

 

(▲다음 룸으로 이동할 통로. 이곳에 닿으면 다음룸으로 이동함)


먼저 텍스쳐로 이용할 이미지를 준비합니다.

 

 

(▲텍스쳐 이미지)

 

문으로 사용할 오브젝트는 모델만 표시하고, 룸 이동 설정은 카메라에서 합시다.
Draw이벤트를 추가하고 아래와 같이 입력합니다.

 



     //obj_goal-Draw이벤트
     draw_set_alpha(1);
     draw_set_color(c_white);

     texid=background_get_texture(back_door);

     d3d_transform_add_translation(x,y,0);
     d3d_draw_block(0,0,32,32,32,0,texid,1,1);
     d3d_transform_set_identity();



다음은 플레이어인 카메라 오브젝트로 이동해서 설정한 골 지점과 충돌시 다음 룸으로 이동하도록 설정합시다.
카메라 오브젝트에서 골 지점과의 충돌이벤트를 추가하고, 다음과 같은 코드를 입력합니다.

 



     //obj_cam - obj_goal 충돌이벤트
     room_goto_next();//다음 룸으로 이동함.



이것은 다음 룸으로 이동할 때 사용합니다.
하지만 특정 룸으로 이동하고 싶다면 room_goto(룸이름)을 사용하시면 됩니다.


 

 



◈추가 - 안개 설정

 


3D기능중에 안개를 설정하는 기능이 있는데, 이것은 한번만 실행시키면 됩니다.
그것을 적용해봅시다.

d3d_set_fog(enable,color,start,end)

enable : 안개기능 활성화
color : 안개 색
start : 안개가 시작되는 거리. 1부터 시작
end : 완전히 불투명하게 되는 지점.


카메라 오브젝트로 이동해서 Create이벤트에 아래와 같은 코드를 입력합니다.

 



     //obj_cam - Create이벤트
     d3d_set_fog(1,c_black,64,160);



게임으로 사용할 어느정도의 설정이 끝났네요.

이제 룸에 제대로 배치해보고 테스트 해봅시다.

 

 

(▲룸에 배치)

 

위에 G라고 되어있는 것은 골지점입니다. 이곳에 플레이어(카메라)가 닿으면 다음 룸으로 이동하게

되지요.

 

 

(▲테스트 화면)

 

음. 강좌를 쉽게 쓴다고 썼지만 어떠셨는지 모르겠네요.
여러분이 좀 더 응용하시면 멋진 게임을 만드실 수 있을 거에요.

 

 

 

 

 

-------응용예제------

 

3D-강좌-던전-1.gmk
다운로드

 

3D-강좌-던전-1.exe
다운로드

 

 

300x250

댓글