Skip to content

fnx-io/hex_toolkit_demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Program je mobilní hra napsaná ve Flutteru a Flame. Jedná se o realtime strategii na hexové mapě.

V programu se pracuje se stavem pomocí třídy StateHolder, která je implementována v souboru state_holder.dart. Tato třída obaluje stavový objekt a rozšiřuje ChangeNotifier, což umožňuje notifikovat posluchače o změnách stavu. V aplikaci je vytvořena instance App, která obsahuje StateHolder pro GameState. GameState je neměnný objekt vytvořený pomocí balíčku freezed, který obsahuje vlastnosti jako body (points) a vybraný hexagon (selectedHex). App poskytuje gettery a settery pro přístup k tomuto stavu a také naslouchá změnám stavu a notifikuje své vlastní posluchače.

Uživatelské rozhraní v hell_widget.dart používá context.watch() k naslouchání změnám v instanci App a aktualizaci UI podle aktuálního stavu. Widget zobrazuje aktuální počet bodů a vybraný hexagon (pokud existuje) ze stavu hry. Když dojde ke změně stavu, UI se automaticky překreslí díky mechanismu Provider, který je použit pro distribuci stavu v aplikaci.

Herní komponenty jako hex_component.dart a selected_hex_component.dart interagují se stavem čtením a zápisem do vlastnosti app.game. Například když uživatel klikne na hexagon v HexComponent, aktualizuje se stav hry nastavením vybraného hexagonu a zvýšením počtu bodů pomocí metody copyWith, která vytvoří novou instanci neměnného stavu. SelectedHexComponent pak čte selectedHex ze stavu a vykresluje bílý obrys kolem vybraného hexagonu. Tento přístup ke správě stavu zajišťuje, že všechny komponenty mají konzistentní pohled na stav aplikace.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published