我注意到它DrawableGameComponent
可以用于“实例类”
DrawableGameComponent
包含一些“覆盖”,例如Draw
,LoadContent
等Update
...看看下面的代码:
这是 Game1 的类:
public class Game1 : Microsoft.Xna.Framework.Game
{
public Game1()
{
graphics = new GraphicsDeviceManager(this);
Content.RootDirectory = "Contenttt";
graphics.PreferredBackBufferWidth = GAME_WIDTH;
graphics.PreferredBackBufferHeight = GAME_HEIGHT;
}
}
我另一堂课的代码:
public class Bullet: DrawableGameComponent //based by DrawableGameComponent
{
public Bullet(Game1 game): base(game) //set argument for draablegamecomponent
{
//do something
}
}
可绘制游戏组件:
public DrawableGameComponent(游戏游戏)
参数说明:
游戏 类型:游戏 游戏组件应附加到的游戏。**
如您所见,参数 ofDrawableGameComponent
是一个类 Microsoft.Xna.Framework.Game
。然后我们用我们的Game1
类填充它。
这是我的其他类的代码,将在我的 World Game1 中影响 DrawableGameComponent 的覆盖
protected override void Initialize()
{
base.Initialize();
}
protected override void LoadContent()
{
}
protected override void UnloadContent()
{
}
问题是:为什么我们可以在我自己的班级上使用他们的“覆盖”?为什么这会影响game1世界?
然而,在 c# 中,“base”语句就像
公共类项目符号:MyClass
我们不能让它基于“实例”类。
但是对于DrawableGameComponent
实例类,他们可以通过他们的参数进行设置,因此他们的“覆盖无效”将适用于我们之前放置的参数类。
如果你知道怎么做,请告诉我如何上课。