본문 바로가기
엔트리/엔트리 RPG만들기 기본

엔트리 RPG 게임만들기3. 점프와 중력 만들기

by 할거없네 2020. 4. 14.

 

안녕하세요. 승승이입니다.

 

이번에는 지난 시간에 이어서 점프와 중력을 만들어 봅니다.

 

먼저 중력이란 것에 대해서 약간 이해를 해야 합니다.

중력은 2개의 질량을 가진 물체가 서로 끌어당기는 힘을 말합니다.

그러나 보통은 질량은 너무 작아서 서로 힘을 거의 못느낍니다.

다만 우리 주변 사물에 비해 매우 큰 질량인 지구는 다른 물체들을 끌어당기기에 충분한 힘을 가집니다.

여기서 중력은 서로의 질량에 비례해서 작용이 되는데, 가속도는 질량에 반비례하게 되므로, 지면 위에서의 중력가속도는 모두 똑같이 적용됩니다.

중력 가속도는 9.8m/s^2이라고 쓸 수 있는데, 뒤의 단위를 보시면 9.8m/s/s로 다시 쓸 수 있습니다.

즉, 9.8m/s의 속도를 1초동안 가속하는 것과 같습니다.

우리가 게임에서 '중력'을 만든다는 것은 사실 '중력 가속도'를 적용하는 것이며, 그 값은 9.8m/s^2입니다.

화면에서 정확하게 미터법을 사용해서 측정에 중요성이 있는 게임이 아니라면 9.8m/s^2의 값은 무시하시고 적당한 값으로 정하시면 됩니다.

 

 

먼저 점프 블록을 만들어 봅니다.

점프는 위쪽 화살표를 누르면 점프를 합니다.

그러면 순식간에 y속도가 정해집니다. 10으로 정해보았습니다.

그 다음에 '점프'라는 변수가 있는데 이것이 -1만큼 변합니다. 원래 1이었다가 점프하는 순간 0이 됩니다. 이것은 점프를 공중에서 연속해서 하는 것을 방지하는 변수입니다. 땅에 다시 착지하면 1이 되어 점프를 다시할 수 있도록 해줍니다.

 

 

다음은 중력입니다. 중력은 y속도를 매번 -1씩 감소시킵니다. 그러나 계속해서 증가해버려서 매우 커지면 지면을 뚫을 수 있습니다. 그렇기 때문에 어느정도 속도의 한계선을 만들어 내는 것이 좋습니다. 여기서는 -20보다 더 작아지지 않도록 하였습니다. 

 

다음은 장애물입니다. 오브젝트에 닿았는지 아닌지를 확인하는 곳에서 조금 수정해 줍니다.

y좌표를 y속도만큼 변화하는데, 중력에 의해서 아래로 떨어지게 됩니다.

그러나 지면(장애물)에 닿게 되면 더이상 추락하지 않도록 합니다.

이때 점프는 1로 정해줘서 점프를 다시 할 수 있도록 하며, y속도는 0으로 더이상 중력에 의해 누적 변화가 되는것을 방지해 줍니다.

 

 

블록을 정리하면 위와 같겠습니다.

 

코드 보기:

http://naver.me/FWLd9Hns

 

Entry

 

playentry.org

완성작보기:

http://naver.me/FgzNCvLF

 

Entry

 

playentry.org

 

 

댓글