无尽的运行游戏用什么方程来设定玩家的速度?

时间:2012-12-04 19:20:44

标签: ios game-physics 2d-games

我正在制作一场无休止的跑步比赛(例如canabalt,太空跑,Jetpack Joyride),我试图让人感觉到#34;感觉"它是对的到目前为止,我使用以下等式设置速度:

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

除了试错之外,有关如何使增加感觉恰到好处的任何提示?

2 个答案:

答案 0 :(得分:2)

好吧,我在我的一个游戏中做了类似的事情,但我并没有不断提高速度,我每分钟增加一次或者一旦玩家达到一定数量的积分。像这样:

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

maxTravelTime的时间或速度。只需修改它以满足您的需求。在这种情况下,旅行时间是移动平台穿越整个屏幕所需的时间。

希望它有所帮助。

答案 1 :(得分:2)

一般来说,你要随时积累速度和位置。像

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

DeltaTime只是自上次计算以来的时间 - 可能是最后一帧。这意味着v应该与时间最多是线性的(不像公式中那样是二次的)。位置至多为二次方。 “a”的计算应确保当v接近某个最大速度(可能取决于水平)时,“a”变为零。