アクセサーを使用する必要がありますか?そうでない場合、どうすればこれを行うことができますか?
の下のゲームにテクスチャをロードしようとしていますLoadContent()
。次に、これをに渡してUpdate()
、別のクラスの衝突検出の目的で使用できるようにします。
これが私のコードです:
Game1.cs
public class GetTileType
{
public Texture2D dirt;
public Texture2D Dirt
{
get
{
return dirt;
}
set
{
dirt = value;
}
}
}
public class Main : Game
{
GetTileType getTileType = new GetTileType();
protected override void LoadContent()
{
getTileType.Dirt = Content.Load<Texture2D>("Dirt");
}
protected override void Update(GameTime gameTime)
{
Texture2D dirt = getTileType.Dirt;
player.GetTileType(dirt);
base.Update(gameTime);
}
Player.cs(今のところ衝突情報を保持しています)
public void GetTileType(Texture2D groundTexture)
{
Tile tile = (Tile)Main.currentLevel.GetTile(0, 0);
Texture2D texture = tile.Texture;
if (texture == groundTexture)
{
// Write code to handle what to do if the player tries to enter the ground.
}
}
}
にはもっとありますがLoadContent()
、この問題とは無関係です。についても同じですUpdate()
。デバッグでplayer.GetTileType(dirt);
は、nullとして表示されます。私が間違えなければ、それは「汚れた」はずです。
私はこれについてすべて間違っていると感じていますが、他の方法は考えられません。私が試した他のすべては行き止まりになりました。
ゲームを開始すると、ロードされてからハングします。それでは、タスクマネージャーから停止する必要があります。
誰かが私が間違っていることを教えてもらえますか?どうもありがとうございます。