내일배움캠프 3일차 - DAY 3 블루프린트를 이용한 비주얼 스크립팅

과제 : 텍스트 슈팅 게임을 만들어 다음과 같이 만들어봅시다.

 1) 좌클릭으로 발사, 온도증가, 탄환이 없으면 발사불가.
 2) R키 재장전, 탄환이 가득찼으면 재장전 불가.
 3) T키 냉각으로 온도감소, 온도의 수치의 따라 Normal(0~30), High(31~70), Over(71~) 표시
 4) 숫자키 0,1,2을 누르면 각각 '라이플', '샷건', '피스톨'로 교체 가능

구현방법


우선 Weapon이라는 구조체를 생성해 그곳에 장탄수, 온도, 온도별 상태에 관한 변수를 추가해줍니다. 온도 별 상태의 경우 열거형(Enum) 변수로 생성합니다.


[1] 좌클릭 발사

좌클릭을 하면 아래와 같은 시퀀스를 거치게 된다.
1) 탄환이 0보다 높으면 다음으로 넘어가고 그렇지 않으면 'Out of Ammo'를 출력.
2) 탄환에 '증감연산자 --'를 넣어 1을 빼고 온도에 '증감연산자 ++'를 넣어 1을 더한다.
3) 온도가 70보다 높으면 열거형 값 'Over'를, 30보다 높으면 'High'를, 그렇지 않으면 'Normal'를 적용.
4)현재 무기이름과 장탄수, 온도와 온도별상태가 입력된 구조체를 출력.


[2] R키 재장전

R키를 누르면 아래와 같은 시퀀스를 거치게 됩니다.
 1) 탄환이 최대 장탄수보다 적으면 다음으로 넘어가고 그렇지 않으면 'Already full'을 출력.
 2) 탄환의 값을 구조체에 저장된 '최대 장탄수'로 대입.
 3) 'Reloaded' 출력.

[3] T키 냉각

T키를 누르면 아래와 같은 시퀀스를 거치게 됩니다.
 1) 구조체에 저장된 온도값에 '증감연산자 --'를 적용해 온도를 1 줄인다.
 2) 온도가 70보다 높으면 열거형 값 'Over'를, 30보다 높으면 'High'를, 그렇지 않으면 'Normal'를 적용.
 3) 'Cooling', 현재 온도값 및 상태 출력

[4] 0,1,2키 무기교체

0번키를 누르면 'Rifle', 1번키를 누르면 'Shotgun', 2번키를 누르면 'Pistol'로 교체되면서 현재 사용중인 무기구조체가 변경된다. 변경후에도 사용한 무기의 구조체정보는 유지되며, 재사용 시 값이 이어 변동한다.

초반 강의임에도 제법 난이도가 높은 과제가 나왔다. 배열이나 참조의 사용법은 강의에서 배우지 않았거나 덜 익힌 것들인데, 여기서 많이 고전하는 사람이 있을 것이라 생각된다.

댓글

이 블로그의 인기 게시물

내일배움캠프 사전캠프 - 사전캠프설 연휴 커피 파밍 이벤트 작품 [ EXTREMITY ]

내일배움캠프 29일차 - 커리어데이 2일차 : 클라이언트 프로그래머로서 포트폴리오, 입사준비팁