실행화면 스냅샷.

GameMaker Studio 1.4로 '게임메이커 프로그래머' 책 보며 예제 8-10장 따라하기.

8장 넓은 맵을 가진 게임 만들기:

* 시야 만들기:
- Room Properties 창 Settings탭에서 Width: 2048, Height: 1000으로 하여 전체 맵을 크게 만들기,
- Views 탭에서 Enable the use of Views(이것만 누르면 화면이 검게 되어 보이지 않음-플러그 꼽기), Visible when room starts(화면을 룸 크기 만큼 확장-전원버튼 누르기) 체크. Object following에 objCat, Hbar: 512, Vbar: 384로 설정(화면 좌우 끝과 대상 Obj 사이가 Hbar에 입력한 거리만큼 남았을 때, 화면 상하 끝과 Vbar 입력 거리만큼 남았을 때 시야 움직임)하여 화면이 고양이 따라다니게 만들기.

* 방향 전환시 이미지 바꾸기: Left,Right,Up,Down 이벤트에 각각 Main1-Change Sprite 액션 추가, sprite 선택 아이콘 클릭한 뒤 각 방향에 맞는 스프라이트 적용.

* 열쇠를 얻으면 창살안 물고기가 그냥 물고기로 바뀌게 하기:
objCat에 Collision-objKey 이벤트 추가, Main1-Change Instance 액션 추가, Applies to: Object, objFish2(창살안 물고기-Solid) 선택, change into: objFish1(그냥 물고기) 선택하여 열쇠를 얻으면 창살안 물고기가 그냥 물고기로 변하게 처리.
Main1-Destroy Instance(Applies to: Other) 액션 추가하여 닿은 열쇠 사라지게 처리.

16/8/13 토


밤송이 피하기 게임 실행 스냅샷.

9장 밤송이 피하기 게임 만들기:

* 임의 위치에 밤송이 Obj 생성하기:
- objControl 생성, Create 이벤트 추가, Main2-Set Alarm 액션 추가, number of steps: 30(1초)로 설정.
- Alarm-Alarm 0 이벤트 추가, Main1-Create Instance 액션 추가, object: objSpike, x: random(room_width)로 설정. Main2-Set Alarm 액션 추가, number of steps: 30(1초)로 설정. 1초마다 계속 밤송이 생성.

* 화면밖으로 나간 오브젝트 제거:
objSpike에 Other-Outside room 이벤트 추가, Main1-Destroy Instance 액션 추가.

* 주인공 밤송이와 충돌시 게임오버 텍스트 띄우기:
objMan에 Collision-objSpike 이벤트 추가, Main1-Create Instance 액션 추가, object: objGameOver, x: 288, y: 320으로 설정.

* 주인공 밤송이와 충돌시 찡그린 모습으로 바꾸기:
objMan의 Collision-objSpike 이벤트에 Main1-Change Instance 액션 추가, change src: objManDead 선택.

그외 추가로 밤송이가 화면밖으로 나갈 때 점수 올리기, 주인공이 밤송이와 충돌시 4초간 대기한 뒤 점수 초기화하고 게임 재시작하기 처리.


성 지키기 실행화면 스냅샷.

10장 마우스로 성을 지키는 게임 만들기:

* 임의 위치에 적 구름 obj 생성하기:
- objControl 생성, Create 이벤트 추가, Main2-Set Alarm 액션 추가, number of steps: 45로 설정.
- Alarm-Alarm 0 이벤트 추가, Main1-Create Instance 액션 추가,
object: objEnemy, x: random(room_width), y: choose(0, 768)로 설정.
Main1-Create Instance 액션 추가,
object: objEnemy, x: choose(0, 1024), y: random(room_height)로 설정.
Main2-Set Alarm 액션 추가, number of steps: 45로 설정. 45 스텝(30스텝=1초)마다 계속 적 구름 2개씩 생성.

* 마우스 그래픽 바꾸고 원래 커서 감추기:
objControl의 Create 이벤트에 extra-Set Cursor 액션 추가, sprite: mousePoint(만들어둔 마우스 커서용 png파일 스프라이트), cursor: don't show 선택.

* 다른 오브젝트를 향해 움직이는 오브젝트:
objEnemy에 Create 이벤트 추가, Move-Move Towards 액션 추가, x, y: objEnemyMovTarget.x, y(처음엔 objCastle.x, y로 설정했었는데 적이 성에 닿을 경우 성을 파괴된 성 오브젝트로 바꾸니 적 구름들이 이동할 목표를 잃어 에러가 나는 바람에 빈 오브젝트를 만들어 'objEnemyMovTarget'라 명명하고 그걸 성의 중심부에 위치시키고 그곳을 향해 가도록 설정하다), speed: random(2)+2 (결과적으로 2~4 사이의 속도로 움직이게 된다)로 설정.

* 적 구름 오브젝트 클릭시 폭발효과 나오게 하기:
objEnemy에 Left Pressed 이벤트 추가, Draw-Create Effect 액션 추가, type: explosion, Relative에 체크.
Main1-Destroy Instance 액션(Applies to: Self) 추가하여 클릭된 적 구름 사라지게 처리.

* 오브젝트 중심 재설정하기: objMousePoint, objEnemy의 Sprite-Edit로 Sprite Properties 창 띄운 뒤 Origin x: 48, y: 48로 적용하여 오브젝트 위치를 오브젝트의 중심으로 설정하다.