Example #1
0
        public bool OnSensorCollision(Fixture f1, Fixture f2, Contact contact)
        {
            EnemyEntity enemy = f2.Body.UserData as EnemyEntity;

            if (enemy != null)
            {
                enemy.DoDamage(30);
            }
            return(true);
        }
Example #2
0
        public void SpawnEnemyRandomly()
        {
            _rand = new Random(_gameScreen.CurrentGameTime.TotalGameTime.Seconds);

            // // pick a corner
            // int cornerIdx = _rand.Next(0, 3);
            // int nextCornerIdx = ((cornerIdx + 1) > 3) ? 0 : (cornerIdx + 1);
            // // dodgy hack .. fix this later

            // Vertices newCorners = new Vertices(4);
            // newCorners.Add(_gameScreen.Corners[1]);
            // newCorners.Add(_gameScreen.Corners[2]);
            // newCorners.Add(_gameScreen.Corners[3]);
            // newCorners.Add(_gameScreen.Corners[0]);

            float rCoef = (float)_rand.NextDouble();

            // Vector2 corner = newCorners[cornerIdx];
            // Vector2 nextCorner = newCorners[nextCornerIdx];
            // Vector2 side = rCoef * (nextCorner - corner);
            // Vector2 spawnPoint = corner + side;

            Vector2 top        = new Vector2(_gameScreen.Player.Position.X + _gameScreen.ScreenSizeDefault.X, 0.0f);
            Vector2 bottom     = new Vector2(_gameScreen.Player.Position.X + _gameScreen.ScreenSizeDefault.X, _gameScreen.ScreenSizeDefault.Y);
            Vector2 topRight   = _gameScreen.Corners[1];
            Vector2 mid        = rCoef * (bottom - top);
            Vector2 spawnPoint = top + mid;

            //const float buffer = 20f;

            //spawnPoint.X += ((top.X - buffer) < 0) ? buffer : -buffer;
            //spawnPoint.Y += ((top.Y - buffer) < 0) ? buffer : -buffer;

            // if spawn point is too close to player, try again ..
            if (Vector2.Distance(_gameScreen.Player.Position, spawnPoint)
                < _minDistFromPlayer)
            {
                SpawnEnemyRandomly();
                return;
            }
            else
            {
                EnemyEntity enemy = new EnemyEntity(_gameScreen, _clip, spawnPoint);
                enemy.AttackPlayerWeight = 1f;
                _gameScreen.AddEnemy(enemy);
            }
        }
Example #3
0
        public void SpawnEnemyRandomly()
        {
            _rand = new Random(_gameScreen.CurrentGameTime.TotalGameTime.Seconds);

            // // pick a corner
            // int cornerIdx = _rand.Next(0, 3);
            // int nextCornerIdx = ((cornerIdx + 1) > 3) ? 0 : (cornerIdx + 1);
            // // dodgy hack .. fix this later

            // Vertices newCorners = new Vertices(4);
            // newCorners.Add(_gameScreen.Corners[1]);
            // newCorners.Add(_gameScreen.Corners[2]);
            // newCorners.Add(_gameScreen.Corners[3]);
            // newCorners.Add(_gameScreen.Corners[0]);

            float rCoef = (float)_rand.NextDouble();

            // Vector2 corner = newCorners[cornerIdx];
            // Vector2 nextCorner = newCorners[nextCornerIdx];
            // Vector2 side = rCoef * (nextCorner - corner);
            // Vector2 spawnPoint = corner + side;

            Vector2 top = new Vector2(_gameScreen.Player.Position.X + _gameScreen.ScreenSizeDefault.X, 0.0f);
            Vector2 bottom = new Vector2(_gameScreen.Player.Position.X + _gameScreen.ScreenSizeDefault.X, _gameScreen.ScreenSizeDefault.Y);
            Vector2 topRight = _gameScreen.Corners[1];
            Vector2 mid = rCoef * (bottom - top);
            Vector2 spawnPoint = top + mid;

            //const float buffer = 20f;

            //spawnPoint.X += ((top.X - buffer) < 0) ? buffer : -buffer;
            //spawnPoint.Y += ((top.Y - buffer) < 0) ? buffer : -buffer;

            // if spawn point is too close to player, try again ..
            if (Vector2.Distance(_gameScreen.Player.Position, spawnPoint)
                < _minDistFromPlayer)
            {
                SpawnEnemyRandomly();
                return;
            }
            else
            {
                EnemyEntity enemy = new EnemyEntity(_gameScreen, _clip, spawnPoint);
                enemy.AttackPlayerWeight = 1f;
                _gameScreen.AddEnemy(enemy);
            }
        }
Example #4
0
        public void DestroyEnemy(EnemyEntity enemy)
        {
            enemy.IsValid = false;

            QueuedForDisposal.Add(enemy);
        }
Example #5
0
        public void AddEnemy(EnemyEntity enemy)
        {
            enemy.IsValid = true;

            ActiveEntities.Add(enemy);
            Enemies.Add(enemy);
        }
Example #6
0
        public void DestroyEnemy(EnemyEntity enemy)
        {
            enemy.IsValid = false;

            QueuedForDisposal.Add(enemy);
        }