Einzelnen Beitrag anzeigen

Benutzerbild von olee
olee

Registriert seit: 16. Feb 2008
Ort: Boppard
540 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: UT2D - 2D-Shooter mit UTStyle

  Alt 17. Feb 2008, 19:03
Hab herausgefunden, warum das Spiel so langsm lief.
Es war die Methode, die prüft, ob man etwas sehen kann:

Delphi-Quellcode:
function CanSee(AX,AY,BX,BY: Single; Blocker: TBitmap): Boolean;
var i ,k : Integer;
    xdiff,
    ydiff : Single;
begin
  Result := true;
  If (round(AX-BX)=0) or (round(AY-BY)=0) then exit;
  Result := false; <--
  k := round(distance(AX,AY,BX,BY)* 2); <---> Die Zwei hab ich schon in eine 10 umgeändert
  If (k>10000) then exit; <--
  xdiff := (AX-BX)/k;
  ydiff := (AY-BY)/k;
  for i := 0 to round(distance(AX,AY,BX,BY)*2) do
  begin
    If (Blocker.Canvas.Pixels[round(BX+xdiff*i),round(BY+ydiff*i)]<>clwhite) then exit;
    If (round(BX+xdiff*i)>Blocker.Width) or (round(BY+ydiff*i)>Blocker.height) then result := true;
    If (round(BX+xdiff*i)< 0) or (round(BY+ydiff*i)< 0) then result := true;
  end;
  result := true;
end;
Hat jmd ne gute Idee, außer den markierten Wert zu ändern?
Björn Zeutzheim
  Mit Zitat antworten Zitat