It would be easy enough to make my own system for this, but I'm figuring that the .NET library, being as massive as it is, probably already has a class made for this very purpose.
For hit detection, my VB.NET game uses two 2D arrays that store the state of each pixel in the level. Each element in these arrays is a Byte (or, more accurately, a value of a flag enumeration type based on Byte).
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
I would enjoy being able to just give each sprite & tile its own 2D array of hit detection data (defining which pixels of the object are solid, dangerous, etc) that can be directly written to TiHD or SpHD at a specified offset.
I'm willing to bet that .NET has a class that can do this for me.
Presumably I would just have to pass TiHD or SpHD to the constructor, and then I would be able to use the object to indirectly modify the array with extended functionality (similar to using a Graphics object to modify a Bitmap). Is there such a class?