我对C#有点新,但我在编程方面有相当广泛的背景.
我正在尝试做什么:为游戏定义不同的MapTiles.我已经像这样定义了基本的MapTile类:
public class MapTile
{
public Texture2D texture;
public Rectangle mapRectangle;
public MapTile(Rectangle rectangle)
{
this.mapRectangle = rectangle;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我定义一个子类GrassTile,如下所示:
class GrassTile : MapTile
{
new Texture2D texture = Main.GrassTileTexture;
new public Rectangle mapRectangle;
public GrassTile(Rectangle rectangle) : base(rectangle)
{
this.mapRectangle = rectangle;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的Main类中,我正在创建一个像这样的新maptile:
Maptile testTile;
testTile = new GrassTile(new Rectangle(0, 0, 50, 50);
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试渲染此testTile时,其纹理最终为null.如果我在MapTile中定义纹理,我的代码工作正常,所以它与我以前的实现无关.
那么我怎样才能让GrassTile能够修改MapTile的成员变量纹理呢?或者让我的主类识别GrassTile的纹理,而不是MapTile,我也搞乱了接口,但我不能声明接口成员变量.我还没有得到C#继承的其他内容吗?
提前致谢