我对C#有点新,但是在编程方面我有相当广泛的背景。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:
Maptile testTile;
testTile = new GrassTile(new Rectangle(0, 0, 50, 50);
但是,当我尝试渲染此testTile时,其纹理结束为空。如果我在MapTile中定义纹理,我的代码工作正常,所以它与我以前的实现无关。
那么我该如何让GrassTile能够修改MapTile的成员变量纹理?或者让我的主类识别GrassTile的纹理,而不是MapTile的我也使用接口,但我无法声明接口成员变量。有没有其他的C#继承,我还没有得到?
在此先感谢
您能否澄清对Main.GrassTileTexture的引用?这是一个静态属性? – jake
对不起,它的静态属性在分配给MapTile时正常工作,而不是GrassTile。 – Logicon211