Android Mouse Position.

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

  • Android Mouse Position.

    Hallo

    Ich möchte die mouse Position selbst bestimmen.
    Das ganze funtioniert mit:

    GML-Quellcode

    1. display_mouse_set(display_get_width()/2,display_get_height()/1.26)

    unter Windows einwandfrei, nur leider nicht auf Android. ;(
    auch:

    GML-Quellcode

    1. window_mouse_set(window_get_width()/2,window_get_height()/1.26)

    funtioniert unter windows einwandfrei aber leider nicht auf Android. ;(

    Hat jemand eine Idee wie ich das auch mit Android hinbekomme?

    Danke im Voraus
    LG Vectorhead
    lg Vectorhead
  • @Dufner funzt leider auch nicht. ;(
    Also ich habe in einem Room ein Menue das ganz einfach gemacht ist und zwar:
    Start Game
    Online Highscore
    credits
    usw.
    wenn du jetzt mit dem Finger eins dieser "Objekte" berührst passiert etwas, in meinem Falle Start Game und du kommst in den nächsten Room, und jetzt das eigentliche, ich erstelle den Player an einer gewissen Stelle des rooms und dieser bewegt sich sofort in richtung mouse.x,mouse.y.
    Ist klar, den im Player step event habe ich folgenden code:

    GML-Quellcode

    1. speed=point_distance(x,y+(display_get_height()/9),mouse_x,mouse_y)/3
    2. direction=point_direction(x,y+(display_get_height()/9),mouse_x,mouse_y)

    aber ich möchte das sich der Player erst ab dem berühren des Screens in dessen richtung bewegt und nicht an die Stelle in der ich im Menü Room das Start Game Objekt berührt habe.

    Ich hoffe ich habe mich verständlich ausgedrückt.
    Quasi mouse.x,mouse.y sind unter Android "persistant" und nicht selbst bestimmbar.

    Wie gesagt evtl. hat jemand eine lösung meines Problems.


    Edit: Wird

    GML-Quellcode

    1. Virtual_key_add

    als mouse erkannt? Weil wenn nicht könnte ich den Menü Room mit Virtual_key_add machen und somit ist kein mouse_x,mouse_y vorhanden oder?


    LG Vector
    lg Vectorhead

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

  • mach doch im create event von deinem player ne variable zum beispiel spielstart =false;
    dann nen alarm den setzt auf 15 oder so und in dem spielstart =true; und beim player deinenen ganzen code umschweifen mit der abfrage if (spielstart == true){
    //beweg dich zum punkt der maus}

    und zum virtual key ... weiß ich jetzt nicht ganz was du meinst
    virtual key benutze ich z.B: so.... ich programmiere z.B. im step event meine steuerung

    right = keyboard_check(vk_right);
    wenn man jetzt auf der tastatur den rechten pfeil drückt passiert ja was also dann erstelle ich ein virtual key virtual_key_add(meine x position, meine y position, die breite, die höche, right)

    wenn ich jetzt mit der maus ioder auch auf dem handy auf meinen erstellten virtual key drückte wird die variable right auf true gesetzt und macht das gleiche wie auch bei der tastatur :)
    Wir stehen zusammen und wir fallen zusammen
  • JO das habe ich schon probiert aber irgendwie merkt er sich room übergreifend den letzten mouse_x,mouse_y , egal ob ich mit irgendeiner Variable es erst erzwinge mouse_x ...... zu ignorieren, im endeffect sobald ich den code vom Player ausführe ist mouse_x... vom ersten touch an (in diesem Fall menue_room) ausschlaggebend, (room übergreifend).

    Ja ist klar mit den Virtual_keys ich dachte nur damit erkennt er nicht den "touch" im Menue Room.

    Aber danke für deine Hilfe bzw. Denktanstöße.

    LG Vector
    lg Vectorhead
  • versuch mal im create event dieses spielstart = false; aber dann nicht mit einem alarm sondern im step event: if (device_check_button(0,mb_left){
    spielstart = true;
    }

    und die bewegung zu mouse_x und mouse_y in dein "step END event" da dies ja nach dem step event aufgerufen wird sollte er erst die neuen daten im step event regestieren und dann hin laufen wenn ich mich nicht irre :)
    Wir stehen zusammen und wir fallen zusammen
  • Hallo @Eddysoulo
    Deine Überlegung habe ich auch schon probiert aber leider ohne Erfolg.
    Ich habe gerade eben von einem bekannten erfahren das mein vorhaben mit Windows funtioniert aber mit Android im GM:S nicht möglich ist. ;(
    Angeblich hat sich YOYO schon diesem Problems angenommen und es wird daran gearbeitet.
    Der Grund ist das es unter Android ja eigentlich keine mouse gibt!!!!
    Aber wie Wir wissen funzt vieles über die "nicht vorhanden mouse".

    Also soviel habe ich gerade eben erfahren, für den Fall der Fälle das ich falsch informiert worden bin, wenn jemand eine Lösung weiss bitte ich darum.

    LG Vector

    Trotzdem danke an alle für eure Hilfe :thumbsup:
    lg Vectorhead

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

  • wie sieht denn dein code aus ?

    weil ich habs grad getestet bei mir gehts :)

    EDIT: hoppla hab vorhin deinen code nicht gesehen... ich weiß leider nicht wie es später aussehen soll ob er jetzt non stop den player verfolgen soll oder immer wenn gedrückt wird
    weil nur beim drücken dann mache if device_mouse_check_buttom_pressed(0,mb_left){
    speed=point_distance(x,y+(display_get_height()/9),mouse_x,mouse_y)/3
    direction=point_direction(x,y+(display_get_height()/9),mouse_x,mouse_y)

    }
    Wir stehen zusammen und wir fallen zusammen

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Eddysoulo ()

  • Cool sorry tüftle grad rum und kann nicht mehr sagen was ich alles schon probiert hab. aber auf jeden fall hab ich:
    player step:

    GML-Quellcode

    1. speed=point_distance(x,y+(display_get_height()/9),mouse_x,mouse_y)/3
    2. direction=point_direction(x,y+(display_get_height()/9),mouse_x,mouse_y)

    Alles andere ist eigentlich irrelevangt bzw. hab ich endstep wie du sagtest und sämtliche varianten probiert und leider habe ich keinen erfolg gehabt.

    Edit: Moment gleich mal dein Edit testen.

    Das geht genau in die Richtung in die ich will da der player nicht im neuen room automatisch auf die letzte "gedrückte" mouse position will, aber sobald ich auf den screen drücke fliegt er förmlich durch den Bildschirm, (ich muss dazu sagen das ich die ganze zeit aufm notebook teste nicht aufm smartphone, aber ich weiss wie es sich verhält). also der ansatz ist gut aber evtl. mache ich was falsch?
    lg Vectorhead

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

  • so mein gutschter :) hab halt bissl rum probiert... so hats eig. funktioniert :)

    im player objekt

    create event:

    GML-Quellcode

    1. start = false;
    2. alarm[0] =5;


    alarm[0] event:

    GML-Quellcode

    1. start =true;


    step event:

    GML-Quellcode

    1. if (device_mouse_check_button(0,mb_left)){
    2. xx = mouse_x;
    3. yy =mouse_y;
    4. }


    end step event:

    GML-Quellcode

    1. if (start){if (device_mouse_check_button(0,mb_left)){
    2. speed=point_distance(x,y,xx,yy)/3
    3. direction=point_direction(x,y,xx,yy)
    4. }
    5. }
    Wir stehen zusammen und wir fallen zusammen
  • Hallo

    Ja weis nicht was gestern mit mir war, aber ich habe mir das heute angeschaut und sofort die lösung gewusst und deinen code noch umgeändert, habe das create, den alarm, das end_step gelöscht und einfach nur im step_event:

    GML-Quellcode

    1. if (device_mouse_check_button(0,mb_any))
    2. {
    3. speed=point_distance(x,y+(display_get_height()/9),mouse_x,mouse_y)/3
    4. direction=point_direction(x,y+(display_get_height()/9),mouse_x,mouse_y)
    5. }

    Mehr war nicht.
    Trotzdem Danke dir.

    LG Vectorhead
    lg Vectorhead