Informationen - Mouse Over

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Informationen - Mouse Over

    Hallo Leute,
    Ich hätte da mal eine Frage, ich habe vor einiger Zeit einen Thread hier gesehen, inwelchem einem erklärt wurde, wie mal Informationen erhält wenn man die Maus ein paar Sekunden über ein Objekt hält. Wie es z.B. im GM bei den Drag & Drop Objekten ist. Leider habe ich den Thrad aus den Augen verloren, und auch durch die Suche nach, Informationen, Mouse over infos, und Mehr konnte ich ihn nicht wieder ausgraben.
    Weiss jemand also ein Tutorial Link oder hat jemand selber ein tut zum erklären? Wäre echt froh,

    Danke
    Apple987123
  • Leider Nein

    Das ist leider nicht der Gesuchte Thread, ich bin mir auch nicht sicher wie ich das anwenden soll... (Ich meine, dass es z.B. nach 2 Sekunden Mouse Over engezeigt wird).
    Aber ich kann auch versuchen, mal damit zu arbeiten, auch wenn es kein tut. ist.
    (Ausserdem hat sich in dem Thread den ich gelesen habe, das Rechteck automatisch an den Text angepasst, was in meinem game sehr von Vorteil wäre )=
    Aber Danke Vielmals.

    Apple987123
  • Was du meinst, sind Tooltips - sowas lässt sich eigentlich ziemlich einfach realisieren. Eine Möglichkeit wäre:

    Das Sprite Origin des Button-Sprites muss auf "Center" liegen - ansonsten müsstest du die Abfrage der Mauskoordinaten im Step-Event um die Offsets ergänzen (da hilft die Hilfedatei weiter).

    :event_create: Create:

    GML-Quellcode

    1. timer=0;
    2. show_tooltip=false;


    Der Timer wird aktiviert, sobald du die Maus auf den Button bewegst:
    :event_mouse: Mouse Enter:

    GML-Quellcode

    1. timer=room_speed*2; // Das wären 2 Sekunden


    Wenn die Maus den Button wieder verlässt, wird der Tooltip ausgeblendet und der Timer zurückgesetzt:
    :event_mouse: Mouse Leave:

    GML-Quellcode

    1. timer=0;
    2. show_tooltip=false;


    In Step-Event wird abgefragt, ob die Maus immer noch auf dem Button platziert ist. Falls ja, wird der timer runtergezählt - und wenn er auf 0 steht, wird der Tooltip angezeigt. Auch das gilt nur, so lange der Mauszeiger noch auf dem Button ist - sobald er ihn verlässt, wird das Mouse-Leave-Event aktiviert:
    :event_step: Step:

    GML-Quellcode

    1. if ((mouse_x>x-sprite_width/2) && (mouse_x<x+sprite_width/2) && (mouse_y>y-sprite_height/2) && (mouse_y<y+sprite_height/2)){
    2. if timer>0 timer-=1;
    3. else show_tooltip=true;
    4. }


    Im Draw-Event schließlich werden das Button-Sprite und der Tooltip dargestellt - sofern die entsprechende Variable true ist:
    :event_draw: Draw:

    GML-Quellcode

    1. draw_sprite_ext(/*blabla gedöns eigenes sprite zeichnen wurgs*/);
    2. if show_tooltip{
    3. // Hier dann der Code zum Darstellen des Tooltips - draw_rectangle und draw_text reichen da prinzipiell schon aus.
    4. }


    Das ist jetzt zwar ungetestet, aber ich behaupte mal, das funktioniert so. Falls nicht, kann ich mich immer noch damit rausreden, dass du ja auf die endgültige Lösung eigentlich selber kommen solltest und so. ;)
    Viel Erfolg!
  • Richtig. Genau so erstelle auch ich simple Tooltips.
    Die "Tooltip-Texte" sind bei mir z.B. per Variablen vordefiniert. Anschliessend reichen die draw_text und draw_rectangle Codes vollkommen aus => Rectangle berechnet nach String-Länge. Also fast das gleiche, was du mit der Maus machst.

    Lg
    Michael
  • Mach das am besten ganz anders. Wobei du sogar alles erfahren kannst über ein objekt.
    Erstele in deiner Maus eine Variable:
    obj_id=0
    Wenn du über ein objekt gehst dann las das objekt einfach seine ID einer variable der maus zu weisen.
    obj_maus.obj_id=id
    Wenn die maus das objekt wieder verläst dann stellst du sie wieder auf 0
    obj_Maus.obj_id=0

    Nun kannst du einfach immer mit maus abfragen

    GML-Quellcode

    1. if obj_id>0 then
    2. {
    3. deine Textausgabe / Information der objekte mit hilfe der id des objektes
    4. draw_text(x,y,string(obj_id.leben))
    5. }


    Mit dieser variante kann man alles von einem objekt efahren auf eine simple art und weise.
    Meine Signatur hat kein Visum für das GM Forum erhalten.