Einzelnen Beitrag anzeigen

Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#9

AW: scrollen ohne scrollbar

  Alt 1. Apr 2011, 15:43
zu dem bild ausschnitt ist zu sagen:
Alle deine obkete die sichtbar sein köönten(also grafische), haben eine Position(nehmen wir mal x/y dafür).

Diese positionen werden relativ zur kamera gezeichnet. DAs heißt das die Position des Objektes(Weltkoordinaten) subtrahiert werden, mit der position der Kamera. So erhälst du die ViewKoordinaten.

wenn du also folgendes machst(vor jedem zeichnen):

Delphi-Quellcode:
PosToDraw.X := Object.X - Kamera.X;
PosToDraw.Y := Object.Y - Kamera.Y; //<--Bei Delphi muss hier ADDIERT werden, da Y von oben nach unten verläuft. Beispiel gilt für Y wen es von unten nach oben geht.
Damit erhälst du die richtigen koordinaten. Wenn deine map scrollen soll, "bewegst" du einfach die kamera. Das ist alles. Vor dem zeichnen dann nurnoch checken ob das objekt innerhalb des Views ist und das wars.

Aus obigem vllt eine funktion machen wie TranslateWorldToViewPos

PS: außerdem am besten NICHT mit einzelnen VCL komponenten für jedes Spielobjekt hantieren. Das einzig grafische ist eine Paintbox, und darauf werden alle bitmaps gezeichnet

MFG
Memnarch

Geändert von Memnarch ( 1. Apr 2011 um 15:46 Uhr)
  Mit Zitat antworten Zitat