본문 바로가기
Programming/Entry

엔트리(entry)로 비행기 슈팅게임 만들기 - 12. 총알 개수 증가 업그레이드 적용하기

by BACKK0M 2019. 10. 8.
반응형

이번 포스팅에서는 상점에서 구매할 수 있는 마지막 업그레이드로, 업그레이드를 할 때마다 총알 개수가 증가하도록 해보고자 합니다.

 

이전 포스팅에서 상점 구매 기능을 만들었을 때 총알 개수 업그레이드는 미사일수업수 라는 변수에 정보를 저장하였습니다. 이를 이용하여 코딩을 진행하고자 합니다.

 

우선 미사일수업수 변수의 성질을 생각해봅시다. 미사일수업수 변수는 다른 업그레이드 관련 변수와 동일하게 처음에 1이라는 값을 가지고 시작합니다. 업그레이드를 진행할수록 마찬가지로 1씩 증가하는 변수이죠. 미사일수업수는 4까지 증가할 변수입니다.

 

업그레이드를 진행할때마다 미사일이 추가로 생성되어 복제되고 발사되도록 할 것입니다. 바로 아래의 그림처럼요!

미사일 발사 모습

업그레이드를 하게 되면 가운데 미사일뿐만 아니라 양옆으로 미사일이 생성되어 나가도록 할 것입니다. 원리는 아래와 같습니다.

 

1. 미사일수업수 변수의 값이 2 이상인가

2. 2 이상일 경우 (미사일수업수 - 1)만큼 반복하기

3. 왼쪽으로 10도 회전 후 복제본 만들기

4. 오른쪽으로 10도 회전 후 복제몬 만들기

 

여기서 핵심은 바로 왼쪽으로 10도 회전하는 것과 오른쪽으로 10도 회전하는 것입니다. 반복 횟수가 많아지면 많아질수록 10도씩 증가되어 회전하게 될것입니다. 바로 원본 미사일 오브젝트의 방향을 반복 횟수 x -10, 반복 횟수 x 10으로 설정하는 것이지요!

 

위의 내용을 토대로 코딩을 진행해보도록 하겠습니다. 미사일 오브젝트에 코딩을 진행합니다.

 

우선 미사일업수 변수의 값이 2 이상인지 확인해줍니다.

1. 미사일업수 변수의 값이 2 이상인가

2 이상일 경우에 (미사일수업수 - 1)만큼 반복하기를 진행합니다. 그 이유는 업그레이드 수가 2일 경우 한 번 반복하여 미사일을 생성해야합니다. 업그레이드 수가 3일 경우엔 두 번 반복하여 미사일을 생성해야 하지요. 즉, 미사일수업수 변수의 값보다 1 작은 값만큼 반복이 되어지는 것을 확인할 수 있습니다.

 

미사일수업수 - 1 번 반복하기

미사일수업수가 1이라는 값을 가지고 있다고 생각해봅니다. 그렇다면 위의 반복하기 블록이 실행될까요? 정답은 아닙니다! 그렇다면 미사일업수가 2 이상인지를 확인할 필요가 있을까요? 필요 없게 되는것이죠! ~번 반복하기 블록을 통해 위의 조건을 같이 검사할 수 있게 되었습니다. 미사일수업수 변수가 2 이상인지 확인하는 블록은 제거해줍니다.

 

그 다음은 변수를 하나 생성할 것입니다. 미사일 오브젝트 내에서만 사용할 변수로, 반복 횟수를 저장하기 위한 변수입니다. 반복 횟수는 미사일 오브젝트를 회전할 때 도움을 주는 변수입니다. 변수를 만들어봅니다.

 

반복횟수 변수 생성

변수 정보가 화면에 보이지 않도록 설정해줍니다.

눈 표시 클릭

 

반복횟수라는 변수는 계속해서 1이라는 값을 갖고 있을 것입니다. 그러나 미사일수업수가 2 이상이여서 반복을 진행해야 하면 그 반복문 안에서 1씩 증가해야 합니다. 아래와 같이 코드를 작성해줍니다.

반복횟수 정하기

이제 미사일의 방향을 회전하여 복제해줍니다. 방향을 반복 횟수x -10으로 정한뒤 복제본을 만들고, 방향을 반복 횟수 x 10으로 정한뒤 복제본을 만들어줍니다.

미사일 추가 복제본 만들기

위의 코드를 스페이스 키를 눌렀을 때 미사일이 복제되는 곳 아래에 붙여줍니다. 그리고 복제하기 전 방향을 0도로 정하기를 해줍니다.

코드 합치기

다음으로는 미사일이 발사되었을 때 y좌표 값이 증가되도록 코딩하였는데, 이를 이동 방향 블록으로 바꿔줍니다. 

이동 방향으로 움직이기

미사일 오브젝트를 수정하도록 하겠습니다. 우선 미사일 오브젝트의 방향과 이동 방향을 모두 0으로 바꿔줍니다.

방향과 이동 방향 모두 0으로

그 다음 모양 탭으로 넘어가줍니다. 아래 메뉴 중 회전 부분에 180을 입력해줍니다.

180도 회전

입력이 끝났다면 파일 -> 저장하기를 눌러줍니다.

모양 저장하기

이렇게 총알 개수에 대한 업그레이드를 적용해보았습니다. 다음 포스팅에서는 폭탄 기능을 적용해보도록 하겠습니다.

 

감사합니다:)

반응형