コード例 #1
0
        private void EnemyShoot()//let every enemy randomly or over a duration fire a projectile
        {
            EnemyProjectile enemyProjectile;

            foreach (Invader enemy in Invaders)
            {
                if (Rnd.Next(0, 800) == 1)
                {
                    enemyProjectile = new EnemyProjectile(GameDisplay, enemy, 7);//new object of the type EnemyProjectile
                    EnemyProjectiles.Add(enemyProjectile);
                }
            }
            if (UfoReloadTimer < 100)
            {
                UfoReloadTimer++;
            }
            if (UfoReloadTimer > 90)
            {
                foreach (Ufo enemy in Ufos)
                {
                    enemyProjectile = new EnemyProjectile(GameDisplay, enemy, 7);//new object of the type EnemyProjectile
                    EnemyProjectiles.Add(enemyProjectile);
                }
                UfoReloadTimer -= 16;
            }
        }
コード例 #2
0
    private void OnCollisionEnter2D(Collision2D other)
    {
        HealthSystem enemy = other.gameObject.GetComponent <HealthSystem>();

        if (enemy)
        {
            if (!IsNotGettingDamage(other.gameObject))
            {
                if (enemy.tag == ("EnemyCriticalArea"))
                {
                    enemy.Damage(m_CriticalDamage);
                }
                else
                {
                    enemy.Damage(m_WeaponDamage);
                }
            }
        }

        EnemyProjectiles projectile = other.gameObject.GetComponent <EnemyProjectiles>();

        if (projectile)
        {
            projectile.Blocked();
            if (m_BlockAction)
            {
                m_BlockAction.ObjectBlocked();
            }
        }
    }
コード例 #3
0
    //--------------------------------
    // 3 - Shooting from another script
    //--------------------------------

    /// <summary>
    /// Create a new projectile if possible
    /// </summary>
    public void Attack(bool isPlayer)
    {
        if (CanAttack)
        {
            shootCooldown = shootingRate;

            // Create a new shot
            var shotTransform = Instantiate(shotPrefab) as Transform;

            // Assign position
            shotTransform.position = transform.position;

            // The is enemy property
            EnemyProjectiles shot = shotTransform.gameObject.GetComponent <EnemyProjectiles>();
            if (shot != null)
            {
                shot.isPlayerShot = isPlayer;
            }



            // Make the weapon shot always towards it
            Move move = shotTransform.gameObject.GetComponent <Move>();

            move.direction = this.transform.right * -1;
            shot.transform.Rotate(0, 0, -180.0f);
        }
    }
コード例 #4
0
ファイル: Enemy1.cs プロジェクト: simonkwong/Shooter
        public void Update(GameTime gameTime)
        {
            enemyObject.Update(gameTime);

            timeSinceLastShot += (float)gameTime.ElapsedGameTime.TotalSeconds;

            if (Velocity.LengthSquared() > Max_Speed_Squared)
            {
                Velocity.Normalize();
                Velocity = Vector2.Normalize(Velocity) * Max_Speed;
            }

            enemyObject.Position += Velocity * (float)gameTime.ElapsedGameTime.TotalSeconds;
            Position              = enemyObject.Position;

            if (enemyObject.Position.X > mWorld.WorldWidth - 75 || enemyObject.Position.X < (mWorld.WorldWidth / 4) + 300)
            {
                Velocity.X = -Velocity.X;
            }
            if (enemyObject.Position.Y > mWorld.WorldHeight - 50 || enemyObject.Position.Y < 100)
            {
                Velocity.Y = -Velocity.Y;
            }

            if (timeSinceLastShot > shotCooldown)
            {
                EnemyProjectiles.CreateProjectile(enemyObject.Position + new Vector2(0, 25), rotate(mShipdata.facing, enemyObject.Rotation) * mShipdata.bulletSpeed);
                timeSinceLastShot = 0.0f;
                RandomizeShotCooldown();
                RandomizeMovement();
            }

            EnemyProjectiles.Update(gameTime);
        }
コード例 #5
0
 /// <summary>
 /// Realiza la acción "fogueo" para borrar los proyectiles de la pantalla
 /// </summary>
 public void DoCleaner()
 {
     lock (l)
     {
         Projectiles.Clear();
         EnemyProjectiles.Clear();
     }
     cleanerEffect = 5;
     Player.ProjectilesAvailable = Character.MaxProjectiles;
 }
コード例 #6
0
    void FireProjectile()
    {
        projA = enemyManager.GetProjectileToShoot();

        projA.SetProjectileActive(transform.position + transform.right, new Vector2(0.0f, 5.0f) * transform.right);

        projB = enemyManager.GetProjectileToShoot();

        projB.SetProjectileActive(transform.position - transform.right, new Vector2(0.0f, 5.0f) * -transform.right);
    }
コード例 #7
0
        public void ClearGame()//Removes all Gameobjects from the Gamedisplay and resets the Gamevalues
        {
            Player.HealthPoints = 3;
            score        = 0;
            levelcounter = 1;

            PlayerProjectiles.Clear();
            EnemyProjectiles.Clear();
            Invaders.Clear();
            Ufos.Clear();
            Walls.Clear();
            GameDisplay.Children.Clear();
        }
コード例 #8
0
ファイル: HealthScript.cs プロジェクト: youngwghs/VSTest
    void OnTriggerEnter2D(Collider2D col)
    {
        //will notice a collision if hurt by enemy projectile
        EnemyProjectiles shot = col.gameObject.GetComponent <EnemyProjectiles>();

        if (shot != null)//if shot
        {
            if (shot.isPlayerShot != isPlayer)
            {
                Damage(shot.damage);      //calling function
                Destroy(shot.gameObject); //calling function
            }
        }
    }
コード例 #9
0
 public void CleanTemporaryGameLists()//gameobject lists are cleaned up
 {
     GameDisplay.Children.Clear();
     //lists are updated
     EnemyProjectiles  = EnemyProjectiles.Except(TemporaryEnemyProjectiles).ToList();
     PlayerProjectiles = PlayerProjectiles.Except(TemporaryPlayerProjectiles).ToList();
     Ufos     = Ufos.Except(TemporaryUfos).ToList();
     Walls    = Walls.Except(TemporaryWalls).ToList();
     Invaders = Invaders.Except(TemporaryInvaders).ToList();
     //temporary lists are cleared
     TemporaryWalls.Clear();
     TemporaryPlayerProjectiles.Clear();
     TemporaryInvaders.Clear();
     TemporaryEnemyProjectiles.Clear();
     TemporaryUfos.Clear();
 }
コード例 #10
0
 public void Draw(SpriteBatch spriteBatch)
 {
     enemyObject.Draw(spriteBatch);
     EnemyProjectiles.Draw(spriteBatch);
 }