2012-08-31 129 views
0

編輯:找到它。玩家構造函數有錯誤。我改變了我的遊戲系統,所以它使用ID和瓷磚。在此之前,我不得不做所有事情的新例子。我忘了將庫存從構造函數初始化到PostInitialize(),所以它使用了非現有實體的空世界。謝謝你們。無法更改字段值


我有一個問題。我正在做一個XNA遊戲,我需要更改實體的地圖,以便它可以做到這一點,但我遇到了一個問題。方法接收不爲空的參數映射,我將entity.currentMap設置爲參數,但currentMap仍然爲空。

public Entity getCopy(Vector2 po, Map.Map map) 
    { 
     Entity t = (Entity)this.MemberwiseClone(); 
     t.currentMap = map; 
     t.Position = po; 
     t.LoadTextures(); 
     t.PostInitialize(); 
     return t; 
    } 
+0

你是在談一些調用函數中的t.currentMap或entity.currentMap嗎?如果你在這個方法上設置了一個斷點,你是說'map'不是null並且t.currentMap仍然是空的? – itsme86

回答

1

首先,你說map絕對不爲空時,正在通過。因此,有兩種可能性。

其中一個:該設置爲currentMap不起作用。或者發佈與setter關聯的代碼,或者通過步入其中來確保其實際存儲值。確保在下一行,值仍然存在。

二:該方法中的其他值正在丟失。您確定LoadTextures和/或PostInitialize未清除currentMap變量嗎?

+0

currentMap是字段,而不是屬性。也許有一個PostInitialize錯誤,這將解決爲什麼子彈bug如此之多的神祕。 – RisaI

+0

調試器是你的朋友.. –