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
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.