간단히 과정을 말하면 2차 —> 적분 —> 3차인데,

지난 시간을 t,
총 시간을 m_t,
x를 t / (m_t),
거리를 a라고 할 때,

오브젝트가 움직여야 할 거리는:

Dim move as integer = a x (3x² -2x³)

그러므로 오브젝트의 위치는:

(오브젝트 원래 위치) + move

단! 이 수식은 x <= 1일때만 작용해야 한다.
아니면 부메랑처럼 다시 돌아오니 주의.

비트블리팅을 사용하지 않고 자연스럽게 오브젝트가 움직이게 하는 수식이 있네요.
처음에는 빠르다가 점점 느려지는 방식인데, 스레드에서 0.001초 틱을 두고 이 수식을 진행하면 꽤 자연스러운 움직임이 나오네요.

굳이 비트블리팅과 같은 복잡한 작업을 하고 싶지 않거나, 간단한 움직임을 다룬다면 이 방법이 편할 듯 하네요.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기