게임화면(GameScreen) 설계하기2

여러분 지금까지 만드신 기능을 Connect 또는 Build하여 확인해 보고 계시죠??
꼭 확인해 보면서 하셔야 무엇이 잘못되고 무엇이 잘 되는지 알 수 있습니다.
이제 보너스 시간 기능을 구현해 봅시다.

보너스 시간 만들기 - GameScreen

카멜레온을 많이 잡아서 점수가 250점의 배수가 되면 보너스 시간을 얻는 기능을 넣어 봅시다.
보너스 시간 만들기의 주요 기능은 아래와 같습니다.

1) 점수(Score)가 250의 배수인지 확인을 하고
(if-then문과 modulo연산자를 이용)
2) 점수가 250의 배수라면 시간(Time)을 5초 더 준다.

250의 배수를 확인하는 방법은 250으로 나눴을 때 나머지가 0인지 확인하면 됩니다.
이렇게 나눈 후 나머지를 확인하는 연산을 modulo 연산이라고 합니다.
예를 들면 3 modulo 1 => 0... 3 modulo 2 => 1 입니다.
더 자세한 설명이 필요하다면 동영상을 참고해 주세요.

if 문을 사용하여 1)번 점수(Score)가 250의 배수인지 확인하고, True(250의 배수이면),
False(250의 배수가 아니면)일 때를 구분하여 작동할 수 있게 해봅시다.

if문을 완성 했다면 if문이 True일 때 (점수가 250배수라면), 시간을 5초 추가하라는
then문을 만들어 보겠습니다.

완성된 if-then 문장을 to TouchAction do 함수 밑에 연결시켜 줍니다.

이렇게 완성된 TouchAction 함수는 imageSprite1,2가 터치 되었을 때 실행되어야 합니다.

ScoreScreen으로 이동하기 - GameScreen에서

게임은 총 30초간 진행됩니다. 저장된 시간 변수 값(Time)이 0초라면 게임을 종료하고 ScoresScreen으로
이동하는 블록을 if-then블록을 사용해서 만들어 봅시다.
여기서 잠깐! 우리는 이미 다른 Screen으로 이동하는 기능을 몇번 구현해 보았습니다. 이번에는 약간 다르게startValue값을 사용해서 저장된 정보를 기존 Screen에서 새 Screen으로 전달한 후 새 Screen으로
이동할 수 있도록 만들어 봅시다.
각각의 Screen은 연결되어 있지 않아 기존 Screen에 저장된 정보를 다른 Screen에서 사용할 수 없습니다.
하지만 startValue를 이용해서 우리는 기존 Screen에 저장된 정보를 다른 Screen으로 전달할 수 있습니다.
더 자세한 설명이 필요하다면 동영상을 참고해 주세요.

이렇게 완성된 if-then블록을 when GameClock.Timer 안에 넣어주세요.

이제 대략적인 GameScreen의 블록을 완성시켰습니다. Connect을 해서 지금까지 만든 기능들이 잘
실행되는지 확인하기 전에 ImageSprite1,2에 카멜레온 이미지를 추가해주고, 카멜레온이 움직일 수 있는
충분한 공간을 만들어 주기 위해 GameCanvas의 Width, Height를 Fill parent로 바꿔 주세요!

이제 다시 한번 Connect 또는 Build하여 카멜레온이 잘 움직이는지 확인하고
소리를 추가해 더 신나게 해줄 수 있는 카멜레온 앱을 만들어 봅시다.

소리 추가하기 - GameScreen

이번 강의에서 저희가 배포한 소리파일은 게임 배경음악(Player1), 카멜레온을 잡을 때마다 나는 소리(CatchSound), 보너스시간(BonusSound)을 얻었을 때 나는 소리 총 3개 입니다.
여기서 잠깐! Player와 Sound기능의 차이점을 알아보고 넘어가도록 하겠습니다.
Player와 Sound의 기능은 기기를 진동하도록 하거나 음성을 실행시킬 수 있다는 것에서 비슷하지만
Player는 배경음악과 같이 장시간 실행되기를 원할 때 주로 사용하며 Sound의 경우 짧게 소리, 진동 효과를 주기 위해 사용합니다.
이제 블록을 이용해서 소리가 나는 위치를 정해줘 볼까요?
배경음악(Player1)은 GameScreen이 활성화되면 시작되어야 합니다.

GameScreen 완성 블록 모습!

자! 드디어 GameScreen이 완성되었습니다.
길고 긴 험난한 과정이였습니다.
Connect 또는 Build를 통하여 정상적으로 작동하는지 확인해 보시고,
아래 사진을 보면서 어떤 과정이 있었는지 한번 되짚어 봅시다.

댓글