Exemple #1
0
        public void EnemyBlockCollide(Enemy enemy, Block block)
        {
            Rectangle enemyRect    = enemy.GetBoundingBox();
            Rectangle blockRect    = block.GetBoundingBox();
            Rectangle intersection = Rectangle.Intersect(enemyRect, blockRect);

            if (intersection.Height > intersection.Width)
            {
                if (enemyRect.Right > blockRect.Left && enemyRect.Right < blockRect.Right)
                {
                    enemy.position.X = enemy.position.X - intersection.Width;
                    enemy.GoLeft();
                }
                else
                {
                    enemy.position.X = enemy.position.X + intersection.Width;
                    enemy.GoRight();
                }
            }
            else
            {
                if (enemyRect.Bottom > blockRect.Top && enemyRect.Bottom < blockRect.Bottom)
                {
                    enemy.position.Y = enemy.position.Y - intersection.Height;
                }
                else
                {
                    enemy.position.Y = enemy.position.Y + intersection.Height;
                }
            }
        }
Exemple #2
0
        public void PipeEnemyCollide(Enemy enemy, Pipe pipe)
        {
            Rectangle enemyRect    = enemy.GetBoundingBox();
            Rectangle pipeRect     = pipe.GetBoundingBox();
            Rectangle intersection = Rectangle.Intersect(enemyRect, pipeRect);

            if (intersection.Height > intersection.Width)
            {
                if (enemyRect.Right > pipeRect.Left && enemyRect.Right < pipeRect.Right)
                {
                    enemy.position.X = enemy.position.X - intersection.Width;
                    enemy.GoLeft();
                }
                else
                {
                    enemy.position.X = enemy.position.X + intersection.Width;
                    enemy.GoRight();
                }
            }
            else
            {
                if (enemyRect.Bottom > pipeRect.Top && enemyRect.Bottom < pipeRect.Bottom)
                {
                    enemy.position.Y = enemy.position.Y - intersection.Height;
                }
                else
                {
                    enemy.position.Y = enemy.position.Y + intersection.Height;
                }
            }
        }
 public void Update(Enemy enemy, GameTime gameTime)
 {
     enemy.position.Y++;
     enemy.physState.Update(enemy, gameTime);
     sprite.Update(gameTime);
     if (enemy.left)
     {
         enemy.GoLeft();
     }
     else
     {
         enemy.GoRight();
     }
 }
Exemple #4
0
 public void Update(Enemy enemy, GameTime gameTime)
 {
     //bill glides over everything but mario
     if (!enemy.isDead)
     {
         enemy.isMagic = true;
         enemy.GoLeft();
     }
     else
     {
         enemy.GoRight();
         enemy.position.Y += 2;
     }
 }
        public void EnemyEnemyCollide(Enemy enemy1, Enemy enemy2)
        {
            Rectangle enemy1Rect   = enemy1.GetBoundingBox();
            Rectangle enemy2Rect   = enemy2.GetBoundingBox();
            Rectangle intersection = Rectangle.Intersect(enemy1Rect, enemy2Rect);

            if (intersection.Height > intersection.Width)
            {
                if (enemy1Rect.Right > enemy2Rect.Left && enemy1Rect.Right < enemy2Rect.Right)
                {
                    enemy1.position.X -= intersection.Width;
                    enemy1.GoLeft();
                    enemy2.GoRight();
                }
                else
                {
                    enemy1.position.X += intersection.Width;
                    enemy1.GoRight();
                    enemy2.GoLeft();
                }
            }
        }