Было бы достаточно легко создать собственную систему для этого, но я полагаю, что в библиотеке .NET, какой бы огромной она ни была, вероятно, уже есть класс, созданный именно для этой цели.
Для обнаружения попаданий в моей игре VB.NET используются два 2D-массива, в которых хранится состояние каждого пикселя на уровне. Каждый элемент в этих массивах является байтом (или, точнее, значением типа перечисления флагов на основе байта).
Public TiHD(,) As HitDT ''//State of each pixel in the level based on
''// its underlying tile.
Public SpHD(,) As HitDT ''//State of each pixel in the level based on
''// sprite occupation.
<Flags> _
Public Enum HitDT As Byte
Solid = 1
Danger = 2
Water = 4
Healing = 8
Restore = 16
AreaExit = 32
End Enum
Мне бы хотелось иметь возможность просто дать каждому спрайту и тайлу свой собственный 2D-массив данных об обнаружении попаданий (определяющих, какие пиксели объекта сплошные, опасные и т. д.), которые можно напрямую записать в TiHD или SpHD с заданным смещением.
Готов поспорить, что в .NET есть класс, который может сделать это за меня.
Предположительно, мне нужно будет просто передать конструктору TiHD или SpHD, и тогда я смогу использовать объект для косвенного изменения объекта. массив с расширенной функциональностью (аналогично использованию объекта Graphics для изменения растрового изображения). Есть ли такой класс?