Я работаю над 2D-игрой сверху вниз на чистой Java, и до сих пор у меня есть система отображения шума, которая работает с фрагментами плиток (и сущностями), как Minecraft.
Я храню тайлы, создавая массив int[s * s]
, где s
— это размер (в тайлах), который имеет сторона фрагмента. Затем у меня есть статический массив плиток, который содержит все возможные плитки в игре, проиндексированные целым числом. Это целые числа, хранящиеся в int[s * s]
в каждом фрагменте. Теперь я хочу иметь возможность накладывать плитки, такие как невидимые плитки возрождения, стены, деревья и плитки перехода (например, когда трава меняется на песок: над песком должна быть граница травы, которая будет новой плиткой).
Проблема в том, что в каждой координате чанка может храниться только одно целое число. Другой способ сделать это — поместить фактические экземпляры тайлов внутрь фрагментов и сделать так, чтобы накладывающиеся тайлы указывали на те, которые находятся непосредственно под ними (например, в стеке), но я думаю, что это плохой подход. Другой подход, который я тестировал, заключался в создании массива списков плиток, что тоже было очень плохо.
Что было бы хорошим способом сделать это?