Joy Stick Direction

  • GM 8

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

  • Joy Stick Direction

    Tach.
    Mein Problem ist wie prüfe ich z.b ob man links gedrückt hält weil ich in einem Object das im Step event habe:
    (Funkt aber net)

    GML-Quellcode

    1. if (place_meeting(x-1,y,obj_player) and
    2. joystick_direction(1)=0 and !joystick_direction(1)=180) {
    3. move_contact_solid(0,2);
    4. }
    5. if (place_meeting(x+1,y,obj_player) and
    6. joystick_direction(1)=180 and !joystick_direction(1)=0) {
    7. move_contact_solid(180,2);
    8. }
    9. if (place_meeting(x,y+1+vspeed,obj_blocks)) {
    10. gravity = 0; vspeed = 0;
    11. move_contact_solid(270,vspeed);
    12. } else {gravity = 0.5;}
    Alles anzeigen


    Kann mir jemand helfend dabei?
    arbeite grad zum ersten mal mit joysticks^^

    [Zusammengeschoben von Ih3]

    Edit:

    Hat den Keiner eine lösung?
    Wie ich abfrage im Step event ob ich links oder rechts drücke?...
    :saint:
  • joystick_direction(id) Gibt den keycode (vk_numpad1 bis vk_numpad9) entsprechend der Richtung von joystick id (1 oder 2).
    Wenn ich das richtig deute:

    GML-Quellcode

    1. var dir;
    2. dir=joystick_direction(1);
    3. switch(dir)
    4. {
    5. case vk_numpad1: dir=0; break;
    6. case vk_numpad2: dir=45; break;
    7. case vk_numpad3: dir=90; break;
    8. case vk_numpad4: dir=135; break;
    9. case vk_numpad5: dir=180; break;
    10. case vk_numpad6: dir=225; break;
    11. case vk_numpad7: dir=270; break;
    12. case vk_numpad8: dir=315; break;
    13. case vk_numpad9: dir=360; break;
    14. }
    Alles anzeigen

    So genau weiß ich das auch nicht.^^
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%

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

  • *Hust*
    joystick_xpos(id) Returns the position (-1 to 1) of the x-axis of joystick id.
    Wenn ich recht verstehe soll nur geprüft werden ob der Joystick nach links geneigt ist - wozu also mit der Direction rumschlagen, wenn man einfach prüfen kann ob joystick_xpos weniger als 0 ist? (am besten weniger als -0.20 um eine Deadzone einzubringen - also ne gewisse Toleranz gegen ungewollte Neigung des Sticks).


    Btw.: Beim Direction-System ist 270 links, wenn ich mich recht entsinne (nach oben null, im Uhrzeigersinn weiter bis gerade links sinds dann 270°). Um solche Sachen rauszukriegen ist es sehr hilfreich Werte mit "draw variable" auf dem Bildschirm darzustellen (also einfach draw a variable > joystick_direction(1)). Beachte auch, dass eine exakte Direction von 180, 270 etc. in der Praxis kaum zu erreichen ist (bei 360 möglichen Stellungen!). Direction ist für sowas definitiv nicht die richtige Variable - Direction ist für den umgekehrten Fall gut, also wenn man eine Variable mit der Neigung des Sticks gleichsetzen will.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von F4LL0UT ()

  • Perfekt danke F4LLOUT!
    dann brauch ich ja den dir kram nicht mehr :D

    so funktionierts:

    GML-Quellcode

    1. if place_meeting(x-1,y,obj_player) && joystick_xpos(1)>=0.90
    2. {
    3. move_contact_solid(0,2);
    4. }
    5. if place_meeting(x+1,y,obj_player) && joystick_xpos(1)<=-0.90
    6. {
    7. move_contact_solid(180,2);
    8. }
    9. if (place_meeting(x,y+1+vspeed,obj_blocks)) {
    10. gravity = 0; vspeed = 0;
    11. move_contact_solid(270,vspeed);
    12. } else {gravity = 0.5;}
    Alles anzeigen
    :saint: