Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

1

21.01.2013, 18:30

SFML rectangle collision handling

Nabend,

ich suche eine Möglichkeit rectangle Collision Handling mit SMFL umzsuetzen. Mein PRoblem liegt NICHT darin, zu merken ob 2 Objekte collidieren sondern das anschliessende "versetzen" der Objekte.
In XNA hatte ich eine gut funktionierende kollisionsabfrage, bei der der Spieler zB gegen eine Wand läuft und dann nicht mehr weiter kann. Leider fehlen mir die pixelfunktionen in SFML. Ich bin wie gesagt seit längerem soweit, dass ich die kollisionen prüfe, das habe zB in einem "shooter" benutzt, bei dem danach die Objekte gelöscht wurden. Aber sie sollen jetzt nunmal nicht gelöscht werden.

Das ganze soll in 2D ablaufen.

2

21.01.2013, 18:57

Was soll den geschehen sobald die 2 Objecte kollidieren?

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

3

21.01.2013, 18:59

Die sollen wieder so von einander weg gesetzt werden, dass sie grade nicht colidieren. So wie wenn ein Spieler gegen eine Wand läuft.

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

4

21.01.2013, 19:16

Denk mal nach, was du machen musst

Pseudocode:

C-/C++-Quelltext

1
2
BewegeSpieler(offset);
Wenn(Spieler kollidiert mit Wand);


Was musst du dann machen?
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

5

21.01.2013, 19:29

Ich weiss ja was ich machen muss, ich habe so etwas bereits gebaut. Nur leider in XNA und dort prüfe ich bei Kollision ab wie viele Pixel ein Objekt im anderen drin ist und setze es soweit zurück. Leider geht es so wie ich das sehe in SFML nicht auf diese Art und meine Frage ist, wie ich es dort machen kann.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

21.01.2013, 19:37

Und wieso geht das mit der SFML deiner Meinung nach nicht? Was hat das eigentlich überhaupt mit der verwendeten Library zu tun? ;)

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

7

21.01.2013, 19:39

Naja, wie gesagt ich habe das dann mit Pixeln geprüft und habe dafür meiner Meinung nach nichts gefunden in SFML um die Pixel auszulesen. Lasse mich gerne eines Besseren behlehren ;)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

21.01.2013, 19:41

Ich versteh nicht genau wo das Problem liegt, gibt es in SFML tatsächlich keine Möglichkeit, rauszufinden, wo das Rechteck sich befindet? Selbst wenn: Du hast das Rechteck doch dort platziert, also musst du sowieso wissen, wo es sich befindet!?

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

9

21.01.2013, 19:51

Ja klar ich kann prüfen ob die kollidieren und auch wie weit nur ich wollte ein Rechteck um die Textur machen und wenn 2 kollidieren pixelgenau prüfen ob sie richtig kollidieren, wegen durchsichtiger Pixel und so.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

21.01.2013, 19:52

Ok, also hat dein eigentliches Problem nichts mit deiner ursprünglichen Frage zu tun!?

Werbeanzeige