我很新于C#,但我有相当丰富的编程背景。
我的目标是:为游戏定义不同的MapTiles。我已经定义了基本的MapTile类如下:
public class MapTile
{
public Texture2D texture;
public Rectangle mapRectangle;
public MapTile(Rectangle rectangle)
{
this.mapRectangle = rectangle;
}
}
I then define a subclass GrassTile like this:
class GrassTile : MapTile
{
new Texture2D texture = Main.GrassTileTexture;
new public Rectangle mapRectangle;
public GrassTile(Rectangle rectangle) : base(rectangle)
{
this.mapRectangle = rectangle;
}
}
在我的Main类中,我像这样创建了一个新的地图瓦片:
Maptile testTile;
testTile = new GrassTile(new Rectangle(0, 0, 50, 50);
然而,当我尝试渲染这个testTile时,它的纹理最终变成了null。如果我在MapTile内定义纹理,则我的代码运行良好,因此与先前的实现无关。
那么,如何让GrassTile能够修改MapTile的成员变量texture?或者让我的主类识别GrassTile的纹理而不是MapTile的纹理?我也试过使用接口,但我无法声明接口成员变量。C#继承中是否还有我不了解的内容?
提前感谢。