protected override void Update(GameTime gameTime) { deadLinkSpin.Update(gameTime); float dt = (float)gameTime.ElapsedGameTime.TotalSeconds; if (player.Health > 0) { player.Update(gameTime); } //bat.Update(gameTime,player.Position); dragon.Update(gameTime); monster.Update(gameTime); hand.Update(gameTime); knight.Update(gameTime); foreach (Item it in Item.items) { it.Update(gameTime); } foreach (explosion ex in explosion.exp) { ex.Update(gameTime); } foreach (Bat bat in Bat.bats) { bat.Update(gameTime, player.position); int sum = player.Radius + bat.Radius; if (Vector2.Distance(player.Position, bat.location) < sum && player.HealthTimer <= 0) { player.Health--; Vector2 moveDir = player.Position - bat.location; moveDir.Normalize(); player.Pcolor = Color.Red; player.Position += moveDir * player.Damagedspeed * dt * 15; player.HealthTimer = 1.0f; } if (player.HealthTimer <= 0) { player.Pcolor = Color.White; } } foreach (ArrowProj arrow in ArrowProj.arrowLeft) { foreach (Bat bat in Bat.bats) { int sum = arrow.Radius + bat.Radius; if (Vector2.Distance(arrow.Position, bat.location) < sum) { arrow.Collided = true; bat.Health--; if (bat.Health <= 0) { explosion.exp.Add(new explosion(bat.location)); } } } } foreach (ArrowProj arrow in ArrowProj.arrowRight) { foreach (Bat bat in Bat.bats) { int sum = arrow.Radius + bat.Radius; if (Vector2.Distance(arrow.Position, bat.location) < sum) { arrow.Collided = true; bat.Health--; if (bat.Health <= 0) { explosion.exp.Add(new explosion(bat.location)); } } } } foreach (ArrowProj arrow in ArrowProj.arrowUp) { foreach (Bat bat in Bat.bats) { int sum = arrow.Radius + bat.Radius; if (Vector2.Distance(arrow.Position, bat.location) < sum) { arrow.Collided = true; bat.Health--; if (bat.Health <= 0) { explosion.exp.Add(new explosion(bat.location)); } } } } foreach (ArrowProj arrow in ArrowProj.arrowDown) { foreach (Bat bat in Bat.bats) { int sum = arrow.Radius + bat.Radius; if (Vector2.Distance(arrow.Position, bat.location) < sum) { arrow.Collided = true; bat.Health--; if (bat.Health <= 0) { explosion.exp.Add(new explosion(bat.location)); } } } } ArrowProj.arrowLeft.RemoveAll(p => p.Collided == true); ArrowProj.arrowRight.RemoveAll(p => p.Collided == true); ArrowProj.arrowUp.RemoveAll(p => p.Collided == true); ArrowProj.arrowDown.RemoveAll(p => p.Collided == true); Bat.bats.RemoveAll(e => e.Health <= 0); explosion.exp.RemoveAll(ex => ex.Timer <= 0); CollisionHandler collisionHandler = new CollisionHandler(); collisionHandler.CollisionHandle(player, myHUD); bombHandler.Update(gameTime); arrowHandler.Update(gameTime); boomerangHandler.Update(gameTime); //cam.LookAt(player.camPosition); cam.LookAt(player.position); base.Update(gameTime); }