'Mostly Codeless Game Development' 보고 GameMaker Studio 1.4로 간단 게임 만들기 따라하기.
- 적은 일정 시간마다 아래로 떨어지는 폭탄을 발사하며 좌에서 우로 이동.
- 주인공은 화살표 좌우키로 좌우 이동, 스페이스키로 총알 발사.
- 적과 주인공은 화면 밖으로 나가면 반대편으로 다시 등장.
- 주인공이 적 총알에 맞거나 적이 주인공 총알에 맞으면 제거됨.
- 총알들은 화면 밖으로 나가면 제거.

18/10/14 일

* Player, Enemy, Ammo 스프라이트를 스프라이트 에디터로 만들기:
좌측 Sprites에 마우스 우클릭, Create Sprite 선택. Name: Player로 하고 Edit Sprite 클릭, 뜨는 창에서 Ctrl-N 누르면 창이 뜨는데 Width/Height 모두 32로 된 상태에서 OK 클릭. 생성된 Sprite 이름 부분을 더블클릭, Image Editor 창으로 넘어가는데 D: 그리기, E: 지우기, C: 스포이드툴, F: 채우기 등을 이용해 그림을 그리고 V자 모양 완료 아이콘을 누르고 나온다. 또 한번 완료 아이콘 누르고 나와 Sprite Properties 창 Collision Checking: Separate Collision masks 선택된 상태에서 아래 Modify Mask 버튼 클릭해 충돌영역 마스크를 지정해 준다. 그리고 OK를 누르면 완료.

* 방 생성:
Rooms에 마우스 우클릭, Create Room 클릭. 뜨는 창의 Settings 탭에서 Name: Room1, Width/Height: 500/400, Speed: 60으로 지정.

* 주인공 조종용 오브젝트 생성:
Objects에 마우스 우클릭, Create Object 클릭. 뜨는 창에서 Name: PlayerObject로 정해주고 Player Sprite를 지정해준다.

- 초기 생성 위치 정하기:
중간 창에서 Add Event 버튼 클릭, Create 선택.
우측 Control-Variables 중 Set Variable 끌어 Actions 창에 넣고 뜨는창에서 variables: X, value: 64로 설정, OK.
Set Variable 한개 더 끌어 넣고 variables: Y, value: 384로 설정.

- 주인공 좌우 조종하기:
Add Event 버튼 클릭, KeyPress-<Left> 선택.
Control-Variables 중 Set Variable 끌어 Actions 창에 넣고 뜨는창에서 variables: hspeed, value: -4로 설정.
Add Event 버튼 클릭, KeyPress-<Right> 선택.
Control-Variables 중 Set Variable 끌어 Actions 창에 넣고 뜨는창에서 variables: hspeed, value: 4로 설정.

- 주인공 총알 발사 처리:
Add Event 버튼 클릭, KeyPress-<Space> 선택.
main1-Objects 중 Create Instance 추가, Self, object: playerBullet, x: 0, y: 0, relative: On으로 설정.

- 주인공 화면밖 나갈시 반대쪽 화면에 나오게 하기:
Add Event 버튼 클릭, Step 선택,
Control-Code 중 Execute Code 추가, 뜨는 창에 화면 바깥으로 나가면 다른쪽으로 나오는
if x < 0 x = room_width;
if x > room_width x = 0;
코드 입력.

* 적 설정하기:
Objects에 마우스 우클릭, Create Object 클릭. 뜨는 창에서 Name: EnemyObject로 정해주고 Enemy Sprite를 지정해준다.
- 적 초기화:
Add Event 버튼 클릭, Create 선택,
move-Move 중 Speed Horizontal 추가, hor.speed: 1로 설정.
Control-Variables 중 Set Variable 추가, variables: X, value: 416으로 설정.
Control-Variables 중 Set Variable 추가, variables: Y, value: 64로 설정.
main2-Timing 중 Set Alarm 추가, Self, number of steps: 30, in alarm noo: Alarm 0로 선택.
-적 화면 밖 나갈시 반대쪽 화면으로 나오게 처리:
Add Event 버튼 클릭, Step 선택,
Control-Code 중 Execute Code 추가, 뜨는 창에 화면 바깥으로 나가면 다른쪽으로 나오는 if x < 0 x = room_width; if x > room_width x = 0; 코드 입력.
- 적 총알 발사 처리:
Add Event 버튼 클릭, Alarm 선택,
main2-Timing 중 Set Alarm 추가, Self, number of steps: 30, in alarm noo: Alarm 0로 선택.
main1-Objects 중 Create Instance 추가, Self, object: enemyBullet, x: 0, y: 0, relative: On으로 설정.

* 적/주인공 총알 설정:
- 초기화: Add Event 버튼 클릭, Create 선택,
move-Move 중 Speed Vertical 추가, vert.speed: 3으로 설정. (주인공 총알의 경우 -4)
- 충돌처리: Add Event 버튼 클릭, Collision-PlayerObject 선택, (주인공 총알의 경우 Collision-EnemyObject 선택)
main-Objects 중 Destroy Instance 추가, Ohter로 설정.
main-Objects 중 Destroy Instance 추가, Self로 설정.
- 총알이 화면 밖으로 나가면 제거 처리: Add Event 버튼 클릭, Other-Outside Room 선택,
main-Objects 중 Destroy Instance 추가, Self로 설정.

다하고 나서 Run the Game으로 실행해보니 아무 것도 뜨지 않아 당황했는데 Room1의 Objects 탭에서 PlayerObject, EnemyObject를 화면에 추가시켜 주어야 했던 거였다. 해주고 나니 나름 잘 실행된다.

* 실행 파일로 만들기:
File-Create Application 클릭, Single runtime executable (*.exe)로 선택하여 exe 실행파일 한 개로 만들어 실행 테스트 성공.
Test181014.exe(용량: 2.07M)가 생기고 잘 실행된다.