Möchte device_mouse... für Android nutzen, da mache ich wohl etwas falsch?

  • Android

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

  • Möchte device_mouse... für Android nutzen, da mache ich wohl etwas falsch?

    So wie ich die GMS hilfe verstehen,
    kann ich mit device_mouse.... die Touchbedinung nutzen.
    Möglich sind bis zu 5 Touchabfragen.
    Nutze möchte ich nur 2.
    Klar ;) , für die steuerung links/rechts.

    Das scheint bei mir aber nicht so wircklich zu funktionieren.
    Hier liegt es sehr wahrscheinlich an meinem verständnis der funktionsweise von device_mouse...

    Die Abfragen sollen im Bildschirch getrennt sein, daher soll device 0 < 500 pixel und decice 1 > 500 pixel liegen
    Soweit so gut, wenn ich das beispiel nun auf dem Handy starte, funktioniert die steuerung "willkürlich".


    Erstellt ist der code im Object Player -> Step Event
    Spoiler anzeigen

    GML-Quellcode

    1. for(i=0;i < 1; i+=1)
    2. {
    3. if (device_mouse_check_button(i, mb_left) && device_mouse_x(i) < 500)
    4. {hspeed = -5}
    5. if (device_mouse_check_button(i, mb_left) && device_mouse_x(i) > 500)
    6. {hspeed = 5}
    7. }



    Edit://
    Fehler erkannt aber noch nicht gebannt ;)
    Da ich im Rooms das "Scrolling" aktiviert habe, verschieben sich hier die koordinaten der mouseposition.
    Wenn ich nun zu weit nach links scrolle(rechts bewege), komme ich an einen punkt wo device_mouse_x() immer > 500 ist.
    Dann ist klar das ich nicht mehr zurück scrollen/bewegen kann.

    Werde mal weiter tüfteln :)

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

  • Ok, habe es soweit herausgefunden :)

    GML-Quellcode

    1. for(i=0;i < 1; i+=1)
    2. {
    3. if (device_mouse_check_button(i, mb_left) && [b]device_mouse_x(i) < view_xview[0] + (view_wview[0] /2 )[/b])
    4. {hspeed = -5 }
    5. if (device_mouse_check_button(i, mb_left) && [b]device_mouse_x(i) > view_xview[0] + (view_wview[0] /2 )[/b])
    6. {hspeed = 5}
    7. }
    8. }


    Aber nun habe ich folgendes Problem, tippe ich z.b. auf die rechte screenseite, bewegt sich der player nach rechts, soweit Ok.
    Tippe ich zusätzlich auf die linke hälfte, müsste der player eigentlich stehen bleiben, macht er aber nicht :(

    Lasse ich die rechte seite los , müsste der Player sich nach links bewegen, da ich hier ja noch mit dem Finger drauf bin. Macht er auch nicht.

    Ich muss immer den screen zuerst "loslassen" erst danach reagiert die steuerung in die gewünschte richtung.

    Wie kann ich das verhalten abschalten, bzw. das hier auch wirklich alle zwei Touch (links und rechts) beachtet werden.