Avatar
Raiper34
Redaktor
Avatar
Raiper34:

Zdravim,

pracoval som na jednoduchsej hre vo Frameworku Phaser, ale nejako som zistil ze co sa tyka OOP navrhu som na to asi dost zle.... Ide mi o jednu vec, mam hraca, s ktorym manipulujem v dalsich asi 5 objektoch, a mam dalsie taketo objekty ako hrac, ktory referencie su potrebne v inych viacerych objektoch. Moja otazka je, ako sa toto riesi z pohladu navrhu? To mam hraca predat do kazdeho objektu, ktory ho potrebuje? Konstruktory sa potom stavaju celkom nechutne dlhe, alebo ako? Teraz to mam urobene ako globalne premenne, co je z mojho pohladu absolutne zle a je to odzrkadlenie zleho navrhu.

Odpovědět 12.8.2015 10:37
Posledná vydaná hra: http://www.islandsoft.cz/index.php?art=hra-akcna-space-resistance
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Raiper34
David Čápka:

Obvykle se vytvoří nějaký kontejner se závislostmi a ten se předává. XNA tohle řeší tak, že předává všem GameObjectům v konstruktoru instanci Game a tam jsou reference na aktuální level, hráče a podobně. Ideálně bys to měl samozřejmě řešit pomocí dependency injection, ale na tohle se ve hrách IMHO moc nehraje.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 12.8.2015 10:48
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Raiper34
Redaktor
Avatar
Raiper34:

Takto som to riesil v ramci skolskeho projektu a mal sopm z toho vycitky ze to je zle :-D Ale diky, aspon viem aky je postup :) teraz rozmyslat ci to prepisat trochu alebo nie, lebo hra funguje spravne len ten kod s 5 globalnymi objektami no, dalsi projekt bude asi lepsi :)

Nahoru Odpovědět 12.8.2015 10:55
Posledná vydaná hra: http://www.islandsoft.cz/index.php?art=hra-akcna-space-resistance
Avatar
Raiper34
Redaktor
Avatar
Raiper34:

Aj ked teraz rozmyslam, tak to nemam v podstate globalne v pravom slova zmysle, lebo sa nachadzaju v objekte hry.

Nahoru Odpovědět 12.8.2015 11:10
Posledná vydaná hra: http://www.islandsoft.cz/index.php?art=hra-akcna-space-resistance
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.