我正在製作一個無盡的跑步遊戲(例如canabalt,神廟跑步,Jetpack Joyride),我試圖讓它的「感覺」正確。到目前爲止,我用下面的公式來設置速度:無盡奔跑遊戲用什麼等式來設置玩家的速度?
speed = (time+500)*(.05+(time/300))
如何使增加任何提示,感覺剛剛好,比試驗和錯誤等?
我正在製作一個無盡的跑步遊戲(例如canabalt,神廟跑步,Jetpack Joyride),我試圖讓它的「感覺」正確。到目前爲止,我用下面的公式來設置速度:無盡奔跑遊戲用什麼等式來設置玩家的速度?
speed = (time+500)*(.05+(time/300))
如何使增加任何提示,感覺剛剛好,比試驗和錯誤等?
呃,我在其中一場比賽中做了類似的事情,但我並沒有不斷增加速度,我每分鐘增加一次,或者一旦球員達到一定數量的積分。像這樣:
- (void)setTravelTimeTo:(NSNumber*)targetTime
{
if (maxTravelTime > targetTime.floatValue)
{
maxTravelTime -= 0.1f;
[self performSelector:@selector(setTravelTimeTo:) withObject:targetTime afterDelay:2];
}
}
哪裏maxTravelTime
是時間或在您的案件的速度。只需修改它以滿足您的需求。這種情況下的旅行時間是移動平臺穿過整個屏幕所需的時間。
希望它有幫助。
一般來說,你會隨着時間積累速度和位置。所以像
a = <some function of current speed (drag), player actions, and terrain>
v = v + a*deltaTime
x = x + v*deltaTime
DeltaTime只是自上次計算以來的時間 - 可能是最後一幀。這意味着v應該與時間最多呈線性關係(不像公式中的二次方)。位置最多爲二次方。對「a」的計算應確保當v接近某個最大速度(可能與電平有關)時,「a」爲零。
非常感謝您的建議! –