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

17.07.2012, 00:10

SFML2 Mausposition bestimmen

Hallo,

ich habe schon wieder ein Problem mit meinem Code. Und zwar möchte ich die Mausposition bestimmen, nur so wie das für SFML1.6 funktioniert hat geht das jetzt nicht mehr. Ich bringe es nicht hin den Code für SFML2 umzuschreiben. Kann mir jemand hlefen
sf::Vector2f mausposition(0.f, 0.f);

...
sf::Vector2f mausposition(0.f, 0.f);
...

while (App.IsOpened())
{
sf::Event Event;
while (App.GetEvent(Event))
{

...

if (Event.Type == sf::Event::MouseMoved )
{
mausposition.x = static_cast<float>(Event.MouseMove.X);
mausposition.y = static_cast<float>(Event.MouseMove.Y);
}
...

Gute Nacht
Arch

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

2

17.07.2012, 00:17

http://www.sfml-dev.org/ > Tutorials > Tutorials for version 2.0
Window Package > Keyboards, mouse...
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

3

17.07.2012, 00:17

C-/C++-Quelltext

1
2
3
4
5
if(event.type == sf::Event::MouseMoved)
{
mausposition.x = event.MouseMoveEvent.x;
mausposition.y = event.MouseMoveEvent.y;
}

4

17.07.2012, 11:38

Danke, das läuft jetzt.

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

5

17.07.2012, 12:01

Ich empfehle mehr die Nutzung vom sf::Mouse, somit ist man nicht an den Event gebunden.

C-/C++-Quelltext

1
sf::Vector2i pos = sf::Mouse::getPosition(window);
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

6

17.07.2012, 13:32

Ich empfehle mehr die Nutzung vom sf::Mouse, somit ist man nicht an den Event gebunden.

C-/C++-Quelltext

1
sf::Vector2i pos = sf::Mouse::getPosition(window);


Worauf ich auch verweise:
http://www.sfml-dev.org/ > Tutorials > Tutorials for version 2.0
Window Package > Keyboards, mouse...

Scheinbar war niemand in der Lage diese höchst komplizierte Anleitung zu verstehen.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

7

17.07.2012, 13:39

Scheinbar war niemand in der Lage diese höchst komplizierte Anleitung zu verstehen.

Ich weiss ja jetzt nicht genau wieso du mich zitieren musstest und dein Statement auf alle verallgemeinerst, aber ich stimme dir grundsätzlich zu, dass es sehr einfach ist diese Information selbst zu erlangen; es gäbe da ja auch noch Doxygen Dokumentation. Aber im Ganzen gesehen muss es dich ja nicht gross stören wenn andere eine direkte Erklärung auf die Frage geben. ;)
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

8

17.07.2012, 13:52


Ich weiss ja jetzt nicht genau wieso du mich zitieren musstest[...]

Das nennt man absolute Zustimmung. ;)
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

9

17.07.2012, 14:06


Das nennt man absolute Zustimmung. ;)


Hehe, das gibt natürlich eine ganz andere Sicht auf deinen Post. :-)

Das Problem mit Events ist, dass sie nur in einem bestimmten Intervall ausgelöst werden können, bei 60fps oder mehr kann sich die Maus schon längst bewegt haben bevor überhaupt mal ein Event aufgelöst wird. Mit der sf::Mouse Klasse wird in Echtzeit auf die Bewegung reagiert. Ein weitere Vor- oder Nachteil ist, dass die Position auf dem ganzen Bildschirm bestimmt werden kann und nicht nur innerhalb des Fensters.
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

Werbeanzeige