В настоящее время каждый уровень имеет 3 слоя:
- задний план
- столкновения (стены, невидимые стены, земля и т. д.)
- передний план
Спрайт моего персонажа имеет 1 пиксель для обнаружения столкновения. В этом классе символов есть Color[], содержащий все пиксели слоя столкновения.
Я вычисляю позицию обнаружения пикселя персонажа и получаю целое число, которое я могу использовать с Color[] ("CharactersPixel")
if ( Color[CharactersPixel].A != 0 )
Then collision.
Это работает отлично.
Но слой столкновения должен использоваться любыми другими объектами, такими как частицы, монстры и т. д.
Слой столкновения имеет около 3 800 000 пикселей. так что Color[] имеет то же самое.
Если я добавлю это Color[] к каждому объекту, это будет использовать слишком много оперативной памяти, верно?