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; } } }
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(); } }
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(); } } }