Valentínska akcia je tu! Získaj až 80 % extra kreditov ZADARMO na náš interaktívny e-learning. ZISTIŤ VIAC:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia: Návrh aplikace - přístup k instanci, update z jiného místa

Aktivity
Avatar
Petr Nymsa
Tvůrce
Avatar
Petr Nymsa:9.6.2013 21:16

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 :)

Editované
Odpovedať
9.6.2013 21:16
Pokrok nezastavíš, neusni a jdi s ním vpřed
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.

Zobrazené 1 správy z 1.