我正在做一個基本的C#遊戲,而且我遇到了一個我無法解決的問題。這裏的(相關)代碼:獲取相鄰對象進行交互[C#]
public class GameManager
{
public GameMap MainMap;
public EntityManager GameWorld;
public SystemManager GameSystems;
public GameManager()
{
EntityManager GameWorld = new EntityManager();
SystemManager GameSystems = new SystemManager();
GameMap MainMap = new GameMap(61, 41);
}
public void InputHandler(string Trigger)
{
switch (Trigger)
{
case "north":
GameSystems.Move(GameWorld, MainMap, 0, 8);
break;
//etc
}
}
}
public class SystemManager
{
public rkcPosition _position;
public SystemManager()
{
}
public bool Move(EntityManager TargetWorld, GameMap TargetMap, int TargetID, int TargetDirection)
{
rkcPosition _position = TargetWorld.GetPosition(TargetID);
// here, GetPosition returns an instance of rkcPosition
// pulled from a List<rkcPosition> - this seems to be the problem point
}
}
我得到的問題是,我嘗試調用GameSystems.Move
的一部分 - 它跳轉到突出我包括代碼的最後一行(W/rkcPosition),並給出了一個null ref exception
。 (rkcPosition是我沒有包含在此代碼段中的類)
我試圖讓Move函數對GameWorld
和MainMap
對象中的值執行一些更改。我開始認爲我這樣做都是錯誤的,所以...
如果我想在我的現有實例「GameWorld」和「GameSystems」上運行InputHandler function
,我該如何正確執行此操作?
我想我做的一切都是錯的。因此,如果我有一個存儲數據的類實例,並且我想使用一種方法對這些數據進行操作,那麼我該如何恰當地發送該對象以進行操作?例如,CharacterObject包含當前爲「4」的整數X.我想將它發送到一個函數,它會將其更改爲「5」,否則保持原樣。 – user1002617
@ user1002617取決於「發送」的含義。你的代碼沒有任何問題比用方法變量隱藏類變量,並且可以按我的方式修復。 –