Registriert seit: 31. Aug 2005
1.622 Beiträge
FreePascal / Lazarus
|
Re: Andorra 2D [Ver. 0.20 ALPHA 2, 05.10.07]
20. Okt 2007, 12:42
Hallo,
ersetzte mal die Funktion "TSprite.GetCollisionField" durch die Folgende:
Delphi-Quellcode:
function TSprite.GetCollisionField: TRect;
var r:TRect;
begin
r := GetFieldCoords;
result.Left := r.Left - 1;
if result.Left < Engine.SpriteField.StartX then
begin
result.Left := FEngine.SpriteField.StartX;
end;
result.Top := r.Top - 1;
if result.Top < Engine.SpriteField.StartY then
begin
result.Top := FEngine.SpriteField.StartY;
end;
result.Right := r.Right + 1;
if result.Right > Engine.SpriteField.EndX - 1 then
begin
result.Right := FEngine.SpriteField.EndX - 1;
end;
result.Bottom := r.Bottom + 1;
if result.Bottom > Engine.SpriteField.EndY - 1 then
begin
result.Bottom := FEngine.SpriteField.EndY - 1;
end;
end;
Dann läuft es - das "-1" hat gefehlt. Ich werde da aber mal nochmal genauer nachschauen, ob "EndX/Y" nicht generell 1 kleiner sein sollte.
Zu deinem Spiel: Echt Klasse! Weiter so!
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
|