Einfache Knöpfe für links und rechts

  • Allgemein

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

  • Einfache Knöpfe für links und rechts

    Kurze Anfänger Frage,

    wie setze ich eine einfache Steuerung für bspw. Android um?
    Derzeit habe ich zwei Sprites, bzw. Objekte, welche einen Punkt Steuern sollen.

    Code:
    Spoiler anzeigen

    Im "Left Mouse Button" Event des "nach links Knopf's":

    GML-Quellcode

    1. global.left = true;

    Mouse released:

    GML-Quellcode

    1. global.left = false;
    2. obj_player.xspeed = 0;

    Im "Right Mouse Button" Event des "nach rechts Knopf's":

    GML-Quellcode

    1. global.right = true;

    Mouse released:

    GML-Quellcode

    1. global.right = false;
    2. obj_player.xspeed = 0;


    Player Step Event:

    GML-Quellcode

    1. xspeed -= xspeed / 10;
    2. yspeed -= yspeed / 10;
    3. //smooth xspeed
    4. repeat (abs(xspeed))
    5. if place_free(x+sign(xspeed),y) {x += sign(xspeed)
    6. }else {xspeed = 0}
    7. //smooth yspeed
    8. repeat (abs(yspeed))
    9. if place_free(x,y+sign(yspeed) ){y += sign(yspeed)
    10. }else {yspeed = 0}
    11. if (global.up = true) {
    12. if (place_free(x,y-1)) {yspeed -= 1; }
    13. }
    14. if (global.down = true) {
    15. if (place_free(x,y+1)) {yspeed += 1; }
    16. }
    17. if (global.left = true) {
    18. if (place_free(x-1,y)) {xspeed -= 1; }
    19. }
    20. if (global.right = true) {
    21. if (place_free(x+1,y)) {xspeed += 1; }
    22. }
    Alles anzeigen



    Das Problem ist jetzt, bleibt man auf einer der Knöpfe und zieht die Maus bzw. den Finger aus dem Sprite,
    bewegt sich der Punkt weiter in die eben angegebene Richtung.

    Wie könnte ich das lösen?
  • Ich würde den Code aus dem Mouse Left Button und Mouse Left released mit ins Step Event tun und dort dann abfragen, ob Mouse Left Button true ist ( dann kommt der Code aus dem Event Mouse Left Button) und bei else dann den Code von Mouse Left released.
    Mit rechts genauso.

    Sollte dein Problem lösen.

    mfg, derkimba
  • Hab es nun folgendermaßen gemacht.
    Code:
    Spoiler anzeigen

    obj_ctrls Create:

    GML-Quellcode

    1. gui_width=854;
    2. gui_height=480;

    obj_ctrls Draw GUI:

    GML-Quellcode

    1. display_set_gui_size(gui_width,gui_height);
    2. global.vkup = YoYo_AddVirtualKey( 750, 380, 80, 80, vk_up );
    3. global.vkleft = YoYo_AddVirtualKey( 20, 380, 80, 80, vk_left );
    4. global.vkright = YoYo_AddVirtualKey( 190, 380, 80, 80, vk_right );
    5. draw_sprite(spr_ctrls, 0, 750, 380);
    6. draw_sprite(spr_ctrls, 0, 20, 380);
    7. draw_sprite(spr_ctrls, 0, 190, 380);
    Alles anzeigen

    Player Step Event:

    GML-Quellcode

    1. if keyboard_check(vk_left) {
    2. if (place_free(x-1,y)) {xspeed -= 1; } }
    3. if keyboard_check(vk_right) {
    4. if (place_free(x+1,y)) {xspeed += 1; } }


    Aber danke für die Hilfe :)