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

Fawkes

Frischling

  • »Fawkes« ist der Autor dieses Themas

Beiträge: 58

Beruf: Realschüler :)

  • Private Nachricht senden

1

06.07.2014, 17:24

Maus Rasterartig bewegen

Hallo, ich möchte meine Maus in einem sfml Fenster rasterartig bewegen, das heißt nicht immer 1 pixel, sondern alle 5 pixel zum Beispiel. Ich hoffe dass versteht man. Danke schonmal im voraus.

2

06.07.2014, 17:31

Ich habe neulich genau darüber nachgedacht. Du musst die "echte" Mausposition nehmen und sie in deinem fall mit Modulo durch 5 teilen. Dann musst du nur noch das daraus resultierende Ergebnis nehmen und es mit 5 multiplizieren.
(Mouseposition/5)*5 Ergebnis runden (Mouseposition ist dann einfach die Mausposition. Ich weis nicht wie das in sfml heißt)

mfg, Suskritor :)

Zitat

Die wichtigste Eigenschaft eines Programmierers ist vorausschauende Faulheit.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Suskritor« (06.07.2014, 21:39)


MitgliedXYZ

Alter Hase

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

3

06.07.2014, 17:32

Stört das nicht beim spielen?

Du kannst natürlich die Mauskoordinaten einlesen und auch selbst setzen:
http://www.sfml-dev.org/documentation/2.…176d86e0b7817d7


Vielleicht ist es dann aber schlauer, den Cursor auszublenden und durch einen eigenen zu ersetzen. Dann überprüfst du, in welche Richtung die Maus bewegt wird und änderst dann eben deinen Fake-Cursor.

Fawkes

Frischling

  • »Fawkes« ist der Autor dieses Themas

Beiträge: 58

Beruf: Realschüler :)

  • Private Nachricht senden

4

06.07.2014, 17:34

Danke :) Genau nach sowas habe ich gesucht. Euer beider Antworten zusammen ergeben dann das Ergebnis. Vielen Dank.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

5

06.07.2014, 17:39

Die Formel von Suskritor wird vermutlich nicht das tun was du gerne hättest. Das Modulo müsste mit einer Division ersetzt werden.
Außerdem könnte sinnvoll sein auf den nächsten Punkt im Raster zu runden. (Also vorher noch plus die Hälfte von 5)
Außerdem ist zu beachten das es nur bei Ganzzahlen funktioniert. Sonst braucht man noch "floor" oder besser gleich "round" und dafür die Addition sparen.

6

06.07.2014, 21:26

Stimmt, meine Formel hat nen Fehler, der mir jetzt erst auffällt. Danke. Aber Division macht auch keinen sinn...Ich geh dann mal überlegen :thinking:

EDIT: Man muss wie Spiele programmierer schon sagte, dividieren und das Ergebnis runden und dann mit 5 multiplizieren. Danke, dass du mich auf den Fehler hingewiesen hast! :rolleyes:

Zitat

Die wichtigste Eigenschaft eines Programmierers ist vorausschauende Faulheit.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Suskritor« (06.07.2014, 21:40)


Werbeanzeige