[아두이노야 놀자]<17>E-센서보드와 슈팅 게임

엔트리 센서보드에는 여러 유용한 모듈이 장착돼 있습니다. 센서보드 모듈로 슈팅 게임기를 만들어 봅시다. 센서보드를 컨트롤러로 삼아 슈팅 게임을 만드는 것입니다. 사용할 모듈은 슬라이드와 4색 버튼입니다. 슬라이드는 오브젝트 이동에 사용할 것 같지만 특별히 탄막 크기와 연사 속도를 조절하는 용도로 씁니다. 준비물은 아두이노(UNO), USB 케이블, E-센서보드입니다.

[그림 1] 아두이노 보드 위에 E-센서보드 알맞게 끼워넣기.
<[그림 1] 아두이노 보드 위에 E-센서보드 알맞게 끼워넣기.>

[그림 1]과 같이 아두이노 보드와 센서보드를 꾹 눌러서 완전히 결합해주세요. 엔트리 하드웨어(HW) 연결 프로그램에서 'E-센서보드(유선연결)'로 연결해야 합니다. E-센서보드로 슈팅 게임을 조작할 수 있도록 만들어 봅시다.

[그림 2] 오브젝트 구성하기.
<[그림 2] 오브젝트 구성하기.>

[그림 2]와 같이 '외계인'과 '들판(4)'을 불러옵니다. 외계인 x좌표와 크기를 120으로 수정합니다. 엔트리봇 x좌표는 -180으로, 크기는 50으로 수정합니다. 점수와 모드 변수를 추가합니다. 모드 변수는 탄막 크기와 연사 속도를 조절하는 용도입니다. 점수 균형을 위해 탄막 크기와 연사 속도는 반비례하게 만들 것입니다.

[그림 3] 움직이기.
<[그림 3] 움직이기.>

[그림 3]처럼 센서값은 10에서 30으로 바꿔 모드 변수에 저장합니다. 빨간 버튼과 파란 버튼을 눌렀는지 판단해 위 아래로 움직일 수 있도록 합니다. 외계인(복제본)에 닿으면 모든 코드가 멈춰 게임이 끝납니다. 초록색 버튼을 누르면 슬라이드 값 속도로 복제본을 만듭니다. 슬라이드를 위로 올리면 느리게, 아래로 내리면 빠르게 만들 것입니다.

[그림 4] 복제본 역할 만들기.
<[그림 4] 복제본 역할 만들기.>

[그림 4]와 같이 복제본 크기도 슬라이드 값에 따라 정해집니다. 슬라이드를 위로 올리면 크게, 아래로 내리면 작게 정해집니다. 생성된 복제본은 벽에 부딪힐 때까지 일정한 속도로 움직이고, 만일 외계인에 닿았다면 모드 값에 따라 점수를 얻고 0초를 기다린 뒤 복제본을 삭제합니다. 모드 값이 크면 연사 속도가 느리지만 점수를 더 많이 받을 수 있게 됩니다.

복제본 크기도 슬라이드 값에 따라 정해집니다. 슬라이드를 위로 올리면 크게, 아래로 내리면 작게 정해집니다. 생성된 복제본은 벽에 부딪힐 때까지 일정한 속도로 움직이고, 만일 외계인에 닿았다면 모드 값에 따라 점수를 얻고 0초를 기다린 후 복제본을 삭제합니다. 이렇게 하면 모드 값이 크면 연사 속도가 느리지만 점수를 더 많이 받을 수 있게 됩니다.

0초를 기다리는 이유는 뭘까요. 엔트리봇 복제본(탄막)과 외계인(복제본)이 서로 만나면 두 복제본이 삭제돼야 합니다. 한 오브젝트가 먼저 삭제되면 다른 오브젝트는 서로 닿았는지 판단하지 못하고 삭제되지 않을 수 있습니다. 그래서 '0초 기다리기'로 다른 복제본도 닿았는지 판단할 수 있도록 해 주는 것입니다.

[그림 5] 외계인 움직이기.
<[그림 5] 외계인 움직이기.>

[그림 5]처럼 외계인 오브젝트를 선택합니다. 외계인은 1초마다 -110~110 사이의 무작위 y좌표로 이동하면서 엔트리봇 탄막을 요리조리 피합니다. 0.3초마다 자신의 복제본을 생성합니다. 복제본은 20의 크기로 나타나고, 이동 방향은 왼쪽에서 무작위로 약간 틀어진 방향으로 정합니다. 복제본도 엔트리봇이나 벽에 닿을 때까지 5의 속도로 움직입니다.

엔트리봇 공격하기 코딩.
<엔트리봇 공격하기 코딩.>

박종진기자 truth@etnews.com

위방향 화살표