我正在使用JavaFX製作遊戲並實施了用於控制遊戲速度的滑塊。我有一個簡單的滑塊(javafx.scene.control.Slider),我將gameloop的time屬性綁定到我從滑塊獲得的值。動態更改JavaFX中的關鍵幀時間屬性
滑塊僅在增加遊戲速度時才起作用。如果我減少它,gameUpdate()將停止一段時間 - 取決於我有多少錢。如果我在等待比賽追上時增加滑塊,遊戲將會繼續。有時候,無論等待多久,遊戲似乎都無法趕上。
正在改變關鍵幀時間是一個糟糕的主意,或者我忘了其他的東西嗎? 我一直在嘗試改變canSkip變量,並且這似乎讓遊戲在重新啓動時運行更順暢,但對我沒有多大幫助。
def gameLoop:Timeline = Timeline{
repeatCount: Timeline.INDEFINITE
keyFrames: [
KeyFrame{
time: bind Duration.valueOf(Config.REFRESH_RATE_NUMBER - gameSpeed)
action: function(){
gameUpdate();
}
}
]//keyFrames[]
}// Timeline{}
除非我誤解了(這一直髮生),我沒有在我的代碼片段中使用任何子時間線。原始時間軸中關鍵幀內的子時間線時間軸不是?就我所知,在JIRA上發佈的代碼部分應該不會影響時間改變。變化的變量的時間似乎仍然是問題。移動聲明時我也無法工作。你把它移到整個腳本之外了嗎? – Vargen 2009-12-03 12:36:11
我希望bug報告能給你一些指導,而不是一個直接的解決方案。繼續前進,有沒有什麼方法可以嘗試使用* Transition類呢?當我嘗試時,我確實覺得這個區域比較麻煩,所以如果你還沒有成功,也許你可以嘗試在JIRA中升級? – 2009-12-04 10:54:53