public void Begin() { this.scene = new Scene { DrawBelow = true }; scene.Update += (sender, gameTime) => Update?.Invoke(gameTime); scene.Draw += Scene_Draw; scene.UpdateInput += Scene_UpdateInput; sceneStack.Add(scene); }
private static void CreateGameScene(ISceneStack stack) { // Here we build a simple scene for a "game" where the // player can move a big white circle around the screen. var gameInputHandler = NewInputHandler(); Scene gameScene = new Scene { InputHandler = gameInputHandler }; Vector2 position = 0.5 * (Vector2)Display.CurrentWindow.Size; Vector2 velocity = Vector2.Zero; var gamepad = gameInputHandler.Gamepads.First(); gamepad.ButtonPressed += (sender, e) => { if (e.Button == GamepadButton.Back) { gameScene.IsFinished = true; } }; gamepad.LeftStickChanged += (sender, e) => { velocity = 500 * gamepad.LeftStick; }; gameScene.Update += (sender, e) => { position += velocity * e.TotalSeconds; }; var font = new Font(Font.AgateSerif) { Size = 22, Style = FontStyles.Bold }; gameScene.Redraw += (sender, e) => { Display.Clear(Color.Blue); font.DrawText(0, 0, "Press escape to go back to title screen."); Display.Primitives.FillCircle(Color.White, position, 40); }; stack.Add(gameScene); }