У меня есть вражеский прямоугольник
public void Update(GameTime gameTime)
{
enemyRectangle = new Rectangle((int)enemyPosition.X, (int)enemyPosition.Y, enemyTexture.Width, enemyTexture.Height);
...
У меня есть foreach
l oop, циклически перебирающий список прямоугольников и метод, который проверяет, пересекались ли эти два прямоугольника, и возвращает логическое значение. .
foreach (Bounds bounds in bounds.boundsList)
{
if (bounds.EnemyWallIntersects(testEnemy.enemyRectangle, bounds.CurrentRectangle))
{
testEnemy.isEnemyCurrentlyColliding = true;
}
testEnemy.isEnemyCurrentlyColliding = false;
}
Я уверен, что эти прямоугольники должны пересекаться, но я понятия не имею, что происходит сейчас. Я использовал точку останова, и этот прямоугольник должен пересекаться с точкой, где он имеет те же X и Y, что и вражеский прямоугольник.
Это метод "EnemyWallIntersects".
public bool EnemyWallIntersects(Rectangle rect1, Rectangle rect2)
{
if (rect1.Intersects(rect2))
{
return true;
}
else
return false;
}