我對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