problem mit Collision von sprites.

Für allgemeine Fragen zur Programmierung mit PureBasic.
True29
Beiträge: 283
Registriert: 18.08.2012 19:18
Computerausstattung: Windows 8 64bit .Profan x2,Purebasic 5.5
Wohnort: Worms
Kontaktdaten:

problem mit Collision von sprites.

Beitrag von True29 »

es geht um folgenden code.
folgendes soll er eigentlich nur tun.
Wenn sich nun 2 sprites berühren soll er das erste sprite in die andere richtung schicken so +90 rotation
nun wenn das sprite sich entfernt hat soll es seine alte richtung wieder annehmen.
leider funktioniert das ganze nich so ganz daher suche ich eine bessere lösung.

Grüße und danke für hilfe.

Code: Alles auswählen

          If Not check_player_collision(Player1(),Debuging)                        
              If \rotation_change = #False
                \rotation_change = #True                 
                \old_rotation = \rotation   
                \rotation + 90
                \speed = 0.2
              EndIf
          EndIf
            
          If \rotation_change = #True             
            \rotation = \old_rotation               
          EndIf
i7,12gb ram , Windows 10 ,Purebasic 5.50
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Re: problem mit Collision von sprites.

Beitrag von Rebon »

Also wenn ich davon ausgehe, dass alle relevanten Dinge in deinem Code-Schnippsel vorhanden sind, dann fehlt dort vielleicht, dass die \rotation_change wieder auf #False gesetzt wird.

Code: Alles auswählen

 If \rotation_change = #True             
     \rotation = \old_rotation               
     \rotation_change = #False          
EndIf
Würde jedenfalls nach meinem Verständnis Sinn machen, ist aber relativ schwer anhand eines so kurzen Codes zu beurteilen.
PB 4.00 | Windows XP Home SP3
True29
Beiträge: 283
Registriert: 18.08.2012 19:18
Computerausstattung: Windows 8 64bit .Profan x2,Purebasic 5.5
Wohnort: Worms
Kontaktdaten:

Re: problem mit Collision von sprites.

Beitrag von True29 »

ja , nur das problem bei der lösung war das er so garnicht die richtung geändert hat da er sofort wieder umspringt.

Grüße.
i7,12gb ram , Windows 10 ,Purebasic 5.50
Rebon
Beiträge: 263
Registriert: 20.05.2009 19:13

Re: problem mit Collision von sprites.

Beitrag von Rebon »

True29 hat geschrieben:ja , nur das problem bei der lösung war das er so garnicht die richtung geändert hat da er sofort wieder umspringt.
Da fehlt dann möglicherweise zuvor die Überprüfung der Distanz wie beispielsweise:

Code: Alles auswählen

If player_distance() ; Nur als Beispiel
       If \rotation_change = #True             
             \rotation = \old_rotation               
             \rotation_change = #False
     EndIf
EndIf
PB 4.00 | Windows XP Home SP3
True29
Beiträge: 283
Registriert: 18.08.2012 19:18
Computerausstattung: Windows 8 64bit .Profan x2,Purebasic 5.5
Wohnort: Worms
Kontaktdaten:

Re: problem mit Collision von sprites.

Beitrag von True29 »

wäre eine idee.
Vielleicht hat ja wer noch einen anderen vorschlag.
i7,12gb ram , Windows 10 ,Purebasic 5.50
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8838
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: problem mit Collision von sprites.

Beitrag von NicTheQuick »

Wenn du etwas in die andere Richtung schicken willst, dann musst du aber eine Rotation um 180° machen, nicht um 90°.

Ansonsten verstehe ich nicht ganz, was du vor hast. Bei einer Kollision soll es zunächst mal abprallen in die entgegengesetzte Richtung um sich dann wieder in die vorherige Richtung zu bewegen, sodass es wieder zu einer Kollision kommt? Was soll das genau simulieren?
True29
Beiträge: 283
Registriert: 18.08.2012 19:18
Computerausstattung: Windows 8 64bit .Profan x2,Purebasic 5.5
Wohnort: Worms
Kontaktdaten:

Re: problem mit Collision von sprites.

Beitrag von True29 »

hm.
das ganze soll 2 aneinanderprallende fußballspieler simulieren ;)
Die idee war ja das der spieler dann so 50 pixel zurückfällt um halt genau das zu vermeiden das es nochmals ausgelöst wird.

grüße.
i7,12gb ram , Windows 10 ,Purebasic 5.50
True29
Beiträge: 283
Registriert: 18.08.2012 19:18
Computerausstattung: Windows 8 64bit .Profan x2,Purebasic 5.5
Wohnort: Worms
Kontaktdaten:

Re: problem mit Collision von sprites.

Beitrag von True29 »

hab nun eine ausweicheprozedur geschrieben scheint zu funktionieren.

Code: Alles auswählen

    While Not check_player_collision(Player1(),Debuging)                                                     
            If \rotation < 180
              \posy + 1
            Else
              \posy - 1  
            EndIf
     Wend   
i7,12gb ram , Windows 10 ,Purebasic 5.50
Antworten