언어/기타

멀티해상도에 따른 속도와 가속도 값의 조절

by MiDtics2 posted Jan 13, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

2D 기반의 게임의 경우

 

안드로이드 기반의 폰은 물론....

 

PC기반의 게임도 해상도가 바뀌면 그에 따라 좌표값이 변화합니다.

 

이에 따라 가속도값과 속도값을 변화를 주어야 하는데

 

간단한 공식으로 나타내 봅시다.

 

=======================================================

 

 

일단 가장 기본이 되는 식은

 

St = vt + S0

 

시간과 속도에 따른 위치값입니다. ㅇㅇ

 

여기에 스케일값인 b를 곱한다고 하면

 

bSt  =  b(vt + S0 )

 

가 됩니다.

 

이제 속도를 따져보죠

 

vt = at + v0 입니다. (a는 가속도)

 

이제 이 식을 앞서 썼던 식에 대입을 하면

 

bSt  =  b(at2 + v0 t + S0 ) 이 됩니다.

 

가로를 풀면

 

bSt =  bat2 + bv0 t + bS0

 

이렇게 됩니다.

 

================================================

 

bSt =  bat2 + bv0 t + bS0

 

640 * 480 에서 800 * 600으로 해상도를 올린다고 가정해 봅시다.

 

그러면 1.25배를 확대하는 것이므로

 

스케일값 b는 1.25가 됩니다.

 

따라서, 속도와 가속도 모두 1.25배를 해줘야 하는 것입니다.

 

쓰고 나면 간단한 건데....

 

머리속으로 생각하다보면 헷깔릴 수 있는 일이기도 합니다.

 

딱, 위의 식에서 b가 붙어있는 것만 처리해줘야 합니다.

 

자칫, 실수하면 b를 중복으로 곱할 수 있죠

 

 

 

 

가속도 1번, 초기속도 1번, 초기위치 1번...

 

딱 이렇게 스케일 주어야 합니다.

 

그 외에 주면 중복이 되어버리는 거죠.

 

 

 

제가 했던 실수가

 

현재위치 = 직전위치 + 속도

 

이런식으로 Move함수를 만들 때

 

속도에다가 스케일값을 줘버렸고....

 

S = S + bV 이런식으로 스케일 처리한답시고 말이죠

 

앞에서 가속도에 또 줬으니...중복처리가 되는거죠.

 

그래서 공은 튀기고.... 코드를 다 읽어도 틀린 부분은 안나오고 ㅇㅇ

 

========================================================

 

 

 

결론은

 

초기 위치, 초기 속도, 가속도(중력)입니다.

 

ㅇㅇ

 

 


Articles

1 2 3 4 5 6 7 8 9 10