![]() |
Re: AV bei Shooter-game
Hi,
ein Paar Sachen habe ich noch gefunden:
Delphi-Quellcode:
Edit: Oder mit else:
procedure TForm2.Timer1Timer(Sender: TObject);
var i: Integer; begin with Image2 do begin if GetAsyncKeyState(VK_left)<>0 then Left := Left-2; if GetAsyncKeyState(VK_right)<>0 then Left := Left+2; if GetAsyncKeyState(VK_Up)<>0 then Top := Top-2; if GetAsyncKeyState(VK_Down)<>0 then Top := Top+2; end; for i := high(Schuss) downto low(Schuss) do begin //for i := low(Schuss) to high(Schuss) do begin Schuss[i].Y := Schuss[i].Y-1; if Schuss[i].Y<20 then begin if Length(Schuss)> 1 then Move(Schuss[1], Schuss[0], Length(Schuss)* SizeOf(TPoint)-SizeOf(TPoint)); //Move(Schuss[1], Schuss[0], Length(Schuss)); SetLength(Schuss, Length(Schuss)-1); end; if i<= high(Schuss) then Canvas.Ellipse(Schuss[i].X-5, Schuss[i].Y-5, Schuss[i].X+5, Schuss[i].Y+5); end; end;
Delphi-Quellcode:
end
else //if i<= high(Schuss) then Canvas.Ellipse(Schuss[i].X-5, Schuss[i].Y-5, Schuss[i].X+5, Schuss[i].Y+5); |
Re: AV bei Shooter-game
ja danke probier ich mal aus!
aber ich verstehe nicht: Zitat:
|
Re: AV bei Shooter-game
hi,
anscheinend die Anzahl von Bytes :wink:. Achja, und soweit ich weiß, muss man bei move darauf achten, dass es sich um ein packed array handelt, weil das Array vom Speichermanager sonst unter umständen zerstückelt in den Arbeitsspeicher geschoben wird. Move funktioniert aber nur, wenn die Daten "in einem Guss" da liegen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz