public PlayerControl(King player, IGameInputWithDPad input) { Input = input; Player = player; Player.Scene.AddObject(this); var walk = new AxisMotion(Config.ReadValue <AxisMotionConfig>("walk")); var brake = new AxisMotion(Config.ReadValue <AxisMotionConfig>("brake")); var climb = new AxisMotion(Config.ReadValue <AxisMotionConfig>("climb")); var climbBrake = new AxisMotion(Config.ReadValue <AxisMotionConfig>("climb brake")); WalkMotion = new MotionWithBrake(walk, brake); player.Motion.AddAdjuster(WalkMotion); ClimbMotion = new MotionWithBrake(climb, climbBrake); player.Motion.AddAdjuster(ClimbMotion); JumpMotion = new AxisMotion(Config.ReadValue <AxisMotionConfig>("jump")); player.Motion.AddAdjuster(JumpMotion); hasLandedOnGround = new CollisionCondition <IPlatformerObject, TileMap>(player) .When(player.IsOnGround) .SetActiveTime(new ConfigValue <TimeSpan>("landing time"), player); isAttacking = new InputCondition(GameKeys.Attack, Input) .ContinueWhile(player.Animations.IsAnimationPlaying(AnimationKeys.Attack)); new AnimationController <King>(Player, isAttacking, hasLandedOnGround); Player.Direction = Direction.Right; }
public static void CheckClimbStop(ICanClimb actor, IGameInputWithDPad input) { if (input.GetButtonPressed(GameKeys.Jump)) { EndClimb(actor); } }
public static void CheckClimbStart(ICanClimb actor, IGameInputWithDPad input) { if (input.Pad.GetInputVector().Y != 0) { BeginClimb(actor); } }
public Menu(Layer interfaceLayer, SpriteFont font, BorderTileSet tileSet, IGameInputWithDPad input, MenuKeys menuKeys) { MenuPanel = new LayoutPanel(tileSet, interfaceLayer); MenuPanel.Position.Center = Engine.GetScreenSize().Center; MenuPanel.Visible = false; Layer = interfaceLayer; Font = font; Input = input; MenuKeys = menuKeys; foreach (var group in interfaceLayer.Scene.UpdateGroups) { if (group.Priority != UpdatePriority.ModalMenu && group.Priority != UpdatePriority.Input) { group.AddPauseCondition(MenuPanel.IsVisible()); } } interfaceLayer.Scene.AddObject(this); }