Hallo liebe Delphianer
Ich versuche gerade mit GlScene ein Spiel, welches ähnlich wie Gangstar(Vegas, Rio, Miami etc.) zu proggrammieren.
Das Grundprinzip:
Man kann herumlaufen und in diverse Fahrzeuge einsteigen.
Doch mit dem Einsteigen in Fahrzeuge hakt es bei mir. Ein Button, durch welchen man ins Fahrzeug steigen kann, soll erst erscheinen, wenn das Fahrzeug sich in Reichweite des Charakters befindet und verschwinden, wenn man sich weiter davon entfernt.
Ich habe das Ganze über eine if Bedingung gelöst:
Delphi-Quellcode:
if (Auto1.Position.X < Spieler.Position.X + 5)
and (Auto1.Position.X > Spieler.Position.X - 5)
and (Auto1.Position.Y < Spieler.Position.Y + 5)
and (Auto1.Position.Y > Spieler.Position.Y - 5)
and (Auto1.Position.Z < Spieler.Position.Z + 5)
and (Auto1.Position.Z > Spieler.Position.Z - 5)
then AutotürButton.Visible := True;
Und wenn man sich wieder entfernt:
Delphi-Quellcode:
if (Auto1.Position.X > Spieler.Position.X + 5)
or (Auto1.Position.X < Spieler.Position.X - 5)
or (Auto1.Position.Y > Spieler.Position.Y + 5)
or (Auto1.Position.Y < Spieler.Position.Y - 5)
or (Auto1.Position.Z > Spieler.Position.Z + 5)
or (Auto1.Position.Z < Spieler.Position.Z - 5)
then AutotürButton.Visible := False;
Meine Vermutung des Problems ist(Das Proggramm verhält sich so), dass dies immer die Startkoordinaten sind, dh. nachdem ich das Auto mit der Prozedur 'move()' bewegt habe ändern sich die Koordinaten des Autos nicht und die if Bedingung wird relativ zum Startpunkt ausgeführt.
Steh ich da irgendwie auf dem Schlauch?
Kann mir jemand bei diesem Problem helfen?(Ich bin noch nicht so weit und auch die gesamte Steuerung neu zu schreiben, wenn es eine bessere Lösung gibt)
Ich bin für jegliche Hilfe dankbar
Liebe Grüsse
TTF