본문 바로가기
Programming/Entry

엔트리(entry)로 비행기 슈팅게임 만들기 - 16. 난이도 적용하기3

by BACKK0M 2019. 11. 26.
반응형

이번 포스팅에서는 난이도 7 ~ 9를 적용해보겠습니다. 제거할 수 없는 적 오브젝트를 만들것이고, 플레이어는 이 적 오브젝트를 피해야 할 것입니다. 오브젝트를 하나 추가해줍니다. 오브젝트는 작은 별을 사용하겠습니다.

 

작은 별 오브젝트 생성

오브젝트의 크기를 15로 정해주고, 모양을 숨겨줍니다.

 

작은 별 오브젝트 설정 변경

작은 별 오브젝트는 난이도 7 ~ 9가 되면 복제가 되어 날아올 것입니다. 운석 오브젝트처럼 일직선으로 움직이게 될텐데, 상하 움직임이 아닌 좌우 움직임을 갖도록 할 것입니다. 왼쪽에서 나올 것인지 오른쪽에서 나올 것인지는 랜덤하게 설정해주고, 맞은편 벽으로 날아가도록 할 것입니다. 아래의 과정을 유심히 읽어봅니다.

 

1. 난이도가 7이 될때까지 기다리기

2. 0 ~ 1 사이의 임의의 숫자 생성

3. 임의의 숫자가 0일 경우엔 왼쪽에, 1일 경우엔 오른쪽에 배치
4. y좌표 값을 -120 ~ 120 사이의 임의의 숫자로 정하기

5. 복제본 생성하고 움직이기

 

2번 항목을 보시면 0 ~ 1 사이의 임의의 숫자를 생성합니다. 두 가지 중 한 가지 조건을 랜덤하게 선택하기 위해 사용하는 방법입니다. 만약 0 이라는 값이 나오면 x좌표 값을 -225로, 그렇지 않을 경우엔 225로 설정하여 왼쪽과 오른쪽에 배치해 주시면 되는겁니다.

0 또는 1의 값을 저장하기 위해 변수 하나를 생성해줍니다. 변수 이름은 작은별방향으로 지어줍니다. 그리고 변수의 정보가 화면에 나타나지 않도록 해줍니다.

 

변수 생성
변수 정보 안보이게 하기

우선 작은 별 오브젝트를 생성하는 코드부터 작성해보겠습니다. 아래와 같이 코딩을 진행합니다.

 

작은 별 오브젝트 복제

복제본이 생성되면 모양을 보이게 해준 뒤 작은별방향 변수의 값에 따라 이동 방향을 달리 설정해줍니다.

변수의 값이 0일 경우: 이동 방향을 90도로 설정 (오른쪽 방향을 보도록)

변수의 값이 1일 경우: 이동 방향을 270도로 설정 (왼쪽 방향을 보도록)

 

그 후 이동 방향으로 7만큼 계속 움직이도록 하고, 벽에 닿을 경우 복제본을 삭제해줍니다.

또, 미사일과 각종 폭탄에 닿았을 경우에 복제본이 삭제되도록 하며, 적오브젝트점수 신호를 보내 점수를 획득 할 수 있도록 해줍니다.

아래와 같이 코딩을 진행합니다.

 

작은 별 오브젝트 복제본 동작 코딩

이제 로켓에 코딩해주도록 합니다. 로켓은 작은 별 오브젝트에 닿게 되면 게임오버 될것입니다. 로켓충돌확인 함수 내에 아래와 같이 코딩해줍니다.

 

작은 별 오브젝트와 로켓 오브젝트 충돌 처리

그리고 미사일은 작은 별 오브젝트에 닿았을 때 없어지도록 해줍니다. 미사일에 코딩을 진행합니다.

 

미사일-작은 별 충돌처리

마지막으로 외계인 오브젝트 생성을 약간 수정하고자 합니다. 아래의 화면에 표시된것처럼 해당 영역에도 생성될 수 있도록 수정하고자 합니다.

 

추가 영역 표시

외계인이 위에서만 나오게 되면 총알 개수 업그레이드를 모두 완료하였을 때 움직이지 않아도 외계인을 모두 처리할 수 있게 될것입니다. 이를 방지하기 위해 옆쪽에서도 외계인이 나타나도록 하고자 합니다.

외계인의 x좌표 위치에 따라 y좌표 값에 변화를 주고자 합니다. 외계인의 x좌표 위치에 대한 정보를 저장하고자 변수를 하나 생성해줍니다. 변수 이름은 외계인x위치입니다.

 

외계인x위치 변수 생성

주의하실 점은 외계인 내부에서만 사용하는 변수라는 점입니다. 외계인 오브젝트를 선택한 뒤에 변수를 생성해주세요!

다른 변수와 마찬가지로 변수 정보가 화면에 나타나지 않도록 설정해줍니다.

 

외계인x위치 변수 안보이게 설정

외계인 오브젝트의 복제본이 생성되는 부분을 수정합니다.

1. -260 ~ 260 사이의 무작위 수를 외계인x위치 변수에 저장

2. x좌표를 외계인x위치 변수의 값으로 이동시키기

3. 외계인x위치의 값이 -225 이하이거나 또는 225 이상일 경우 y좌표를 40 ~ 100 사이의 무작위 위치로 이동시키기

 

아래와 같이 코딩을 진행합니다.

 

외계인 코딩 수정

1 ~ 9 까지의 난이도가 모두 만들어졌습니다!

다음 포스팅에서는 10난이도 즉, 보스를 만들어 보도록 하겠습니다. 보스 부분이 가장 어려운 부분이 되지 않을까 생각됩니다. 어려움 없이 해결하실 수 있도록 포스팅하겠습니다.

감사합니다 :)

반응형