Po dlouhé době jsem se odhodlal zase něco naprogramovat v Dartu. Dart Editor je pořád ještě o nervy, jak se s ním pracuje. Vzhled je subjektivní, ale pohodlnější při práci je snad i TypeScript ve VS než Dart ve Dart Editoru. A to už nemluvím o tom že mu nestačí 8GB RAM, buď neustále hlásí Windows že není paměť a nebo se Dart Editor bez jakéhokoliv uložení souboru vypne. Tak ale ke mravencům. Dělal jsem na nich týden. 6.4. byly Velikonoce, státní svátek a já se pokoušel nahrávat na svůj web updatované verze programu. 💻
Jen jeden soubor byl větší než výchozí limit 28,6MB a můj soubor měl 34,1MB takže vždy jak se to dostalo za 28,6 MB se to resetovalo a nahrávalo od znovu. Psal jsem na podporu ASPOne jestli mi mohou navýšit limit pro upload a nečekal jsem ten den odpověď, neboť byl státní svátek. Proto jsem začal programovat Mravence v Dartu, abych nemarnil čas a nezahálel. Z počátku jsem si hrál s grafikou, netušil jsem do jaké míry půjde ořezávat obrázky, protože vždy v průběhu hry mají oba hrady mezi 0 a 100%.
Nakonec se mi to podařilo úplně jednoduše, přes css vlastnosti height a top. Stejně tak jsem udělal hradbu. Veškerou grafiku jsem si vzal z původních mravenců, zvuky tam bohužel nebyly a ani se mi je nepodařilo extrahovat v vizuálním programovacím nástroji Petr, mohl jsem si je tam pouze přehrát tak jsem to nahrál ze zvukovky. Žel ač jsem měl zvuky na maximum, jsou asi 2x tišší než v originální hře. U zvuku jsem taky zkysnul polovinu dne, jsem to chtěl udělat přes balíček Dart SDK web_audio, nevím jestli jsem to dělal správně ale narazil jsem že jsem mohl vytvořit maximálně 6 „hardware context“, tedy zvuků. 🔊
Nakonec jsem to vyřešil tak že pro každý zvuk jsem vytvořil html element <audio> a do nej nahrál zvuk. To má za nevýhodu tu, že zřejmě při každém přehrání zvuku se musí zvuk načíst z webu, pokud si ho Dartium nějak necachuje. To je další věc, stejně jako všechny moje ostatní Dart programy, nejsou přeloženy do JS, takže je spustíte pouze v Dartium. Bohužel ani v současné době nejsou žádné indicie že by Google měl v plánu integrovat Dart VM do Chrome či Chromium, což je škoda.
Každopádně budete potřebovat rychlou linku a i rychlý PC, rychlou linku pro načítání a obrázků a rychlý PC pro stíhání několika timerů které vytvářejí animace. Není to úplně 100% věrná kopie Win32 mravenců, teď si nejsem jistý zda po skončení hry zpívají furt ptáci (já je ukončuji ale nevím zda to funguje), získání nové karty není animované, pokud hrajete s PC, tak PC už volí vlastní kartu aniž by uplynulo 1s během které se vaše karta přesunuje (takže defakto se najednou přesunují 2 karty), některé karty mají fialovou barvu, kterou Petr převáděl na šedou (stín) a hrad ani hradba nemají stín a ještě by se něco našlo. 🐜
Jsem to včera večer už hodil na G+, nicméně dnes jsem si všiml že mám při každém tahu jiné karty, tak jsem to ještě opravoval. Největší haluz byla že jsem to hrál na webu a najednou se to chovalo ok, i když jsem tam nenahrál nové soubory. Ale když se to korektně chovalo i na localhostu, už jsem to nechal jak jsem to upravil. Nyní jsou mravenci dokonalí – aspoň pro mě. Pokud si je chcete zahrát, nepotřebujete již Dartium, stačí vám jakýkoliv webový prohlížeč a www.sunamo.cz v něm :). A doporučuji hrát s PC, zdá se mi o hodně chytřejší než původní PC protivník :).