Registriert seit: 27. Feb 2004
Ort: Bochum
206 Beiträge
Delphi 3 Professional
|
Re: Programmoptimierung
6. Mär 2010, 00:00
nur Beauty.
Leider keinen Vorschlag.
Delphi-Quellcode:
procedure TForm1.KollisionsabfrageG;
var
l, r, i, v: integer;
begin
if anzahl > 0 then //Anzahl=Anzahl der Geister
for i := 1 to anzahl do begin
if existiert[i] = true then begin
if geister[i].left < 1 then
geister[i].left := 750;
if geister[i].left > 750 then
geister[i].left := -0;
if ((image1.canvas.pixels[Geister[i].left - 1, geister[i].top] = RGBtocolor(0, 0, 255))) or //Image1 ist das "hintergrundbild, also die Karte, die "Wände" sind blau
((image1.canvas.pixels[Geister[i].left - 1, geister[i].top + 29] = RGBtocolor(0, 0, 255))) // 0,0,255
then
l := 1
else
l := 0;
if ((image1.canvas.pixels[geister[i].left + 29, geister[i].top] = RGBtocolor(0, 0, 255))) or
((image1.canvas.pixels[geister[i].left + 29, geister[i].top + 29] = RGBtocolor(0, 0, 255)))
then
r := 1
else
r := 0;
if (l = 0) and (r = 0) then
kollisiong[i] := false
else begin
kollisiong[i] := true;
end;
if kollisiong[i] = true then begin
if richtungg[i] = 1 then geister[i].left := geister[i].left - 2;
if richtungg[i] = 2 then geister[i].top := geister[i].top + 2;
if richtungg[i] = 3 then geister[i].left := geister[i].left + 2;
if richtungg[i] = 4 then geister[i].top := geister[i].top - 2;
case richtungg[i] of
1: case v of 0: richtungg[i] := 1; 1: richtungg[i] := 2; 2: richtungg[i] := 4; end;
2: richtungg[i] := random(3) + 1;
3: richtungg[i] := random(3) + 2;
4: case v of 0: richtungg[i] := 1; 1: richtungg[i] := 3; 2: richtungg[i] := 4; end;
end;
end;
end;
end;
ICQ: 204141443
Delphi 3 Professional, Intel 2x 2,4Ghz, 3 GB-Graka, Sound-onBrd, --
außerdem D2S, D3Pro, D4S, D5S, D6S, D7S + Indy, Lazarus, VB5Std, VC++5Pro, Tasm4+5 - was braucht man mehr?
-
|
|
Zitat
|