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.)