Analog Stick Winkel abfragen . . .

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

  • Analog Stick Winkel abfragen . . .

    Hallo zusammen,

    gibt es eine Möglichkeit den genauen oder ungefähren Winkel des Analogsticks abzufragen. Was ich bisher gefunden hatte war nur die Möglichkeit die horizontale wie auch die vertikale nach positiv und negativ abzufragen.

    Ich möchte damit je nach Winkel meinen Spieler in eine von 8 Richtungen schießen und blicken zu lassen. Wenn ich nur mit den 4 Werten horizontal/vertikal positiv/negativ arbeite, dann wäre es für den Spieler sehr schwer entweder nach norden,osten,süden oder westen zu schießen. Da man ja immer ein wenig den Stick verzieht und somit ein Zwischenwert kommen würde der mir sagt das es nordosten, südosten,südwesten oder halt nordwesten wäre.

    Ich habe das mit dieser Möglichkeit selbst noch nicht ausprobiert und wollte vorher einfach mal fragen ob es noch eine andere Möglichkeit gibt.
    Oder meint ihr das es reichen würde, da ich eine Deadzone für den Analogstick eingerichtet habe mit einem Wert von 0.4, das der Spieler ohne Probleme auch nach N,O,S,W blicken kann?

    Obwohl wenn ich nochmal drüber nachdenke, hat die Deadzone damit ja eigentlich nichts zu tun und ich bräuchte wirklich was um den genaueren Winkel zu bestimmen.

    mfG Zhe

    Ach und für alle Fussibegeisterten, drücke ich euch für heut Abend mal feste die Daumen . . . die Jungs machen das schon :sauf:
    Bilder
    • testa.png

      172,86 kB, 1.538×562, 93 mal angesehen

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

  • Wieso schwer?
    [1,1] ist dann zB rechts oben.
    Eine Möglichkeit die Ungenauigkeit zu umgehen, ist den Input mit 100 zu multiplizieren und dann bei den Abfragen eine range einzustellen. Also quasi eine eigene deadzone zu definieren. dann ist [95,70]/[0.95,0.70] grade noch rechts oben.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Mit dem point_direction und point_distance sollte das ganze relativ einfach gehen.
    Erst abfragen ob der Analogstick eine ausreichende distanz zur Mitte hat (Deadzone).

    GML-Quellcode

    1. if (point_distance(0,0,gamepad_axis_value(0,gp_axislh),gamepad_axis_value(0,gp_axislv))>deadzone)

    und dann kann man per

    GML-Quellcode

    1. point_direction(0,0,gamepad_axis_value(0,gp_axislh),gamepad_axis_value(0,gp_axislv)

    einfach an den Winkel kommen.
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D

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

  • @Aku: tolle ancient-pixel seite :)
    @Larsi; Du dein Logo ist verkehrt herum :P

    Vielen Dank Ihr zwei, ich werde mir das jetzt mal anschaun und gucken ob ich das hinbekomme. Melde mich die Tage wieder . . .
  • Für das point_direction brauche ich ja ein weiteres objekt/gegner um anhand dieser daten den Winkel zu bestimmen. Ich möchte aber einfach immer in eine von 8 Richtungen schießen je nachdem in welchem Winkel der Analog Stick gehalten wird, unabhängig davon ob da nun ein Gegner ist oder nicht.

    Hm Husi sagt auch du hast das gut erklärt Larsi, dann schnalle ich es einfach grad wohl nur nicht und muss mal ne Runde dadrüber meditieren...
  • Nein du brauchst kein weiteres objekt,
    point_distance gibt dir einfach nur die Distanz von 2 Punkten, die du ihm gibst zurück.
    In meinem Beispiel gebe ich dem als ersten punkt (0/0) das ist genau das was dir gampad_axis_value(0,gp_axislh) und gampad_axis_value(0,gp_axislv) gibt wenn der stick in der Mitte ist.
    dann gibt mir das eben die Distanz, die der stick von der Mitte weg ist.
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D