public override void HandleInput(GameTime gameTime, CInput _Input) { if (_Input.KeyPressed(Keys.Back)) { StateManager.getInst().ExitScreen(); StateManager.getInst().AddScreen(new MenuState(IDGameState.MENU)); } base.HandleInput(gameTime, _Input); }
public override void HandleInput(GameTime gameTime, CInput _Input) { CoolDown += (float)gameTime.ElapsedGameTime.TotalMilliseconds; if (CoolDown > 2000) { CoolDown = 0; StateManager.getInst().ExitScreen(); StateManager.getInst().AddScreen(new MainGame(IDGameState.MAINGAME)); } GlobalValue.IS_LOCK_KEYBOARD = false; if (_Input.KeyPressed(Keys.Delete)) { GlobalValue.MARIO_LIFE++; } base.HandleInput(gameTime, _Input); }
public override void UpdateMovement(GameTime _GameTime, CInput _Input) { GlobalValue.MARIO_POSITION = this.Position; if (_Input.KeyPressed(Keys.Z) && IDObject == IDObject.FIRE_MARIO) { AddBullet(); if (Sprite.Animation.CurFrame != 5) { Sprite.Animation.CurFrame = 5; Sprite.Animation.SetLocalAnimation(); } Status = IDStatus.MARIO_ATTACK; } // Gia tốc trọng trường if (Status != IDStatus.TELEPORT) { Accel = new Vector2(m_Accel.X, 0.00098f); } if (Status != IDStatus.MARIO_JUMP && Status != IDStatus.DIE && !GlobalValue.IS_LOCK_KEYBOARD) { AnalysisInput(_Input); } //ManageTeleport(_GameTime); UpdateBullet(_GameTime, _Input); ManageBullet(); LimitSpeed(); CheckDead(); base.Update(_GameTime, _Input); }
/// <summary> /// Phân tích tín hiệu input để xử lý status cho Mario /// </summary> /// <param name="_Input"></param> /// <returns></returns> private void AnalysisInput(CInput _Input) { if (_Input.KeyDown(Keys.Right) && Status != IDStatus.MARIO_JUMP && !m_IsDisableRight) { Direction = IDDir.RIGHT; Accel = new Vector2(0.001f, Accel.Y); Status = IDStatus.MARIO_RUN; } if (_Input.KeyDown(Keys.Left) && Status != IDStatus.MARIO_JUMP && !m_IsDisableLeft) { Direction = IDDir.LEFT; Accel = new Vector2(-0.001f, Accel.Y); Status = IDStatus.MARIO_RUN; } if (_Input.KeyPressed(Keys.Up) && m_IsJumping == false && !m_IsDisableUp && Status != IDStatus.MARIO_ATTACK) { Status = IDStatus.MARIO_JUMP; m_IsJumping = true; Velocity = new Vector2(Velocity.X, -0.35f); if (IDObject == IDObject.SMALL_MARIO) { SoundManager.PlaySound(ESound.SFX_JUMP_SMALL); } if (IDObject == IDObject.FIRE_MARIO|| IDObject == IDObject.SUPER_MARIO) { SoundManager.PlaySound(ESound.SFX_JUMP_BIG); } } if (_Input.KeyDown(Keys.Down) && Status != IDStatus.MARIO_JUMP && !m_IsDisableDown) { //Velocity = Vector2.Zero; Accel = new Vector2(0, Accel.Y); //Status = IDStatus.MARIO_RUN; Status = IDStatus.MARIO_DOWN; } Damping(_Input); }
/// <summary> /// Hãm vận tốc của Mario khi công còn nhận input /// </summary> /// <param name="_Input"></param> /// <returns></returns> private void Damping(CInput _Input) { if (!_Input.KeyDown(Keys.Left) && !_Input.KeyDown(Keys.Right)) { Accel = new Vector2(0, Accel.Y); m_Velocity = new Vector2(m_Velocity.X - m_Velocity.X * 0.1f, m_Velocity.Y); if (Math.Abs(m_Velocity.X) <= 0.001f) { m_Velocity = new Vector2(0.0f, m_Velocity.Y); if(!_Input.KeyDown(Keys.Up) && !_Input.KeyPressed(Keys.Z) && !_Input.KeyDown(Keys.Down) && Status != IDStatus.TELEPORT) { Status = IDStatus.MARIO_STAND; } } } }