我对 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;
}
}
在我的 Main 类中,我正在创建一个新的 maptile,如下所示:
Maptile testTile;
testTile = new GrassTile(new Rectangle(0, 0, 50, 50);
但是,当我尝试渲染这个 testTile 时,它的纹理最终为空。如果我在 MapTile 中定义纹理,我的代码可以正常工作,因此它与我之前的实现无关。
那么如何让 GrassTile 能够修改 MapTile 的成员变量纹理呢?或者让我的主类识别 GrassTile 的纹理而不是 MapTile 的我也摆弄了接口,但我不能声明接口成员变量。C# 继承还有什么我还没有得到的吗?
提前致谢