public override void Update(GameTime gameTime) { //Från ditt shooterspel direction = target.pos - pos; direction.Normalize(); pos += direction * (speed * 50) * gameTime.ElapsedGameTime.Milliseconds / 1000; rectangle = new Rectangle((int)pos.X, (int)pos.Y, size, size); angle = (float)(Math.Atan2(pos.Y - target.pos.Y, pos.X - target.pos.X) - Math.PI / 2); // Radianer?!?!?!?!??!?!?! if (Vector2.Distance(pos, target.pos) < 10) { dead = true; TowerShooting.NewExplotion(target.pos); foreach (EnemyBase enemy in EnemyController.EnemyList) { if (Vector2.Distance(pos, enemy.pos) < 100) { enemy.TakeDamage((float)(damage - (0.35 * Vector2.Distance(pos, enemy.pos)))); } } target.TakeDamage(damage); } }
protected override void shoot(GameTime gameTime, EnemyBase target) { //Har det gått lång tid nog föt att skjuta ? if (gameTime.TotalGameTime.TotalSeconds > NextShot) { TowerShooting.NewMissile(pos, target, 50, damage); NextShot = gameTime.TotalGameTime.TotalSeconds + timeToShoot; } }
public static void Draw(SpriteBatch spriteBatch) { TowerShooting.Draw(spriteBatch); foreach (TowerBase Tower in TowerLista) { Tower.Draw(spriteBatch); } }
protected override void shoot(GameTime gameTime, EnemyBase target) { //Skada fiende target.TakeDamage(damage * (float)gameTime.ElapsedGameTime.TotalSeconds); //Rita ut "lasern" if (currentTarget != target) { TowerShooting.NewLaser(pos, target, range); } }
public BombExplode(Vector2 pos, int damage) { TowerShooting.NewExplotion(new Vector2(pos.X + 25, pos.Y + 25)); foreach (EnemyBase enemy in EnemyController.EnemyList) { if (Vector2.Distance(pos, enemy.pos) < 100) { enemy.TakeDamage((float)(damage - (0.35 * Vector2.Distance(pos, enemy.pos)))); } } }
public static void Update(GameTime gameTime) { for (int i = 0; i < TowerLista.Count; i++) { if (!TowerLista[i].dead) { TowerLista[i].Update(gameTime); } else { TowerLista.RemoveAt(i); i--; } } TowerShooting.Update(gameTime); }
protected override void shoot(GameTime gameTime, EnemyBase target) { TowerShooting.NewBombExplode(pos, damage); dead = true; }