petrvobornik / tode Goto Github PK
View Code? Open in Web Editor NEWTower Defense hra v Monogame (C#)
License: MIT License
Tower Defense hra v Monogame (C#)
License: MIT License
Název a popis nemusí být nutně lokalizované, ale před odesláním do Store by tam nějaké být měly.
Kromě pauznutí hry by bylo užitečné mít možnost ji naopak zrychlit (aby vojáci běželi rychleji, střílny zrychlily dobíjení, rakety let apod.).
Prvotní nápad je násobit čas uplynulý mezi dvěma updaty (elapsed time) třeba dvěma a pauzy mezi vlnami závislé na celkovém čase naopak zkracovat.
Otázkou ale je, jestli by tak rychleji běžící jednotka nedostala méně zásahů, než při klasické rychlosti (to chce prověřit). Nejasný je také způsob zapnutí a vypnutí této rychlosti (mohlo by jich být i více, 1.5x, 2x, 3x...). Možná dvojklikem na pauzu, nebo nad ní zobrazit nějakou širší nabídku?
Do základního menu přidat tlačítko pro nastavení, které povede na samostatnou stránku s formulářem pro úpravu předvoleb hry. Nastavení by se mělo ukládat pro příště a mělo by obsahovat alespoň tyto prvky:
Vytvořit lepší Splash Screen (bez popisků od autora obrázku, ale naopak s názvem hry apod.) a ten přidat jak na UWP, tak na Android.
Zvuky pro
Hudba hrající na pozadí jednotlivých levelů. Společná, náhodná, určená pro danou mapu...
Možnost ji vypnout či nastavit její hlasitost.
Doporučené free zdroje:
Monogame je primárně řešena tak, že hned po spuštění přebere řízení celé aplikace a s vypnutím hry ukončí i ji. Spouštění herní části až později, je sice možné, ale vypnutí hry, aby aplikace zůstala běžet, už je trochu komplikovanější, ovšem její opětovné druhé a další spuštění v rámci jednoho běhu aplikace přináší řadu problémů. Např. některý obsah se nedaří opětovně načíst (v UWP textury, na Androidu pro změnu zvuky).
Místo úplného vypínání a uvolňování hry z paměti je tu také možnost si její instanci uložit a opětovně používat, což ale také není úplně typický scénář použití Monogame.
Je tedy třeba nějak tuto situaci vyřešit, aby se hra dala z aplikační části spouštět opakovaně.
Mapu levelu nelze vytvořit s takovými rozměry, aby vždy přesně pokryla všechny typy zařízení, na kterých může být hra spuštěna. Bylo by tedy vhodné, aby se plocha zařízení mohla využít tím, že mapu bude možné libovolně zvětšovat či zmenšovat dotykovým gestem Pinch-to-zoom (popř. kolečkem na myši), díky čemuž bude možné vytvářet i rozměrnější levely.
Zvětšenou mapu (její výřez, který se aktuálně vejde do obrazovky/okna) by pak mělo být možné posouvat pomocí gesta (myši) drag&drop.
Obě tyto funkce by měly mít nějaké rozumné minimum a maximum (to by nemuselo vést ke zvětšování textur, tj. max měřítko 1), přičemž by např. nemělo být možné mapu "odtáhnout" za hranici zobrazovaného prostoru, aby byla zobrazena pouze černá/prázdná plocha. Zmenšení by pak nemělo jít pod hranici, kdy by obě strany mapy byly menší než obrazovka.
Za tímto účelem bude nezbytné osamostatnit ovládací panel, který by měl být roztažen přes celou šířku obrazovky a tomuto zoomování + posouvání nepodléhat. Musí se též vždy nacházet nad mapou a být započten (odečten) do minima pro měřítko a posun (aby spodní řada mapy nezůstávala pod ním).
Vytvořené XML soubory s levely (mapami) lze sdílet, ale zatím je nelze dostat do aplikačního úložiště, a tedy i mít možnost si je zahrát, jinak, než překopírovat textový obsah souboru do schránky a v aplikaci si jej vložit do nového souboru. Bylo by tedy vhodné, aby tyto soubory šlo přidávat nějak jednodušeji a uživatelsky přívětivější cestou.
Ideální by asi bylo soubory propojit s aplikací, aby při se pokusu o jejich otevření nabídla aplikace ToDe, která by se o import postarala. Za tímto účelem bude asi nejvhodnější souborům vymyslet originální koncovku (místo ".XML" třeba ".ToDe"), se kterou by se dala aplikace propojit jak na Androidu, tak na Windows a tuto funkcionalitu aplikaci nastavit a doprogramovat.
Stávající textura (sprite animace) exploze je k dispozici na různých serverech s různými úrovněmi licence. Bude tedy jistější ji, před přidáním hry na store, vyměnit za nějakou nezpochybnitelně free i pro případné komerční účely. Nemusela by však být "méně hezčí".
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.