Przesuwanie kamery we współrzędnych świata i sprawienie, by twoja postać poruszała się po świecie, jest najprostszym sposobem na rozwiązanie tego problemu, praca we współrzędnych świata oznacza, że nie musisz wykonywać żadnych dodatkowych obliczeń, gdy sprowadza się do wszystkich innych systemów, które muszą działać na względny układ współrzędnych, a także zrozumieć, gdzie znajdują się we współrzędnych światowych.
Ponieważ pracujesz w 2D, inną dobrą wskazówką jest wykonanie partycjonowania przestrzennego, najłatwiejszym sposobem byłoby stworzenie systemu siatki wirtualnego świata, pozwoli to na zarządzanie każdym kafelkiem osobno poprzez skojarzenie duszków i innych zasobów na podstawie kafelków, więc w istocie proces byłby następujący:
utwórz klasę kafelków, która może utrzymywać współrzędne graniczne kafelka i wszelkie zasoby, których może potrzebować konkretny kafelek (duszki, wrogowie itp.).
zdecyduj o wielkości swojego świata i utwórz tablicę 2D (możesz użyć jednego wymiaru i uzyskać do niego dostęp jako 2D) kafelków, z których każdy reprezentuje kawałek twojego świata ze wszystkimi powiązanymi z nim zasobami.
dobieraj zasoby tylko z kafelka, w którym znajduje się gracz i jego sąsiedzi.
Za pomocą siatki możesz łatwo dowiedzieć się, na którym kafelku znajduje się gracz, na podstawie jego położenia względem początku siatki.
Aby obejść problem, o którym wspomniałeś o kamerze, musisz ustawić odtwarzacz i kamerę w dwa niezależne systemy, w których kamera nie przesunie się dalej niż środek kafelków krawędzi, więc gdy gracz podróżuje do tego kafelka, może nadal podróżować cały kafelek, ponieważ jest on związany współrzędnymi świata (tj. nie jest już wyśrodkowany na ekranie), ale kamera jest zablokowana.