Ciele
- Vytvorenie nových entít Ball a EmptyPlace
- Pridanie komponentov
- Implementovanie hernej slučky
Úvod
-
V tomto cvičení vytvoríme nové entity a pridáme im komponenty
Postup
-
Úloha: Vytvorte Entitu Ball a EmptyPlace v balíku entitiesPoznámka: Entity nech implementujú rozhranie IEntity a rozširujú triedu GdxActor Entita EmptyPlace nech implementuje aj rozhranie ApplicationContextAware, vďaka ktorému získame prístup ku kontextuÚloha: Vytvorte beany pre tieto Entity podobne ako sme vytvorili bean pre PlayScreenPoznámka: pridajte atribút scope pre tieto beany a nastavte ho na hodnotu "prototype" - to nám zabezpečí vytvorenie novej inštancie týchto objektov
-
Úloha: Do balíka components pridajte komponenty pre vykresľovanie - triedy BallRenderComponent a EmptyPlaceRenderComponent pribalené v archívePoznámka: implementujte metódy ktoré volajú tieto komponenty nad EntitamiÚloha: Použitím anotácie @Autowired nastavte entitám ich závislostíPoznámka: V inicializačných metódach zabezpečte cyklické závislosti ak to komponenty vyžadujúÚloha: V entitách prepíšte metódu drawComponent() z triedy GdxActor a volajte v nej metódu draw() nad render komponentom danej entityÚloha: Implementujte metódu render() v kontajneri PlayScreenPoznámka: V metóde volajte act() a draw() nad Stage-om Stage nastavte v metóde show() ako input procesorPoznámka: prejdite všetkymi entitami a volajte nad nimi metódu update() POZOR !!! v tele tejto metódy v komponente akcií môže dôjsť ku odstráneniu entít a cyklus môže skončiť s výnimkou. Inšpirujte sa npríklad nasledujúcim kódom:
for(.......){ ((GdxActor) e).update(); if (boardModified) { break; } } if (generate) { generateRandomBalls(3); generate = false; }