Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#3

Re: 2D Game => Wie kann ich Wände erstellen?

  Alt 14. Jun 2006, 12:31
Ich würde das nicht mit Images machen. du solltest dir eine map aufbauen, die so aussieht:

Delphi-Quellcode:
type
TMap = record
  accessibility: array of array of Boolean;
  floor: TBitmap;
end;
In accessibility kommt, falls ein pixel begehbar ist, ein true rein, wenn nicht, ein false. floor ist das, was angezeigt wird.
Deine Spielfigur solltest du dann in eine paintbox auf den floor zeichnen.
Aber wahrscheinlcih haben wir hier wieder die Art lehrer, die sagt, "nein, wir machen das jetzt mit Images, und wenn es Metrhoden gibt, die zehnmal sainnvoller sind"...
Sollte das mit den Images aber euer EInfall gewesen sein, gut, hätt ich wohl auch zuerst so gemacht, aber so wirds besser

Immer wenn du deine Spielfigur bewegst, prüfst du, ob die damit auf ein nicht begehbares tile bzw. pixel kommt. so:

Delphi-Quellcode:
for x,y in Spielfigur.pixelsWantedToOccupy do // alle pixel prüfen, auf die die spielfigur gehen will
  if not map.accessibility[x,y] then // wenn eines der pixel nicht begehbar ist..
    Spielfigur.DenyMove; // ... wird die Bewegung verhindert.
Das ist jetzt grober Pseudocode bar aller Optimierungen (ich habe ja vorher schon einmal von tiles gesprochen; wenn du deine map in tiles aufteilst, die jeweils so groß sind wie deine spielfigur, musst du nur prüfen, ob sich deine spielfigur auf ein verbotenes tile bewegen will. das ist sehr einfach abzuprüfen.)
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat