2016-03-02 143 views
0

我心裏有3種或更多的方式來達到我想要更改自定義動畫,所以我想知道這樣做在遊戲循環

我有一個自定義遊戲循環的最佳方式,我想有多個「動畫」(更新遊戲物理和渲染到SurfaceView上的畫布不同於一個GameState到另一個)

所以我可以稍微增強我的遊戲循環,並使其通過多個while循環基於一個對象的變量gameState,或者裏面的一個開關 (在這種情況下我會一直有相同的Activity和SurfaceView)

或者我可以在遊戲狀態之間進行切換,刪除整個SurfaceView(比如來自父FrameLayout)並且每次都創建一個新的遊戲狀態, (這樣我就會有相同的活動,每次丟失遊戲都會改變視圖例如)

或者我可以改變每個遊戲狀態的整個活動,,,,

(有第一路之類的活動和自定義的轉換之間的轉換有着明顯區別做到這一點)

你能否給我一些想法,哪種方式最好?

回答

3

如果您嘗試通過移除和創建新的SurfaceView來重構應用程序UI,您將會看到至少一個口吃。在活動之間切換會花費任何控制權,讓您無法將遊戲移植到任何其他平臺。我會說最好的方法去實現它,那就是在你的onDraw中有一個根據遊戲狀態改變的開關。

+0

這是正確的想法。遊戲循環的重點是儘可能快速和平穩地刷新UI。所以你不應該做任何事情來打破這個前提。 – mkasberg