2019년 10월 20일 일요일

GMS2 GameMaker Studio 2 로 슈팅 게임 만들기 (7) (Let's Make shooting game) - END -


0. 목차


슈팅 게임의 기초 - 배경 스크롤
다중 배경 스크롤
주인공 object
ON Screen Jog
적 object
적 탄환
boss object
boss 탄환
Timelines 사용
Paths 사용
Player 입장 구현
Player 퇴장 구현
충돌
우주 배경 배경 스크롤

1. 동작 화면

전체적인 화면을 먼저 살펴보도록 하겠습니다. 검은 우주 화면에 별들이 우에서 좌로 스크롤 됩니다. 별들은 속도가 모두 다르며 깜빡이게 될겁니다. 여기에서 별은 2가지 형태로 준비하였습니다. 별의 깜빡임은 sprite animation 입니다. 너무 빠르게 깜빡이면 어색하기 때문에 적당히 조절 합니다.


2. 별 이미지

3*3 크기로 각각 두장을 준비 하였으며 speed는 fps 2 로 설정 하였습니다.


3. 별 Object


코드는 step과 outside Room 이벤트만 있습니다. step에서는 속\speed = savespeed로 속도를 조절하는 부분만 있습니다. 꼭 필요한 코드는 아니지만 별의 속도를 조절하거나 멈추거나 하는 용도로 사용하기 위해서 넣은 코드 입니다. outside Room에서는 별이 스크롤이 완료되면 다시 처음부터 시작 시키기 위한 코드 입니다. x의 위치를 다시 제일 끝으로 위치 시킵니다.



4. 별의 생성

별을 생성시키는 방법은 room 생성 creation code에서 합니다. 아래와 같이 구현하며 대부분 random 값을 많이 이용합니다. 여기에서는 별을 30개 만들었습니다.


var i;
for(i=0;i<30;i++){
 var inst1 = instance_create_layer(irandom(global.screen_width),irandom(global.screen_height),"Instances_BG",oSpaceStar1);
 inst1.direction = 180;
 inst1.image_alpha = random(1);
 inst1.speed = random(1);
 inst1.savespeed = inst1.speed;
 inst1.image_speed = random(1);
 var inst2 = instance_create_layer(irandom(global.screen_width),irandom(global.screen_height),"Instances_BG",oSpaceStar2);
 inst2.direction = 180;
 inst2.image_alpha = random(1);
 inst2.speed = random(1);
 inst2.savespeed = inst2.speed;
 inst2.image_speed = random(1);
}

5. Room의 layer 설정

Layer를 제일 아래 두어야 하며 그것보다 아래 layer는 검은색으로 설정해 두어야 합니다. 이전에 만들었던 배경 스크롤 layer는 눈 표시 모양을 제거하도록 합니다.



6. 소스

모두 완성 되었습니다. 전체 소스는 아래 참고 바랍니다.
https://drive.google.com/open?id=1pANe5VTzgPQOge_qG_JFxphx7p6Cwj85


























댓글 없음:

댓글 쓰기