위즈랩(www.wizlab.net)은 컴퓨터와 스마트폰에서 모두 사용할 수 있는 게임을 만드는
교육용 코딩 페이지예요. 이번에는 타워 디펜스 게임을 만들어 봐요. ‘타워 디펜스 게임’은
여러 방향에서 몰려오는 몬스터들에게서 성이나 건물을 방어하는 게임이에요. 다가오는 몬스터를 공격하다 위급한 순간에는 특수 공격으로 큰 피해를 주기도 하죠. 자, 그럼 만들기 시작!
실전코딩 준비하기 - 일반 공격과 특수 공격으로 몬스터 막기
‘타워 디펜스 게임’의 성이나 건물 위에는 보통 원거리 공격을 하는 마법사나 대포가 있어요. 화면에 보이는 몬스터를 다 처치하면 어려운 단계로 넘어가죠. 대포와 몬스터를 만들고, 일반 공격과 특수 공격 기능을 넣어 봅시다. 화면 왼쪽 아래 를 누른 뒤 ‘오브젝트 추가하기’를 참고해 오브젝트 등을 추가하고 크기와 위치를 조정해 주세요.
➋ 각 오브젝트에 텍스트 코드 입력하고 이해하기
대포가 포를 쏘는 ‘일반 공격’은 복제(clone) 기능을 활용했어요(➊). 화면을 마우스로 클릭하면(onScreenClick) 포의 복제본이 생겨요. 복제본은 마우스로 화면을 찍은 위치로 이동하면서(moveForward) 크기가 커지지요(addSize). 폭탄을 터뜨리는 ‘특수 공격’은 총 3번만 사용할 수 있도록 했어요. 사용할 수 있는 폭탄의 수는 코드를 통해 변수로 저장되어 활용되지요(➋). 폭탄이 점점 커지도록 반복문을 사용했는데, 이를 엔트리 코드로 나타내면 오른쪽 위와 같답니다.
대포가 포를 쏘는 ‘일반 공격’은 복제(clone) 기능을 활용했어요(➊). 화면을 마우스로 클릭하면(onScreenClick) 포의 복제본이 생겨요. 복제본은 마우스로 화면을 찍은 위치로 이동하면서(moveForward) 크기가 커지지요(addSize). 폭탄을 터뜨리는 ‘특수 공격’은 총 3번만 사용할 수 있도록 했어요. 사용할 수 있는 폭탄의 수는 코드를 통해 변수로 저장되어 활용되지요(➋). 폭탄이 점점 커지도록 반복문을 사용했는데, 이를 엔트리 코드로 나타내면 오른쪽 위와 같답니다.
실전코딩 따라하기 몬스터의 HP를 만들고, 어려운 단계를 추가하라!
몬스터와 대포는 공격을 받으면 HP(체력)가 줄어야 해요. 또, 몬스터를 다 처치하면 자동으로 어려운 다음 단계로 넘어가도록 해야하지요. 먼저 어려운 단계를 추가한 뒤, 대포와 몬스터에 각각 코드를 추가해 보세요.
➊ 어려운 단계 추가하기
화면 왼쪽의 [scene1]을 누르면 오른쪽에 창이 하나 떠요. 여기서 를 누르면 처음부터 장면을 만들 수 있고, 를 누르면 현재 장면을 복사해 어려운 단계로 활용할 수 있답니다.
➋ 각 오브젝트에 코드 추가하기
➊을 잘 보면, 몬스터 오브젝트 2개의 이름(monster_k, monster_m)이 있어요. ➊의 코드는 대포 오브젝트가 두 몬스터 중 어느 하나와 충돌하면 대포의 HP를 1씩 깎고, HP가 0보다 작아지면 ‘게임 오버’라고 말하게 한답니다(say) .
두 몬스터 오브젝트에는 모두 ‘onOverlap’이라는 기능이 두 개씩 들어가 있어요. 그중 하나는 대포의 일반 공격(포)을 의미하는 ‘fire_shooting_a’ 오브젝트와, 다른 하나는 특수 공격(폭탄)을 의미하는 ‘effect_boom_b’ 오브젝트와 충돌했을 때 몬스터의 HP가 깎이도록 하는 명령이지요(➋). 몬스터의 HP가 0보다 작아지면, 몬스터가 죽었음을 의미하는 ‘isDestroyed_A’나 ‘isDestroyed_B’ 변수의 값이 참(true)으로 바뀐답니다. 두 몬스터가 모두 죽으면 어려운 단계로 넘어가야겠죠? ➌에서 ‘&&’ 기호를 엔트리 판단 블록의 ‘그리고’ ( )
와 같은 의미로 사용했답니다. 즉, 변수의 값이 모두 ‘참’이 되면 게임이 어려운 단계로 넘어간답니다.
미션
스페이스 키를 눌렀을 때 발사되는 특수 공격을 추가해서 게임을 더 멋지게 만들어 보세요!
미션을 해결한 친구는 어린이과학동아 홈페이지 ‘와르르 선물터’에 자랑해 주세요! 정답과 당첨자는 6월 7일 홈페이지에서 확인하세요.