2012-12-04 31 views
0

我正在製作一個無盡的跑步遊戲(例如canabalt,神廟跑步,Jetpack Joyride),我試圖讓它的「感覺」正確。到目前爲止,我用下面的公式來設置速度:無盡奔跑遊戲用什麼等式來設置玩家的速度?

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應該與時間最多呈線性關係(不像公式中的二次方)。位置最多爲二次方。對「a」的計算應確保當v接近某個最大速度(可能與電平有關)時,「a」爲零。