私はC#に少し慣れていませんが、プログラミングのバックグラウンドはかなり豊富です。
私がやろうとしていること:ゲームにさまざまなMapTilesを定義します。基本のMapTileクラスを次のように定義しました。
public class MapTile
{
public Texture2D texture;
public Rectangle mapRectangle;
public MapTile(Rectangle rectangle)
{
this.mapRectangle = rectangle;
}
}
次に、次のようにサブクラスGrassTileを定義します。
class GrassTile : MapTile
{
new Texture2D texture = Main.GrassTileTexture;
new public Rectangle mapRectangle;
public GrassTile(Rectangle rectangle) : base(rectangle)
{
this.mapRectangle = rectangle;
}
}
私のメインクラスでは、次のような新しいマプタイルを作成しています。
Maptile testTile;
testTile = new GrassTile(new Rectangle(0, 0, 50, 50);
ただし、このtestTileをレンダリングしようとすると、テクスチャがnullになってしまいます。MapTile内でテクスチャを定義すると、コードは正常に機能するため、以前の実装とは何の関係もありません。
では、GrassTileでMapTileのメンバー変数テクスチャを変更できるようにするにはどうすればよいですか?または、メインクラスにMapTileの代わりにGrassTileのテクスチャを認識させます。インターフェイスもいじりましたが、インターフェイスメンバー変数を宣言できません。私がまだ取得していないC#継承に何か他のものはありますか?
前もって感謝します