Я использую XNA для 2D-проекта. У меня есть проблема, и я не знаю, как ее решить. У меня есть текстура (изображение), которая рисуется на экране, например:
|+++|+++|
|---|---|
|+++|+++|
Теперь я хочу иметь возможность уничтожить часть этой структуры/изображения, чтобы она выглядела так:
|+++|
|---|---|
|+++|+++|
так что коллизия теперь будет работать и для нового изображения.
Каким способом лучше решить эту проблему:
- Замените всю текстуру на другую текстуру, прозрачную в местах разрушения.
- Используйте некоторые хитрости с spriteBatch.Draw(sourceRectangle, destinationRectangle) для получения желаемых прямоугольников, а также каким-то образом выполняйте проверку столкновений с этим.
- Разделите текстуру на 4 меньшие текстуры, каждая из которых будет отвечать за собственное обнаружение отрисовки/столкновений.
- Используйте какой-то другой хитрый способ, о котором я не знаю.
Любая помощь будет оценена по достоинству. Дайте мне знать, если вам нужно больше разъяснений/примеров.
РЕДАКТИРОВАТЬ: Чтобы уточнить, я приведу пример использования для этого. Представьте себе кусок стены размером 4x4, в который при выстреле разрушается небольшая часть 1x1.