@AgamemnonAko myslíš tie premenné? Asi sa nechápeme. Chcel som to spraviť tak, že na začiatku sa vytvorí nová inštancia triedy level, viac menej ten bude všetko riadiť ďalej takto:
-v konštruktore načítam mapu, prejdem celú mapu a keď nájde na mape nejaký item/nepriateľa/freda, pridá ho do generického zoznamu Actorov - Actor je interface, ktorý implementujú 2 abs. triedy: Character (fred, nepriateľa) a Item (hviezdy elixíry...) - viac menej takto to bolo načrtnuté v scenároch, akurát batoh mám myslím trocha inak, resp. zo scenárov som nepochopil ako to celkovo bolo myslené, ale funguje mi to v pohode
-v update metóde hry sa updatne len samotný level, čo v princípe znamená toľko, že prejde celým tým generickým poľom (v ktorom už má všetky predmety, postavy...) a každú z nich updatne (ak je čo updatnúť, to už riadia metódy na všetko prakticky zvlášť)
-v render metóda funguje rovnako, akurát sa ale nič neupdatuje, ale už len zobrazí
Fred ani nič ostatné už po tom, čo ho raz dostanem do toho generického zoznamu už nemusí mať informáciu o vrstve. To chcem riešiť tak, že medzi jednotlivými vykresleniami vrstiev mapy len vsuniem vykreslenie prvkov zoznamu. Potom budem pokračovať v mape a teda dosiahnem ten efekt, že niečo bude pred a niečo za. Malo by sa to takto dať, no keďže zatiaľ akosi neviem načítať veci do toho zoznamu, bez toho aby sa zahltil program, neviem to otestovať či sa to dá presne podľa mojich predstáv.
Pozrel som cez task managera a niekde sa to zahlcuje:
-ak nechám prejsť celú mapu ale nevytvorím tie inštancie predmetov (zakomentoval som tú časť) tak mi cez task manager vo wine píše okolo 100Mb pamäte
-ak nechám celý kód ako by mal byť aj s tými novými inštanciami, tak to presahuje 400mb pamäte
@Mitwoc:-na koniec mapy, na miesto, kam už nechceš aby sa dalo ísť umiestni collision, toto ešte ja nemám implementované, ale chcem to spraviť tak, že tam dám značku collision, parametre "block" "true" a potom to nejako budem riešiť cez intersecty, ale ešte neviem presne
K vykreslovaniu v strede okna: použi na to jednu z variánt metódy render:
// render(int x, int y, int sx, int sy, int width, int height)
map.render(100,100,0,0,10,10);
// Which would render the section of the map in tiles from 0,0 to 10,10 at the screen position 100,100. This can be be very useful for performance when scroll round large tile maps.