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

26.06.2013, 09:40

Keystate dauerhaft vergleichen ohne event struktur, Ist dies auch mit der Maus möglich?

Guten Morgen Alle :)

Ich habe eine kurze knackige frage, habe mich durch google gesucht aber nichts gefunden.

In dem projekt aus dem Buch von Heiko Kalista(Spieleprogrammierung) gibt es die funktion Keydown diese hat den momentanen Tastaturstatus der SDL

also kurz gesagt, er erstellt eine Uint8 und speichert in dieser SDL_GetKeyState und tut diese dann mit einer Update funkltion dauerhaft aktualisieren(SDL_PumpEvents())


In der letztendlichen funktion steht folgendes: return (m_pKeystate[Key_ID] ? true : false;


Meine eigentliche frage ist nun, ist es möglich so eine dauerhafte Mouse Motion b.z.w Event zu machen ob ein Mauszeiger über einem bestimmten objekt gedrückt wurde


Ich hoffe ich habe das verständlich mitgeteilt ^^

Gruß Leri

wluc-16

Treue Seele

Beiträge: 212

Wohnort: in der Nähe von Bielefeld :D

Beruf: Schüler

  • Private Nachricht senden

2

26.06.2013, 15:44

Also meinst du, dass der Mauszeiger immer auf einem Objekt bleibt?

Das ließe sich sehr leicht implementieren, indem man einfach guckt, ob sich der Mauszeiger nicht mehr über dem Rect des Objektes befindet.
Wenn das der Fall ist subtarhiert man einfach den Abstand vom der richtigen Position.

3

28.06.2013, 11:23

ich möchte einfach keine event schleife benutzen, alla SDL_Event sondern es gibt ja für die Tastatur auch eine abfrage übwer SDL_Keystate oder so, habe mich dann gefragt ob es das auch für die Maus gibt, weil dann kann ich den MouseButton direkt abfragen, also in einer kurzen funktion.



Habe aber momentan noch ein problem ich arbeite mit sdl ttf und versuche momentan die größe des gesamten Textes zu ermitteln ^^ normal sollte bei schriftgröße 28 bei 16 zeichen die größe ja 448 sein ist aber gerade mal geraten 220.

Gibt es eine funktion der sdl ttf die mit die größe in pixeln zurückgibt und falls ja, wie wende ich diese an.

Habe ca 20 Minuten in google geschaut aber leider nichts wirklich passendes gefunden

Gruß Leri :)

4

28.06.2013, 11:53

Die Schriftgröße gibt dir die Höhe, nicht die Breite an.
Es gibt gewisse Schriftarten, bei denen jedes Zeichen identisch breit ist (weiß leider nicht mehr, wie die sich nennen), damit ließe sich das ausrechnen.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

5

28.06.2013, 12:16

Mit der Funktion TTF_SizeText solltest du die Größe bekommen.

Es gibt gewisse Schriftarten, bei denen jedes Zeichen identisch breit ist (weiß leider nicht mehr, wie die sich nennen), damit ließe sich das ausrechnen.

Monospace ist die Bezeichnung solcher Schriftarten.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

6

28.06.2013, 12:35

Was dein Mausproblem angeht, ich würde die Mausdaten einfach kapseln und am Anfang durch die Eventschleife ausfüllen. Danach greifst du dann einfach auf das Objekt selbst zu und hast mit der Eventschleife nichts mehr zu tun. Ansonsten sollte dir Google aber weiter helfen wenn du mal nach Dingen wei "C++ Maus abfragen" oder so suchst.
„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.“

8

28.06.2013, 22:03

danke schonmal für die vielen antworten ^^ werde mir alles mal in Ruhe anschauen.

Auf SizeText bin ich auch schon drauf gestoßen nur leider weiß ich nicht genau, wie ich das verwenden muss, habe ein paar mal ausprobiert aber es ließ sich nicht kompilieren.

9

29.06.2013, 08:49

so ^^ entschuldigung, das mit sizetext klappt nun.

Hätte allerdings noch eine frage.

Ich möchte ein Menü schreiben, was man in jedem Projeklt benutzen kann, es gibt eine Klasse für buttons, jeder Button soll eine andere Funktion aufrufen, ist es möglich, funktionen über eine Datei in einen string zu laden und dann in den Button einzufügen, das er diese aufrufen kann?

10

29.06.2013, 12:28

Was willst du machen?
einString = einefunktionAusEinerDatei; ??
einButton.fügeEin(einString ); ???

Das erscheint mir Geheimnisvoll. :D

Ich nehme an, du willst deinem Button-Objekt über eine Info mitteilen was beim Draufdrücken passiert. Ich finde nicht, dass das Aufgabe deines Buttons sein sollte, nämlich Dinge zu erledigen, die -wie ich annehme- nichts mit dem Button-Objekt selbst zu tun haben.

Werbeanzeige