(Co-Admin)
Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
Delphi 11 Alexandria
|
29. Jun 2003, 15:24
Moin braingrenade,
ich hab' diese Stelle in Verdacht:
Code:
function tspriteengine.Collision(sprite1,sprite2 : PTsprite): boolean;
var
i, i2 : integer;
spr1,spr2 : Tspriteset ;
begin
spr1 := sprite1.setsprpos;
spr2 := sprite2.setsprpos;
for i := 0 to high(spr1) do
begin
if i > 0 then
if (spr1[i-1].paar = false) and (spr1[i].paar = true) then
for i2 := 0 to high(spr2) do [color=red]// In dieser Schleife werden spr1 mit Index von spr2 und spr2 mit Index auf spr1 angesprochen, kann schiefgehen, wenn die arrays nicht gleich gross sind.[/color]
if (spr1[i-1].x < spr2[i].x) and (spr1[i2].x > spr2[i2].x) and (spr1[i].y = spr2[i].y) then result := true
else
result:=false;
end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
|