Работя върху 2d игра отгоре надолу в чиста Java и досега имам система за картографиране на шума, която работи с парчета плочки (и обекти) точно като Minecraft.
Начинът, по който съхранявам плочки, е чрез създаване на int[s * s]
масив, където s
е размерът (в плочки), който има страна на парчето. След това имам статичен масив от плочки, който съдържа всяка от възможните плочки в играта, индексирана с цяло число. Това са целите числа, съхранени в int[s * s]
във всяка част. Сега искам да мога да наслагвам плочки, като невидими плочки за хвърляне на хайвера, стени, дървета и преходни плочки (като когато тревата се промени на пясък: трябва да има граница от трева над пясъка, което би било нова плочка).
Проблемът е, че само едно цяло число може да се съхранява във всяка координата на парчето. Друг начин да го направите е да поставите действителни екземпляри на плочките вътре в парчетата и да накарате наслагващите се плочки да сочат към тези директно под тях (като стек), но мисля, че това е доста лош подход. Друг подход, който тествах, беше да направя масив от списъци с плочки, което също беше много лошо.
Кой би бил добър начин да се постигне това?