Avatar
Petr Nymsa
Redaktor
Avatar
Petr Nymsa:

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 :D.

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

  1. 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ě.
  2. Nechat kameru v GameWorld a Playerovi předat odkaz na GameWorld. V GameWorld tedy mít public instanci WorldCamery.
  3. 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 :)

Editováno 9.6.2013 21:17
Odpovědět 9.6.2013 21:16
Pokrok nezastavíš, neusni a jdi s ním vpřed
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 1 zpráv z 1.