Hallo Felix,
ich denke da an ein Element (id="world"), das Du relativ positionierst, und dessen Elternelement (id="worldview") Du mittels overflow:hidden ohne Scrollbalken und mittels width und height auf den festen Ausschnitt von 200x200px festlegst. Das Element "world" selbst enthält absolut positionierte Elemente, die in Abhängigkeit zu ihm natürlich mitscrollen, wenn Du mittels JavaScript die top und left Werte dynamisch anpasst.
jetzt ist mir das klar geworden. Bei jedem Schritt muss ich auch die Position (sprich Koordinaten) der Elemente anpassen, alles klar. Damit hatte ich Verständnisprobleme. In diesem Zusammenhang noch eine Frage: Es wäre vermutlich sehr sinnvoll, zuerst die Koordinaten eines jeden Objektes abzufragen, um zu Testen, ob das Element überhaupt im Viewport liegt, bevor man es auf den Canvas zeichnet, oder? Sonst müsste man ja immer alle Objekte der Welt bewegen, obwohl diese gar nicht sichtbar sind?
Der Avatar des Spielers ist ebenso absolut in "world" positioniert. Sollte das Scrolling in den Randbereich kommen, dann gibt es eben Minimal- (0,0) und Maximalwerte (3800,3800), die nicht unter- bzw. überschritten werden können. Da der Avatar aber synchron mitbewegt wird, wandert er eben an den Randstellen bis zum Rand der Map.
Ist Dir meine Denkweise klar geworden?
Absolut. Ich glaube, ich habe es begriffen. Ich werde mich mal an die Arbeit machen, und versuchen, dein Beispiel nachzubauen, bzw. in Python nachzuprogrammieren. Der Ablauf ist mir nun klar, auch Splinters Tip mit der Verwaltung der Gegenstände ist mir hier sehr hilfreich.
Den Ascii-Modus, den DeusFingendi erwähnte, und der mich auch sehr interessiert, werde ich erstmal aussen vor lassen, das ist eine andere Geschichte. Da wollte ich ursprünglich auch nicht hin.
Vielen Dank euch allen! Ein großes Problem hat sich in kleinere, überschaubarere Unterprobleme gewandelt. Das dürfte machbar sein. Sicher werde ich noch eine Fragen haben, vielleicht auch, wenn dieser Thread schon im Archiv ist. Dann müsste ich einen neuen Thread eröffnen...?
Kleinbonum