Einzelnen Beitrag anzeigen

Luis

Registriert seit: 26. Dez 2018
7 Beiträge
 
#1

"Kollidieren" von drei Objekten verhindern

  Alt 26. Dez 2018, 15:40
Delphi-Version: 5
Hallo ihr Lieben,

ich "muss" im Rahmen eines Schulprojektes ein kleines Spiel in Delphi programmieren und stoße dort an eine Hürde. Habe viele Möglichkeiten probiert ohne jeglichen Erfolg, weswegen ich nun anderweitig Hilfe benötige.
Im groben soll ein Spieler Kisten zu ihrem vorgegebenen Platz schieben. Mit zwei Kisten konnte ich auch noch ausdrücken, dass diese nie ineinander "verschmelzen" (also die gleichen Koordinaten haben), bei dreien scheitere ich daran. Ich werde einmal meinen letzten Lösungsversuch euch mitteilen:
Delphi-Quellcode:
 if player.top = k1.Top then
 if player.Left =k1.left then
 begin
 if k1.Top-50 =k2.Top then
 if k1.Left = k2.Left then
 k1.Top:=k1.Top
 else
 if k1.Top-50 =k3.Top then
 if k1.Left = k3.Left then
 k1.top:=k1.Top
 else
  k1.Top:=k1.Top-50;
  end;
Hier geht es um die Bewegung nach oben von der Kiste 1, also k1.


Und einmal meine "richtige" Lösung von dem Problem bei zwei Kisten:

Delphi-Quellcode:
 if player.top = k1.Top then
 if player.left = k1.left then
 if k1.Top-50 <> k2.Top then
 k1.Top:= k1.top-50
 else
 if k1.left <> k2.left then
 k1.Top:= k1.top-50
 else
 k1.Top:=k1.Top;
Danke schon einmal für eure Hilfe!
  Mit Zitat antworten Zitat