Ukladani promennych
- staticke promenne bude mozno ulozit do profilu
- pri startu kernelu se loaduje obsah promenny z profilu. Kdyz promenna jeste u profilu neni, vytvori se a priradi se ji hodnota (kodem za rovna se)
- pri ukonceni kernelu se hodnoty permanetnich promennych sejvuji do profilu
- tyhle promenne mohou byt jakychkoli typu krome objektu
- Zpusob ulozeni:
- globalni promenna - existuje jen jedna hodnota
- levlova promenna - kazdy level si schovava svoji hodnotu. V profilu jsou promenne sejvnute v hierarchii, ktera kopiruje adresarovou strukturu v games - takze kazdy adresar ma svoji promennou.
- statisticka promenna - kazdy level si schovava svoji hodnotu, plus pro adresare se pocita hodnota statistickymi funkcemi jako minimum, maximum, soucet, prumer. Protoze jsou tyto promenne pro adresare pocitane, nelze je ukladat (pri startu se spocitaji a nactou, pri ukonceni se nedeje nic). V adresarich levlu se promenna chova normalne.
- Mam u sejvnute hry nahrat promenne znuvu z profilu nebo pouzit jejich sejvnutou hodnotu? (spise je nahraju znovu)
- Budu mazat promenne neexistujicich adresaru? (smazani ovlivni vypocty statistickych promennych) (spise ano)
- Funkce na cteni perm. promennych od ostatnich hracu (v budoucnu i pres net) -> tvorba high scores tabulek.
Adresarove skripty *.dkc
- Slouzi k zobrazovani statistik a konfigurace. Uvnitr se ocekava objekt @CConfiguration, ve kterem muzes definovat permanentni staticke promenne s editacnima tagama.
- Pro kazdy adresar se naloaduji vsechny *.dkc skripty v nem a v rodicich, ty se zkompiluji (do .cede souboru s nazvem a verzi adresare) a spusti, kdyz do adresare vlezes. -> v postrannim panelu se ti objevi editace promennych objektu @CConfiguration
- Do beznych skriptu musis *.dkc includovat, pokud je chces pouzivat
- Do *.dkc muzes inkludovat jen jine *.dkc. Hodi se to pokud chces rozsirovat funkcionalitu.
- Kdy adresarove skripty kompilovat? Na pozadani?
- V postrannim panelu bude videt vzdy vystup adresaroveho skriptu nebo se bude i neco dit, pokud budes klikat na levly? (naloadovat *.dkc levlu? Nebo jen poupravit statisticky promenny?) Nejlepsi by bylo kdybys videl zaroven promenne, ktere se tykaji adresare a zaroven promenne, ktere jsou specificke v levlu. Jak to delat? Pravdepodobne vzdy, kdyz tuknes na level, restartuju kernel a spustim *.dkc skripty toho levlu. Ty uz se musi postarat o to, aby byly prehledne zobrazene jak veci, tykajici se adresare tak veci tykajici se levlu.
Rozsireni editacnich tagu
- moznost mit [editable, readonly] promenne
- tagy [hidden] - skryti polozky, [expanded], [collapsed] - pro skupinu
- moznost za behu menit editacni tagy. Tagy nejsou ulozeny u objektu, ale u tridy (tzn vsechny objekty tridy jsou stejne nastaveny). Pokud objekt pozada o zmenu tagu, tak ke zmene dojde, jen pokud je polozka zrovna zobrazovana. Objektum bude posilana zprava @EditationStarted, kdyz si je editor vybere k editaci. V teto metode ma objekt sanci si nastavit editacni tagy nebo prepocitat promenny.
- Poznamka: Editovat pujdou i "staticke objekty" - to jest pouhe seskupeni statickych promennych. V tomto pripade nemuzu zavolat statickou metodu @EditationStarted, protoze ta by byla sdilena vsemi statickymi objekty. Co s tim? -> At maj i tyto objekty instanci ve (sve) staticke promenne. Editor je pak identifikuje podobne jako v soucasne verzi objekt oMap a podobne. @EditationStarted pak muze byt obycejna. Tato promenna s instanci musi byt oznacena tagem, aby editor vedel, ze ji ma nacist mezi "outmap" objekty.
- Pozor! - u spojovych seznamu se mi stane, ze mam ten samou tridu zobrazenou vicekrat! (dokonce i ten samy objekt! (cykly))
- Pro *.dkc neni nutne mit @CConfiguration ve staticke promenne. Objekt bude pri prochazeni adresaru vytvoren automaticky
- Krome promennych zobrazovat dalsi polozky: Buttony, oddelovace, labely.
- V budoucnu mit tagy urcujici formatovani (styl, barvu, font, ...) polozek
- Moznost pridavat dalsi polozky do skupiny, ktera vznikla v jine objektove zavorce (v jinem souboru) nebo v predkovi.
- Skupiny se daji vnorovat.
- Moznost naloadovat hodnotu statisticke promenne nadrazeneho adresare (a jeho nadrazeneho adresare atd.)
- Moznost zjistit v jakem adresari se nachazim. (adreasar z nehoz byl spusten skrypt (muze byt jiny nez adresar kde je skript)) Jaky je muj nadrazeny adresar atd.
- Moznost zjistit, jaky adresar je zobrazen v browseru. Pokod je vybran level, tak adresar spusteni a adresar v browseru se lisi. Pokud level vybran neni, tak se shoduji
Priklad
Mohu mit nasledujici skupiny:
- Main - zde budou ulozeny statisticky promenny. Skupina bude zobrazena, kdyz bude vybran adrsar/level samostatne.
- Level - zde budou promenny, do kterych okopiruju hodnoty svych stat. promennych - zobrazim, kdyz budu chtit dvoji info
- Adresar - zde budou promenny do kterych priradim hodnoty stat. promennych nadrazeneho adresare. - zobrazim, kdyz budu chtit dvoji info
- Konfigurace, ci dalsi extra skupiny - budou vzdy zobrazeny s aktualnimi promennymi, stejne jako Main
Protoze muzu menit za behu nastaveni tagu, muzu podle situace skupiny skryvat, ci odkryvat a menit jejich nazvy (UserName)
Aby to hezky fungovalo musim si zapomatovat stav rozbalenosti/zabalenosti skupin a obnovit ho pri kliku na jiny level (po rloadovani kernelu). But to muzu nechat zapomatovat automaticky po pouziti nejakeho dalsiho tagu. Nebo rucne (vic programovani) pomoci permanentnich statickych promennych.
