Zdravíčko, tak nějak přepisuju "engine" nebo spíše mírně upravuju a
potřebuju s něčím mírně poradit nebo spíše vyhubovat, těžko říct
.
Mám třídu WorldCamera -> třída není nic jiného než herní kamera.
Má v sobě dvě celkem důležité metody
ScreenPosition()
WorldPosition()
Metody převádí pozice z herního světa na obrazové pozice a obráceně.
Kameru mám ve třídě GameWorld
Třída GameWorld je takový prostředník mezi herními objekty. Volá
update hráče, volá update kamery, kontroluje kolize mezi hráčem a okolním
světem apod.
Ve třídě Player, která představuje hráče potřebuju přepočítat
pozice myši na pozice světové.
Co mě napadá udělat
Přesunout intanci kamery do Game1. Na Game1 má odkaz GameWorld a i Player.
Z Game1 si načítám textury apod. Ovšem update kamery (přepočítání matic
apod) budu muset volat v GameWorld -> kamera bere objekt který má sledovat
(centrovat). Což už je torchu divné, protže mám instanci v Game1 ale její
hlavní logiku budu msuet volat na jiném místě.
Nechat kameru v GameWorld a Playerovi předat odkaz na GameWorld. V
GameWorld tedy mít public instanci WorldCamery.
Udělat tyto dvě metody staticky s tím že abych mohl vypočítat pozice,
buud si muset vytvořit ještě pomocnou statickou proměnou ve třídě
WorldCamera - CameraPosition. -> Tohle se mi už moc nezdá.
Prosím o nápady, názory. Zatím se přikláním k 1.verzi. Díky
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.