![]() |
DelphiX : Mit dem Kopf durch die Wand !
Liste der Anhänge anzeigen (Anzahl: 1)
Ich arbeite im Moment an einem Rollenspiel. Die Kollision bei dem Monster erfolgt so ds wenn es gegen eine Wand läuft sich eine andere Richtung aussucht. Das funktioniert auch wunderbar außer das wenn das Monster von oben oder unten gegen die Wand läuft es teilweise stecken bleibt oder/und sich verheddert oder sogar "Mit dem Kopf durch die Wand geht". Ich habe das RPG (naja es soll mal eins werden..) in den Anhang geuploaded damit ihr euch mal ein Bild von dem Problem machen könnt.
Die Kollisionsabfrage :
Delphi-Quellcode:
und dann wird eine neue Richtung "ausgewürfelt" :
procedure TMonster.DoCollision(Sprite: TSprite; var Done: Boolean);
begin if (Sprite is TWand) and (Richtung = 1) then begin X:=X-2; Richtung := 5; end else if (Sprite is TWand) and (Richtung = 2) then begin X:=X+2; Richtung := 6; end else if (Sprite is TWand) and (Richtung = 3) then begin Y:=Y-5; Richtung := 7; end else if (Sprite is TWand) and (Richtung = 4) then begin Y:=Y+5; Richtung := 8; end; end;
Delphi-Quellcode:
procedure TForm1.Timer3Timer(Sender: TObject);
var hr : integer; begin if Richtung = 5 then begin Richtung := random(3)+2; end; if Richtung = 6 then begin hr := random(4)+1; if hr = 2 then begin hr := 6; end else Richtung := hr //2 end; if Richtung = 7 then begin hr := random(4)+1; if hr = 3 then begin hr := 7; end else Richtung := hr //3 end; if Richtung = 8 then begin Richtung := random(3)+1; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:26 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