Hi,
wenn ich in DelphiX mehrere quadratische Steine (à la Bomberman) auf dem Spielfeld erstelle
Delphi-Quellcode:
for I := 1 to 300 do begin
with TStein.Create(DXSpriteEngine1.Engine) do
begin
x:=random(21)*30;
y:=random(21)*30;
Name := 'Stein'+inttostr(I);
end;
end;
und dann eine Collisionsabfrage von einem Computerspieler für diese Steine mache
Delphi-Quellcode:
procedure TCPU.DoCollision(Sprite: TSprite; var Done: Boolean);
var
I: Integer;
begin
inherited DoCollision(Sprite, Done);
if sprite is TStein then begin
case Direction of
1: begin
x := x + 1;
Direction := 3;
end;
2: begin
y := y - 1;
Direction := 4;
end;
3: begin
x := x - 1;
Direction := 1;
end;
4: begin
y := y + 1;
Direction := 2;
end;
end;
(Direction ist für 1= links, 2= unten, 3= rechts, 4= oben)
Dann klappt das zwar bei den meisten Steinen, aber einige werden trotzdem ignoriert und der Computer läuft durch. Ich habe schon probiert, ob er die Stelle mit dem Case of überhaupt erreicht und das tut er auch, aber er geht einfach durch den Stein durch.
Jmd ne Ahnung, warum einige Steine dann nicht mehr beachtet werden?