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

1

27.10.2015, 19:11

C++ SFML getPosition funktioniert nicht Richtig

Ich probiere seit kurzem einen Pong Klon mit C++ SFML zu programmieren. Das Movement der Paddeln funktioniert ja schon gut, aber die Kollisionsabfrage funktioniert nicht. Jetzt habe ich herausgefunden das das daran liegt das beim Abfragen der Position der Sprites, in der Main, ein Fehler passiert, und zwar wird die Position instant auf 0 gesetzt.
Ich bin am verzweifeln versuche das Problem schon seit cirka 5 Stunden zu lösen. :dash:
Ich hoffe ihr könnt mir helfen.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

27.10.2015, 19:19

Ohne Code kann man dir nur schlecht weiterhelfen ...

3

27.10.2015, 19:24

Ich hoffe ihr könnt mir helfen.

Um hier helfen zu können ist es notwendig das du uns den relevanten Code zeigst. (Code Tage und auf Quellcode umstellen nicht vergessen ;) )

Übrigens guter Zeitpunkt sich mit dem Debugger zu beschäftigen, der würde dir recht schnell verraten woran es happert.

Das klingt mir sehr nach dem gleichen Problem wie kürzlichen in diesem Thread besprochen wurde : [C++ | SFML] Logikfehler im Programm?

Halte ich für sehr unwahrscheinlich.
Wer aufhört besser werden zu wollen hört auf gut zu sein!

aktuelles Projekt:Rickety Racquet

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

27.10.2015, 19:53

if ( sprite.getPosition().x = 0 ) ?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

5

27.10.2015, 20:02

Danke für die schnelle Hilfe.
Ich denke der Code wird nicht sehr helfen, da ich sehr unstrukturiert und Kommentarlos programmiert habe, da es nur ein Einstiegsprojekt werden soll.(Und ja ich weiß das man so nicht programmiert mach ich auch normalerweise nicht.)
Ein Kleiner Beispielcode wird bald folgen bin gerade dabei ein kurzes Beispiel zu programmieren.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

27.10.2015, 20:06

Ich denke der Code wird nicht sehr helfen, da ich sehr unstrukturiert und Kommentarlos programmiert habe

Natürlich sollst du nicht den kompletten Quellcode posten, sondern nur die relevante Stelle. Und klar hilft das - wenn nicht das, was denn sonst?
(Ich vermute, dass BlueCobold mit seinem Tipp ins Schwarze getroffen hat - überprüf das doch mal)

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

7

27.10.2015, 20:09

Sollte ein Teil des Codes nicht helfen würde es dir mit Sicherheit helfen den Code aufzuräumen. Dabei findest du vielleicht auch den Fehler. Ein Beispielcode bringt garnichts, weil du damit darstellst was du machen möchtest, aber nicht was du wirklich tust.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

8

27.10.2015, 20:21

Ja sorry Ich verstehe leider nicht was wichtig ist. Da ich im Prinzip nur ein Sprite in einer Klasse lade, Ich in einer anderen Klasse die Position abrufen möchte. Die Position dann aber nicht wie erwartet zBsp 250 sonern 0 ist.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

9

27.10.2015, 20:23

Dann zeig uns doch mal die Stelle, wo du die Kollisionsabfrage machst.

10

27.10.2015, 20:26

C-/C++-Quelltext

1
2
3
4
void collision(){  player1 player1; player2 player2;  ball ball;
    std::cout << ball.balli.getPosition().y <<" ";  std::cout << player1.player1.getPosition().x <<" \n";
    if(ball.balli.getPosition().x >= 300)  {        std::cout<<"SUCCESS TURN ONE";  }
    if(ball.balli.getPosition().x <= 20 && ball.balli.getPosition().y > player1.player1.getPosition().y  && ball.balli.getPosition().y+20 < player1.player1.getPosition().y+100)  {        std::cout<<"collision"<<std::endl;    }}


Weiß zwar nicht wie das helfen soll aber ich bin hier der noob :)

Werbeanzeige