2015-02-06 93 views
0

我是新來的libGDX, 我試圖做一個功能,在我的遊戲中玩家點擊一個按鈕,整個遊戲速度增加2倍。 我不想要改變每一個遊戲元素的速度,我正在尋找一個控制'遊戲打勾'速度的全球選項。libGDX:遊戲通用速度

+0

您是否將遊戲速度從30 fps改爲60 fps,例如? – huderlem 2015-02-06 23:08:50

回答

2

那麼要保留一個適當的框架獨立應用程序(遊戲),你必須使用兩幀之間的時間。如果您使用Game的形式,稱爲deltadeltaTime,則Libgdx已經在屏幕的呈現方法中爲您提供了此功能。如果你不這樣做,你仍然可以使用Gdx.graphics.getDeltaTime()來得到它。

如果你已經這樣做(你應該!)。在遊戲更新之前將其乘以2。

@Override 
public void render(float delta){ 
    delta = delta * 2; 
    //game logic 
    ... 
} 
0

同意Lestat將delta乘以2(或任何需要的因子)。只是想將一個建議添加到不同的代碼中,以便從繪製圖形的代碼中計算(對象位置,碰撞和東西)。然後當你計算增量時,根據它的值計算你的計算代碼應該執行多少次,並執行多次。然後做一下繪圖。 要點是,如果你加快了你的時間(或者你在某些設備上的FPS較慢),你可能會錯過一些重要的時間框架。即你有一些子彈旅行5px每幀。而且你加快你的時間(或者幀速率下降)在2幀(和2次計算)之間的差異可能太大,如果你只是將子彈速度乘以那個三角洲參數,那麼你的移動步驟可能會太大,所以你的子彈可以避免一些(命中)偵測,即通過敵人而不擊中敵人。所以主要想法是以較小的步驟重複計算(「遊戲時鐘」),並且不會錯過動作並儘可能多地吸引。