1
在我的主要更新函數中,我正在檢查控制器輸入,更新遊戲角色和處理碰撞。我的主要更新功能目前看起來像:主要更新順序
// Handle Character/Terrain collision
foreach (ICharacer character in this.CharacterList)
foreach(ITerrain terrain in this.TerrainList)
HandleCollision.FixCollision(character, terrain)
// Get controller input
foreach (IController controller in this.ControllerList)
controller.GetAction();
// Update characters
這一切的偉大工程,但我注意到,當我切換順序,使控制器輸入衝突處理前檢查,人物沉入地下。
controller.GetAction()
方法是一系列if
語句和命令檢查被按下的按鈕。如果沒有按鈕被按下,它什麼也不做。
我想知道爲什麼這個順序很重要,特別是當controller.GetAction()
什麼都不做。如果你願意,我很樂意添加更多的代碼。
看來,當你在碰撞處理之前檢查控制器輸入時,你的「世界」在那個時候沒有碰撞器,因爲你正在銷燬並創建它們的每個更新週期。 – pinckerman