Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
 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);
            }
        }
Esempio n. 4
0
 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);
     }
 }
Esempio n. 5
0
        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);
        }
Esempio n. 7
0
 protected override void shoot(GameTime gameTime, EnemyBase target)
 {
     TowerShooting.NewBombExplode(pos, damage);
     dead = true;
 }