AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DelphiX : Mit dem Kopf durch die Wand !
Thema durchsuchen
Ansicht
Themen-Optionen

DelphiX : Mit dem Kopf durch die Wand !

Ein Thema von Neutral General · begonnen am 2. Jun 2004
Antwort Antwort
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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz