Einzelnen Beitrag anzeigen

fui-tak

Registriert seit: 24. Okt 2008
117 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Welt bewegt sich um Spieler

  Alt 11. Nov 2010, 14:17
Ich würde das ganze ähnlich wie Medium beschrieben hat angehen, nur anstatt der speziellen Liste einfach ein Zweidimensionales Array nehmen, etwa so:
level: array of array of TFeldElement; Ein Objekt des Typs FeldElement (oder wahlweise statt Klasse ein Record nehmen) beinhaltet, dann die einzelnen Eigenschaften

Hier mal mit einem Record:
Delphi-Quellcode:
TFeldElement = record
  teleporterXPos, teleporterYPos: integer;//speichert, wo hingesprungen werden soll
  inhalt: byte;//begehbar, nicht begehbar oder Teleporter
  textur: string;//den Namen der Textur
end;

Zeichnen würde ich dann irgendwie so:
Delphi-Quellcode:
   for i := 0 to high(level) do
     for k := 0 to high(level[0]) do
       case level[i,k].inhalt of
        1: ..... //begehbares Feld an der Position (i * Breite eines Feldes + xLevel/ k * Breite eines Feldes + yLevel)
        ...
       end;
xLevel und yLevel sind dann die Koordinaten des Levels.
Wenn du deine Figur bewegts, muss du dann beispielsweise beim nach unten gehen folgendes machen:
Delphi-Quellcode:
figur.yPos := figur.yPos + 25;//der Spieler wird nach unten verschoben
yLevel := yLevel - 25; //das Level wird nach oben verschoben
Insgesamt hat sich nun also deine Karte nach oben gescrollt und deine Figur ist immer noch in der Mitte des Bildschirms
  Mit Zitat antworten Zitat