Ejemplo 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);
            }
        }
Ejemplo n.º 2
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))));
                }
            }
        }