미션. 관성 적용하기

목표


물체는 운동의 상태(멈춰있던지, 움직이고 있던지)를 계속 그대로 유지하려고 하는 성질이 있습니다.

이런 성질을 '관성'이라고 하고, 이때 생기는 힘을 '관성력'이라고 하죠.

* '관성'에대해 검색을 하거나, 자신의 수준에 맞는 물리책에서 '관성'을 찾아보세요.


이전 미션에서 왼쪽, 오른쪽 방향키를 눌렀을 때, 누르고 있는 동안 조금씩 움직이게 만들었죠? 누르면 물체를 누른 방향으로 조금씩 옮겨줬습니다.

이번 미션에서는 왼쪽, 오른쪽 방향키를 누르면 누른 방향으로 오브젝트를 민다고 생각해보세요.

물체를 밀면 민 방향으로 움직이기 시작하죠?

민 방향으로 '속도'가 생깁니다. 같은 방향으로 더 밀면 더 빨리 움직이고, 움직이는 반대 방향으로 밀면 점점 느려지다가 멈추게 되죠.


이걸 만들어 봅시다.


무엇을 해야 하나요?

  1. 왼쪽, 오른쪽 방향키를 눌러 오브젝트가 움직이면 계속 움직여야 합니다. (관성)
  2. 벽에 부딪히면 멈춥니다.
  3. 움직이고 있을 때 움직이는 반대쪽 방향키를 누르면 점점 느려지다가 멈추고 계속 누르고 있으면 반대쪽 방향으로 움직입니다.
  4. * 속도가 너무 빨라지지 않도록 해 주세요.

* 이전 미션에서 작성한 코드에도 변경된 부분들이 있습니다. (빨간색 박스 표시된 부분이 관성을 구현한 코드입니다.)







이런걸 상상해 보세요.


공이 하나 있는데, 내가 그걸 살짝 밀었습니다.

그럼 공이 천천히 굴러가겠죠? 손을 떼도 계속 굴러갈거에요.


굴러가고 있는 공을 굴러가는 방향으로 더 밀었습니다.

공은 더 빨리 굴러가겠죠?


자, 이번엔 공이 굴러오는 걸 굴러오는 반대방향으로 살짝 막았습니다.

공은 굴러오다가 느려지거나, 멈추겠죠?

내가 아주 센 힘으로 막고 밀었다면, 반대 방향으로 다시 굴러갈 거에요.


이번에 하는 건 이런 겁니다.

(원리가 궁금한 사람은? 있나요? ㅎㅎ 물리학의 '힘과 운동' 부분을 열심히 공부해 보세요.)


간단히 설명하면 변수를 활용해서 속도가 변하는 오브젝트를 만드는겁니다.


1. (준비) 우선 'x축 속도' 라는 이름으로 변수를 하나 추가해 줍니다. (기본값: 0)




2. 2강에서 만들었던 코드중에 위의 코드를 찾아서 아래처럼 고쳐주세요.




이렇게 바꾸고 실행하면, 이제 왼쪽, 오른쪽으로 움직이지 않을 거에요.

움직임 블록꾸러미를 안썼으니 당연하죠.


3. 이제 'x축 속도'에따라 움직이는 코드를 새로 만들어 줍니다.




처음 'x축 속도'의 기본 값은 0이니 움직이지 않습니다.

2번에서 왼쪽, 오른쪽 방향키로 'x축 속도' 변수의 값을 바꿔주죠?

'x축 속도' 변수가 0이 아니게 되면 물체가 움직이기 시작할 겁니다.

같은 방향키를 여러번 누르면 x축 속도의 값이 점점 커지거나 점점 작아지면서 움직이는 속도가 바뀝니다.


물체의 움직임을 이렇게 변수를 이용해서 만들수도 있다는 걸 참고하세요.


4. 벽에 닿으면 멈추게 해 주세요.

2강. 미션 3에서 만든 벽 감지기능 덕분에 오브젝트가 화면 밖으로 빠져나가지는 않을 거에요.

잘 만들었다면 멈춰있는 모습이겠죠.

멈췄다면, 속도도 0으로 만들어주세요.





순서대로 하나씩 추가하며, 각각의 코드가 어떤 동작을 만들어 내는지, 이게 없으면 뭐가 안되는 건지 알면서 넘어가세요.





댓글

로그인 후 댓글을 남길 수 있습니다.