父类GameComponent,来自Monogame,有
Update(),Initialize();方法可供重写.
------------------
Level类继承GameComponent
public abstract class Level : GameComponent
{
public Level(Game game) : base(game)
{
}
//->这里传递重写
public abstract override void Update(GameTime gameTime);
public abstract override void Initialize();
//...
public Gate3 in_gate;
public Gate3 out_gate;
public static Vector2 _start_position = Vector2.Zero;
public static Vector2 _out_position = Vector2.Zero;
}
Level7继承Level类
public class level7 : Level
{
//设置公共静态变量
static level7()
{
//比如管卡门的初始位置等
_start_position = new Vector2(48f, 7.25f);
_out_position = new Vector2(37.3f, 2.8f);
}
public level7(Game game) : base(game)
{
_world = new World(Vector2.Zero)
{
Gravity = new Vector2(0, 9.8f)
};
#if DEBUG
_DebugView = new DebugView(_world);
_DebugView.AppendFlags(DebugViewFlags.Shape);
_DebugView.DefaultShapeColor = Color.Red;
_DebugView.SleepingShapeColor = Color.LightGray;
_DebugView.LoadContent(game.GraphicsDevice, Game.Content);
#endif
}
public override void Initialize()
{
//.....
}
public override void Update(GameTime gameTime)
{
//....
}
}
同时使用了静态构造函数,参考->参考