Buttons reagieren nicht wie gewünscht

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

  • Buttons reagieren nicht wie gewünscht

    Hallo zusammen, das ist der Code für meinen Button:

    Quellcode

    1. Information about object: obj_btn_startGame
    2. Sprite:
    3. Solid: true
    4. Visible: true
    5. Depth:
    6. 0
    7. Persistent: false
    8. Parent:
    9. Children:
    10. Mask:
    11. No Physics Object
    12. Create Event:
    13. execute code:
    14. /// set the image speed
    15. image_speed = 0;
    16. sprite_index = 0;
    17. Step Event:
    18. execute code:
    19. ///button start game :: action
    20. if (mouse_check_button(mb_left)) {
    21. image_index = 2;
    22. room_goto(rm_game);
    23. }
    24. if (position_meeting(mouse_x, mouse_y, self)) {
    25. sprite_index = 1;
    26. } else {
    27. sprite_index = 0;
    28. }
    29. Draw Event:
    30. execute code:
    31. ///draw buttons and text
    32. draw_sprite(spr_btn_background, sprite_index, x, y);
    33. draw_set_font(ft_vollkorn);
    34. draw_set_colour(global.textcolour);
    35. draw_set_halign(fa_center);
    36. draw_set_valign(fa_center);
    37. draw_text(obj_btn_startGame.x, obj_btn_startGame.y-5, 'Start Game');
    Alles anzeigen


    von diesen Buttons habe ich einen um in den Highscore Raum zu wechseln, einen Um wieder zurück zu welchseln und noch diverse andere. Egal welchen Button ich allerdings anklicke: ich lande immer im Spiel. Ich finde auch keinen Fehler, irgendwie. Debugger scheint auch nichts fehlerhaftes zu entdecken etc. Deswegen frage ich mal, ich bin jetzt so betriebsblind ... dass ich x von y nicht mehr unterscheiden kann.

    Gruß pestamobe.
    Dieser Beitrag wurde ausgezeichnet mit einem großen LOB.
  • In diesem Code sehe ich nur den bitten der zu rm_game führt. Ist jeder Button der selbe?
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Hi Husi012,

    hier habe ich nur ein Objekt mal vom Code heraus kopiert ... alle Buttons sind eigene selbstständige Objekte. Im Step-Event habe ich auch immer darauf geachtet und vorhin als erstes nachgesehen ob die "Verknüpfungen" zu den Räumen passen bzw. zu game_end() ...

    Deswegen verstehe ich es auch nicht, dass jeder Button auf den Spielraum verweist. -- Ist es möglich das es ein Overlay-Problem ist, also quasi eine Überlagerung oder muss ich für jedes Objekt einen eigen Sprite machen ...
    Dieser Beitrag wurde ausgezeichnet mit einem großen LOB.
  • Ich hab grad gemerkt dass du ein einfaches mouse_check_button gemacht hast. Hier ist es egal wohin du klickst. Mach davor noch
    if position_meering(mouse_x, mouse_y, id )
    Dann müsste es klappen;)
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Falls das ganze unabsichtlich reingerutscht ist:

    GML-Quellcode

    1. if (position_meeting(mouse_x, mouse_y, self)) {
    2. sprite_index = 1;
    3. } else {
    4. sprite_index = 0;
    5. }

    Der Integer bei sprite_index referenziert auf das Resourcensystem im Game Maker und damit ein Sprite das die intern den Integer 1 oder 0 hat. d.H. Solltest du entweder image_index mit einem Integer befüllen (das Subimage eines Sprites) oder du verwendeste den Resourcennamen (Gibt natürlich auch legitime Gründe das Resourcensystem anzufassen):

    GML-Quellcode

    1. sprite_index = sprite_0;

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

  • Hi domis 4, ja das ist ein Geschwindigkeitsfehler beim coden :) -- Danke für den Hinweis.

    Husi012, genau so klappt es ... wieder ein Problem gelöst.

    Danke, und noch einen schönen Abend!!!
    Dieser Beitrag wurde ausgezeichnet mit einem großen LOB.