父类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) { //.... } }
同时使用了静态构造函数,参考->参考