틴커(고급)의 물리엔진으로 공 발사대 코딩하기

발사대에 있는 공을 누르는 시간만큼 공의 속도를 조절하여 발사합니다. 플레이어가 볼을 잡는 시간이 길어질수록 공의 속도가 빨라집니다. 이 프로젝트에서 사용된 개념은 다음과 같습니다. 물리 엔진, 터치 이벤트, 변수, 메시지 발송 및 받기

무대 재설정

게임 배경 화면을 터치할 때 공과 해골이 시작 위치로 돌아 오는 것을 볼 수 있습니다. “방송(Broadcast)”블록은 다른 캐릭터가 동시에 어떤 일을 하는데 유용합니다. 즉 화면을 터치했을 때 “reset” 메시지를 방송(발송)하면 다른 액터에서 해당 메시지를 받았을 때 이벤트가 실행됩니다 .

“Start physics”는 이 게임에서 물리 엔진을 사용하겠다는 블록입니다. “Set gravity to”는 이 게임의 액터에 중력 가속도을 적용합니다. 지구의 중력 가속도는 9.8 m/s2이지만 이 블록은 액터에 적용되는 중력 가속도값을 임의로 설정할 수 있고 심지어 수평 방향으로 적용할 수 있습니다.

속도 변수와 속도의 상관 관계

공을 터치하고 있으면 속도를 표시하는 숫자가 빠르게 증가합니다. 잠깐의 터치로 200까지 증가합니다. 너무 빠르게 속도값이 증가합니다. 그래서 공의 속도를 설정하기 전에 속도를 100으로 나누어야 합니다. 화면에서 볼 수 있는 200의 속도값은 실제로 발사될 때 적용되는 값은 2가 됩니다. “set linear velocity to” 블록에 나누기 없애고 속도 변수만 남겨서 테스트해보면 공의 속도가 얼마나 빠른지 알 수 있습니다.

속도 변수는 화면을 터치할 때 0으로 설정되고 터치하는 동안 1 만큼 증가합니다. 화면 중앙에 속도 값을 표시합니다.

공의 속성 수정하기

공의 원상회복하기(set restitution to)을 수정하여 탄력성을 높이거나 줄여 보세요. 그리고 마찰력(set friction to)을 수정하여 공이 발사대에서 빨리 벗어나게 해보세요.

공은 메시지를 받으면 원래 위치로 이동합니다. 즉 배경화면을 터치할 때 메시지가 발송되고 공 액터가 해당 메시지를 받고 블록을 실행합니다.

 

댓글 남기기