Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

DelphiX : Mit dem Kopf durch die Wand !

  Alt 2. Jun 2004, 13:45
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:
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;
und dann wird eine neue Richtung "ausgewürfelt" :

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;
Angehängte Dateien
Dateityp: rar rpg.rar (498,6 KB, 37x aufgerufen)
Michael
  Mit Zitat antworten Zitat