私はC#で基本的なゲームをしていますが、解決できない問題が発生しています。 - それは私が(rkcPosition/w)が含まれるコードの最後の行を強調表示するためにジャンプしています隣のオブジェクトとのやり取り[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
を呼び出すようにしようと一部である:ここで(関連)コードですnull ref exception
。 (rkcPositionはこのコードスニペットに含まれていないクラスです)
GameWorld
オブジェクトとMainMap
オブジェクト内の値にいくつかの変更を実行させようとしています。私はこれがすべて間違っていると思っています。
InputHandler function
の既存のインスタンス「GameWorld」と「GameSystems」でメソッドを実行するにはどうすればよいでしょうか?
私はすべてが間違っていると考えました。したがって、クラスインスタンス内にデータが格納されていて、メソッドを使用してそのデータを操作したい場合、そのオブジェクトを適切に送信して操作するにはどうすればよいですか?たとえば、CharacterObjectには整数Xが含まれています。現在の値は「4」です。私はそれをそのまま "5"に変更する関数に送信したいと思います。 – user1002617
@ user1002617 "送信"という意味に依存します。メソッド変数でクラス変数を隠すよりも、コードに間違ったことはありません。これは、私が示した方法で修正することができます。 –