/// <summary> /// 更新 /// </summary> /// <param name="gameTime"></param> public override void Update(GameTime gameTime) { if ((isJump == false) && (Input.GetKeyTrigger(Keys.Space) || Input.GetKeyTrigger(PlayerIndex.One, Buttons.B))) { velocity.Y = -10.0f; isJump = true; } else { //ジャンプ中だけ落下 velocity.Y = velocity.Y + 0.4f; //落下速度制限 velocity.Y = (velocity.Y > 16.0f) ? (16.0f) : (velocity.Y); } float speed = 4.0f; //横方向の移動量の計算 velocity.X = Input.Velocity().X *speed + Input.Velocity(PlayerIndex.One).X * speed; if (velocity.X > 0.0f) { rightFlag = true; } else if (velocity.X < 0.0f) { rightFlag = false; } if (Input.GetKeyState(Keys.Z)) { chage = new Vector2(0, a--); } if (Input.GetKeyRelease(Keys.Z)) { if (rightFlag == true) { mediator.AddGameObject(new Magic(position + chage + new Vector2(40, 25), gameDevice, mediator)); } if (rightFlag == false) { mediator.AddGameObject(new leftMagic(position + chage + new Vector2(-10, 25), gameDevice, mediator)); } a = 0; } //位置の計算 position = position + velocity; //プレイヤーの位置を画面の中心に位置補正する setDisplayModify(); }
public override void Update(GameTime gameTime) { switch (state) { case CharaState.Normal: ai.Attack(); Position = ai.Move(); break; case CharaState.Damage: DamageUpdate(gameTime); break; case CharaState.Delete: isDeadFlag = true; mediator.AddGameObject(new SmokeEffect(Position, gameDevice)); break; } //ai.Attack(); //Position = ai.Move(); //【追加】 velocity = ai.Velocity(); UpdateMyDirection(); if (aiName == AIName.Shot) { UpdateShotMyDir(); } currentMotion.Update(gameTime); }
/// <summary> /// 更新 /// </summary> /// <param name="gameTime"></param> public override void Update(GameTime gameTime) { timer.Update(gameTime); if (timer.IsTime()) { mediator.AddGameObject(new Flame(Position + new Vector2(0, -128), gameDevice, 1.0f)); timer.Initialize(); } }