Argumente - Direction

  • GM 8

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

  • Argumente - Direction

    hallo alle zusammen,

    ich habe heute ein tutorial nachgeschaut wo man mit einem analog verschiedene direction wählen kann. ich habe einen beispiel gefunden wo man 4 wege bewegen kann den spieler. nun will ich 8 wege machen der entwickler hat gesagt du musst im skript "getdirection" die 4 andere wege noch hinzufügen und ihn ändern. Ich verstehe diese nummern aber nicht, was heißt das?



    GML-Quellcode

    1. var l;
    2. l=argument0
    3. d=-1
    4. if (l < 45 && l >= 0) || l > 315 {d=d_Right}
    5. if l > 135 && l < 215 {d=d_Left}
    6. if l >= 45 && l <= 135 {d=d_Up}
    7. if l >= 215 && l < 315 {d=d_Down}
    8. //und diese soll ich irgendwie hinzufügen hab ich.. nun muss ich die nummern perfekt anpassen, aber ich weiß nicht was die nummern da sollen?
    9. if l >= 60 && l < 85 {d=d_UpLeft}
    10. if l >= 60 && l < 85 {d=d_UpRight}
    11. if l >= 60 && l < 85 {d=d_DownRight}
    12. if l >= 60 && l < 85 {d=d_DownLeft}
    13. return d
    Alles anzeigen



    Wer kann mir sagen, wie die nummern geschrieben werden sollen um die wege zu benutzen? :headtouch:




    danke
  • GML-Quellcode

    1. var l;
    2. l=argument0
    3. d=-1
    4. if (l < 22.5 && l >= 0) || l > 337.5 {d=d_Right}
    5. if l > 157.5 && l < 202.5 {d=d_Left}
    6. if l >= 67.5 && l <= 112.5 {d=d_Up}
    7. if l >= 247.5 && l < 292.5 {d=d_Down}
    8. if l >= 112.5 && l < 157.5 {d=d_UpLeft}
    9. if l >= 22.5 && l < 67.5 {d=d_UpRight}
    10. if l >= 292.5 && l < 337.5 {d=d_DownRight}
    11. if l >= 202.5 && l < 247.5 {d=d_DownLeft}
    12. return d
    Alles anzeigen


    Habe es nicht getestet, hoffe mal das es richtig ist ;)

    -Nils
  • Was ist d_*, dein Präfix für Sprites?

    Speicher die Sprite IDs im counter clockwise order in einem Array:
    :event_create: Create Event

    GML-Quellcode

    1. sprites[0] = d_Right;
    2. sprites[1] = d_UpRight;
    3. sprites[2] = d_Up;
    4. sprites[3] = d_UpLeft;
    5. ... etc

    Script 'getSpriteFromDirection'

    GML-Quellcode

    1. return sprites[floor((argument0 % 360) / 45) % 8];


    Und so würdest du dann das Sprite setzen:

    GML-Quellcode

    1. sprite_index = getSpriteFromDirection(image_angle);


    Ungetestet, sollte jedoch klappen.
    :saint: