2012-12-04 1 views
0

나는 끝없는 달리기 게임 (예 : canabalt, 사원 달리기, 제트 팩 조이 리드)을 만들고 있으며, 나는 그 느낌을 올바르게 얻기 위해 노력하고 있습니다.끝없는 달리기 게임이 플레이어의 속도를 설정하는 데 사용하는 방정식은 무엇입니까?

speed = (time+500)*(.05+(time/300)) 

의 증가를 만드는 방법에 대한 모든 팁은 바로 느낌 시행 착오 이외 : 지금까지, 나는 속도를 설정하려면 다음 식을 사용하고 있습니다?

+0

대단한 의견을 보내 주셔서 감사합니다! –

답변

2

글쎄, 나는 내 게임 중 하나에서 비슷한 것을했지만 속도가 끊임없이 증가하지 않았다. 매분마다 또는 플레이어가 일정한 점수에 도달하면 그것을 증가시켰다. 그래서 같이 :

- (void)setTravelTimeTo:(NSNumber*)targetTime 
{ 
    if (maxTravelTime > targetTime.floatValue) 
    { 
     maxTravelTime -= 0.1f; 
     [self performSelector:@selector(setTravelTimeTo:) withObject:targetTime afterDelay:2]; 
    } 
} 

maxTravelTime 시간 또는 귀하의 경우 속도입니다. 필요에 맞게 수정하십시오. 이 경우의 이동 시간은 움직이는 플랫폼이 전체 화면을 가로 지르는 데 필요한 시간이었습니다.

희망이 있습니다.

2

일반적으로 이동 속도와 위치는 누적됩니다. 그래서 뭔가처럼

a = <some function of current speed (drag), player actions, and terrain> 
v = v + a*deltaTime 
x = x + v*deltaTime 

DeltaTime은 마지막 계산 이후의 시간입니다. 이것이 의미하는 바는 v는 시간에 따라 가장 선형 적이어야한다는 것입니다 (수식에서와 같이 2 차가 아님). 위치는 최대 2 차선입니다. "a"에 대한 계산은 v가 최대 속도 (아마도 레벨에 따라 다름)에 접근 할 때 "a"가 0이되도록 보장해야합니다.

관련 문제