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.06.2011, 18:28

[SFML] sprite bewegt sich nicht

hi,

nach nunmehr fast 2 jahren nur java programmierung wegen meiner ausbildung, wollte ich nun mal wieder ein bisschen c++ und 2d machen. im moment arbeite ich mich in sfml ein.

mein problem:

ich habe ein sprite. dieses wird auch gezeichnet, wenn ich die methode move nur außerhalb der while schleife aufrufe. wenn die methode move aber innerhalb der while schleife aufgerufen wird, sehe ich das sprite nicht.

hier der quellcode:


edit: irgendwie haben die tags eine quellcode macke. die zerhauen einem die formatierung.

ich habe den quellcode auf meinen irgendwann mal angefangenen blog veröffentlicht: klick mich

ich habe keine idee woran das liegen kann. viel. habt ihr ja eine idee.

MfG

Bolle

2

27.06.2011, 19:37

Was sagt denn der Text, der die aktuelle Position des Sprites bekannt gibt?

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

3

27.06.2011, 19:53

Wie sehen denn die X und Y Koordinaten aus. Die speicherst du dir ja in einem Stream. Verändern die sich denn und nur die Move-Funktion tut ihre arbeit nicht? Und ich denke du meinst forward und nicht farward.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

4

27.06.2011, 19:54

sie geben die richtige position aus. genau mittig des fensters. das sprite soll sich ja auf der y-achse erstmal lang bewegen. laut der koordinatenausgabe stimmt da auch alles soweit. wenn der pixel 768 erreicht wird, bewegt sich das sprite (eher gesagt die variable positionY) richtung 0. danach dreht sich die richtung wieder in richtung 768. von dieser seite sollte es mit den koordinaten passen.

5

27.06.2011, 19:56

Wie sehen denn die X und Y Koordinaten aus. Die speicherst du dir ja in einem Stream. Verändern die sich denn und nur die Move-Funktion tut ihre arbeit nicht? Und ich denke du meinst forward und nicht farward.


die koordinaten verändern sicht. danke für die korrektur mit forward^^

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

6

27.06.2011, 20:02

Habe nie wirklich viel mit SFML gemacht aber sieht so aus, als wenn Move nicht absolute Positionen bekommt, sondern relative. Heisst nicht die neue Position sondern den Bewegungsvektor. Quasi einfach (0, 0.5) bzw (0, -0.5) in deinem Fall. Vielleicht ist dein Problem ein Seiteneffekt der daraus resultiert.

edit: Versuch doch vielleicht einfach mal Move(0, 0.5f) aufzurufen, ohne deinen Code der Checkt dass das Sprite im Bild bleibt. Ob sich dann was bewegt.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

7

27.06.2011, 20:13

Habe nie wirklich viel mit SFML gemacht aber sieht so aus, als wenn Move nicht absolute Positionen bekommt, sondern relative. Heisst nicht die neue Position sondern den Bewegungsvektor. Quasi einfach (0, 0.5) bzw (0, -0.5) in deinem Fall. Vielleicht ist dein Problem ein Seiteneffekt der daraus resultiert.

edit: Versuch doch vielleicht einfach mal Move(0, 0.5f) aufzurufen, ohne deinen Code der Checkt dass das Sprite im Bild bleibt. Ob sich dann was bewegt.



top! das war die lösung.

noch mal so ne randfrage: gibt es in c++ ein equivalent zu javadoc?und wenn ja wie kann ich visual c++ dazu bringen mir die methodenbeschreibung anzeigen zu lassen?

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

8

27.06.2011, 22:23

Du kannst höchstens in die Dokumentation der SFML gucken. Aber vergleichbares zu javadoc hat C++ nicht. Aber wie gesagt die Dokumentation der SFML scheint wirklich gut zu sein.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Mastermind

unregistriert

9

28.06.2011, 22:20

Zitat

Aber vergleichbares zu javadoc hat C++ nicht.


lol? doxygen?

Werbeanzeige