Object reagiert nicht auf Klick

  • GM 8

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

  • Object reagiert nicht auf Klick

    Hallo!

    Ich habe ein Object, welches unter anderem das Event "Mouse; Left Button" enthält. In GML in diesem Event sollten dann einige Registry Einträge geschrieben werden, eine Nachricht angezeigt und in einen anderen Raum gewechselt werden.

    Es werden keine Error-Meldungen angezeigt, jedoch wird auch nichts ausgeführt - keine Registry-Einträge, keine Nachricht, kein anderer Room.

    Ich habe jetzt echt keine Ahnung mehr.

    Danke für eure Hilfe!


    Spoiler anzeigen

    GML-Quellcode

    1. Information about object: obj_butt_weiter
    2. Sprite: button_weiter
    3. Solid: false
    4. Visible: true
    5. Depth: 0
    6. Persistent: false
    7. Parent: <no parent>
    8. Mask: <same as sprite>
    9. Step Event:
    10. execute script hover with arguments (0,0,0,0,0)
    11. Mouse Event for Left Button:
    12. execute code:
    13. zeit_1 = global.time_meat
    14. wd_message_set_text("Bei der Zeitmessung erzielten Sie ein Resultat von "+string(zeit_1)+". Falls Sie die Zeit höher oder tiefer stellen möchten, klicken Sie auf 'RETRY'. Falls Sie die Zeiteinstellung so bleiben lassen möchten, klicken Sie auf 'OK'.")
    15. str = wd_message_show(wd_mk_confirmation,wd_mb_retry,wd_mb_none,wd_mb_ok)
    16. if (str == wd_mb_retry)
    17. {
    18. zeit_neu = wd_input_box("Zeit ändern","Geben Sie die gewünschte Zeit in Sekunden ein.",string(zeit_1))
    19. }
    20. else
    21. {
    22. zeit_neu = zeit_1
    23. }
    24. if (global.play_sound_on != "")
    25. {
    26. registry_write_string_ext("\Software\AckermannGames\"+global.programmname+"\profile\"+string(global.profilenr),"sound_path",global.sound_play_on)
    27. }
    28. if (global.software_path_on != "")
    29. {
    30. registry_write_string_ext("\Software\AckermannGames\"+global.programmname+"\profile\"+string(global.profilenr),"software_path",global.software_path_on)
    31. }
    32. registry_write_string_ext("\Software\AckermannGames\"+global.programmname+"\profile\"+string(global.profilenr),"profile_exists","yes")
    33. registry_write_string_ext("\Software\AckermannGames\"+global.programmname+"\profile\"+string(global.profilenr),"profile_action",string(global.Aktion))
    34. registry_write_string_ext("\Software\AckermannGames\"+global.programmname+"\profile\"+string(global.profilenr),"profile_time",string(zeit_neu))
    35. wd_message_set_text("Das Profil "+string(global.profilenr)+" wurde erfolgreich gespeichert. Sie kehren nun zurück zur Profilauswahl.")
    36. wd_message_show(wd_mk_confirmation,wd_mb_none,wd_mb_ok,wd_mb_none)
    37. room_goto(profile)
    38. Other Event: Game End:
    39. execute code:
    40. dllfree()
    41. http_free()
    42. disconnect()
    Alles anzeigen
    :thumbsup:
  • versuch mal im Create Event:

    Quellcode

    1. mouse_x = room_width/2;
    2. mouse_y = room_height/2;
    3. sprite_index = sprite01; //also das Sprite zu deinem Objekt
    4. image_yscale = 1;
    5. image_xscale = 1;
    6. solid = true;


    Was das ausschliesst:
    - dass der Mouse Cursor in der MItte des Raumes ist (dass zeigt dir, ob der Mousepointer auch wirklich uebereinstimmt mit den Coords in deinem Raum. Manchmal gibt es da Unterschiede... zum Beispiel wenn man display anstelle von Raum-coords verwendet).
    - dass dein Sprite auch das richtige Sprite ist
    - dass die Groesse auch dem Originalzustand des Sprites entspricht (wichtig, fuer Colission-Mask)
    - dass die Objekt-Collission auch wirklich abgefragt wirkt. Ich habe schon erlebt, dass "Solid" die Collission Mask unguenstig beinflusst.

    Einfach mal ausprobieren.
  • edit:

    Leider sind mouse_x und mouse_y read-only variablen, weshalb man display_mouse_get_x bzw. display_mouse_get_y verwenden muss. mit diesen variablen bzw. mit dem Create Event Code geht es nicht. Ausserdem habe ich unter "Scripts --> Check Ressource Names" nachgeschaut; "No name conflicts were found".

    An einer Maske kann es leider auch nicht liegen, da dass selbe Event bei anderen Buttons mit den gleichen Sprite einstellungen funktioniert hat.

    Evtl. Liegt es daran, dass die Registry bzw. das Spiel beim schreiben so vieler Einträge überlastet ist. Ich könnte versuchen sie mit Alarmen immer 2 Steps zu versetzten, und dem Benutzer eine Nachricht wie "Bitte warten" anzuzeigen.
    :thumbsup:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von jlsnews ()