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

Jawaiica

Treue Seele

  • »Jawaiica« ist der Autor dieses Themas

Beiträge: 134

Wohnort: Hannover

Beruf: Student

  • Private Nachricht senden

1

07.03.2011, 21:03

[SFML & C++] "Mouse over" Effekt?

hallo an alle,

ich habe da mal eine Frage und zwar, wie ich die Farbe von einem Text verändern kann, nachdem die Maus über diesen Text "fährt"?
Ich benutze die SFML 1.6 und C++.

Hoffentlich könnt ihr mir helfen!


Mit freundlichen Grüßen



Jawaiica'
"Die Sekunde ist die Dauer von 9 192 631 770 Perioden der Strahlung, die dem Übergang zwischen den beiden Hyperfeinstrukturniveaus des Grundzustandes des Atoms Caesium 133 entspricht."

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

2

07.03.2011, 21:04

http://www.sfml-dev.org/documentation/1.…8a1b38af7644ffb
das nächste mal könntest du auch selbst suchen...
"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?

Jawaiica

Treue Seele

  • »Jawaiica« ist der Autor dieses Themas

Beiträge: 134

Wohnort: Hannover

Beruf: Student

  • Private Nachricht senden

3

07.03.2011, 21:15

-.-'

Zitat

nachdem die Maus über diesen Text "fährt"
Sorry, aber ich möchte nicht einfach nur den Text ändern... Ich möchte den Text ändern, wenn die Maus über den Text "fährt" und ich weiß nicht, wie ich das machen soll... Ich hätte es mit einer Abfrage geregelt, aber ich weiß nicht die Länge und Breite des Textes deswegen kann ich das schon einmal vergessen. Am besten wäre es, wenn der Text sich nur ändern würde, wenn die Maus auch wirklich nur die Buchstaben berühren würde ( das soll für ein Menü sein deswegen ).


MfG Jawaiica'
"Die Sekunde ist die Dauer von 9 192 631 770 Perioden der Strahlung, die dem Übergang zwischen den beiden Hyperfeinstrukturniveaus des Grundzustandes des Atoms Caesium 133 entspricht."

4

07.03.2011, 21:17

Falls du wissen willst, woher du weißt, wann der Mauszeiger über einem bestimmten Bereich des Fensters ist, dann kannst du auch danach googlen bzw. hier im Forum suchen. Hatten wir jetzt schon öfters.

Die SFML hat eine Klasse sf::Rect (für Integer und Float) die über eine Funktion Contains() verfügt. Damit kannst du prüfen ob die Position des Mauszeigers innerhalb der Fläche ist, die der Text einnimmt und dann hast du auch schon was du willst. Alles weiter findest du in der Dokumentation.

Gruß
SaRu_

idontknow

unregistriert

5

07.03.2011, 21:17

afaik gibt es bei den Klassen von sf::String bzw der Klasse (bin mir nocht mehr ganz sicher wie sie heißt!) die man zum zeichnen von Text benutzt genug Methoden um die Dimensionen von einem String auszurechnen!

6

07.03.2011, 21:19

Ja so heißt die Klasse. ;)

Hier noch der Link zur Doku .

Aber such bitte in Zukunft immer erst in der Dokumentation.

Gruß
SaRu_

Jawaiica

Treue Seele

  • »Jawaiica« ist der Autor dieses Themas

Beiträge: 134

Wohnort: Hannover

Beruf: Student

  • Private Nachricht senden

7

07.03.2011, 21:29

Ich habe jetzt nachgeschaut, aber ich weiß leider immer noch nicht, wie ich die GetSize() Funktion benutzen soll. =/ Was liefert die überhaupt für Werte / einen Wert zurück?
"Die Sekunde ist die Dauer von 9 192 631 770 Perioden der Strahlung, die dem Übergang zwischen den beiden Hyperfeinstrukturniveaus des Grundzustandes des Atoms Caesium 133 entspricht."

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

8

07.03.2011, 22:03

einfach das rect mit GetRect holen. GetSize ist das gegenstück zu SetSize. das bringt dir hier nichts.
http://www.sfml-dev.org/documentation/1.…d1dcd42ff33002d
"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?

9

07.03.2011, 22:49

GetSize ist das gegenstück zu SetSize. das bringt dir hier nichts.

Da hast du natürlich recht. Hab mich da auf die Schnelle vertan beim Link raussuchen. - Wobei man mit GetPosition() und GetSize() auch wieder ein Rect basteln könnte.... *hust* aber ich will mich hier jetzt nicht rausreden, war einfach Unaufmersamkeit. Entschuldigung!

Gruß
SaRu_

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

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

  • Private Nachricht senden

10

07.03.2011, 23:20

Wobei man mit GetPosition() und GetSize() auch wieder ein Rect basteln könnte....

nein kann man nicht ohne weiteres. GetSize gibt eine floatvariable zurück die man mit SetSize vorher setzt(oder über den konstruktor) und die hat, sowei ich weiß, nur indirekt mit der größe in pixeln zutun.
"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?

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »NachoMan« (07.03.2011, 23:29)


Werbeanzeige