Registriert seit: 31. Aug 2005
1.622 Beiträge
FreePascal / Lazarus
|
Re: [Game] Gefangen in der virtuellen Welt (mit Source)
19. Nov 2007, 19:33
Delphi-Quellcode:
//Verschiebt die Figur temporär an die neu berechnete Position
X := X + movvect.x;
Y := Y + movvect.y;
//Prüft, ob es an dieser Position eine Kollision gibt
FColSides := [];
Collision;
//Wenn ja, dann wird das Sprite wieder entsprechend zurückgesetzt - die Bewegung hat die Figur schließlich in eine Kollision hereinlaufen lassen
if (csLeft in FColSides) or (csRight in FColSides) then
begin
X := X - movvect.x;
FV.x := 0;
end;
if ((csBottom in FColSides) and not (FStartJump > 0)) or (csTop in FColSides) then
begin
Y := Y - movvect.y;
end;
//Wenn es keine Kollision gegeben hat, wird die Figur an der berechneten Position belassen - schließlich ist sie nicht Kollidiert.
Das Prinzip an sich sollte recht gut sein, in meinem Progrämmelchen ist es allerdings nicht so perfekt implementiert - die Figur hängt zum Beispiel teilweise an den Steinen am Rand fest. Es soll ja aber auch mehr so als "Anregung" dienen und ich hoffe, du kannst damit etwas anfangen .
Andreas "Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
|