[GM Studio] Hilfe beim Code eine weitere Animation ein zu bauen. Gelöst

  • GM 8

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

  • [GM Studio] Hilfe beim Code eine weitere Animation ein zu bauen. Gelöst

    Hallo zusammen,
    ich arbeite erst seit kurzen mit dem Game Maker Studio und bin ein Blutiger Anfänger :) Ich bin gerade da bei Eigenes JUMP&RUN game - Game Maker 8 Tutorial nach zu bauen. Ich komme eigentlich gut mit. Ich möchte das Script was in dem Video erstellt wurde um einen Punkt erweitern, mit einer weiteren Animation. Momentan wenn man nach links oder rechts läuft spielt das Sprite die Laufanimation ab. Aber sobald man stehen bleib, bleibt die Animation auch stehen. Ich möchte eine weitere Animation einbauen die Abgespielt werden soll wann man sich nicht bewegt.
    Vielleicht könnt ihr mir weiter helfen.

    [hide=Code Create]

    GML-Quellcode

    1. image_speed = 0
    2. lastpressed = "right"
    3. vargo = "stopp" //Benötigt für Eigenen Versuch
    [/hide]

    [hide=Code End Step]

    GML-Quellcode

    1. hspeed = 0;
    2. if keyboard_check (vk_right) // Steuerung Rechts
    3. {
    4. hspeed += 5;
    5. lastpressed = "right"
    6. }
    7. if keyboard_check (vk_left) // Steuerung Links
    8. {
    9. hspeed -= 5;
    10. lastpressed = "left"
    11. }
    12. if place_free (x,y+10)
    13. { // Wenn wir in der Luft sind
    14. if lastpressed == "right"
    15. sprite_index = Player_Sprung_Rechts
    16. else
    17. sprite_index = Player_Sprung_Links
    18. }
    19. else
    20. { //Wenn wir am Boden sind
    21. if lastpressed == "left"
    22. sprite_index = Player_Links
    23. else
    24. sprite_index = Player_Rechts
    25. }
    26. image_index = x/30 // Animation
    27. if place_free (x+hspeed,y) == false // Kollisionerkennung Links Rechts
    28. {
    29. if hspeed > 0
    30. move_contact_solid(0,-1)
    31. if hspeed < 0
    32. move_contact_solid(180,-1)
    33. hspeed =0;
    34. }
    35. vspeed += 1 // Grafitation
    36. if keyboard_check_pressed (vk_up) //Spriengen
    37. if place_free (x,y+10) == false
    38. vspeed -= 15;
    39. if place_free (x,y+vspeed) == false // Kollisionerkennung Oben Unten
    40. {
    41. if vspeed > 0
    42. move_contact_solid(270,-1)
    43. if vspeed < 0
    44. move_contact_solid(90,-1)
    45. vspeed =0;
    46. }
    47. if place_free (x+hspeed,y+vspeed) == false // Nicht an Ecken hängen bleiben
    48. hspeed =0;
    49. if keyboard_check_released (vk_up)
    50. if vspeed < 0
    51. vspeed /=2
    52. view_xview = ((x-view_wview/2)+view_xview*9)/10 // Bildschirm einstellung
    53. view_yview = ((y-view_hview/1.5)+view_yview*9)/10
    54. if view_xview < 0
    55. view_xview = 0
    56. if view_yview < 0
    57. view_yview = 0
    58. if view_xview > room_width-view_wview
    59. view_xview = room_width-view_wview
    60. if view_yview > room_height-view_hview
    61. view_yview = room_height-view_hview
    Alles anzeigen

    [/hide]

    Bei dem eigenen Versuch habe ich ein wenig experimentiert. Hier gibt es den einen oder anderen Feher, den ich nicht beseitigen kann.
    Man kann nach rechts laufen aber das Sprite bleibt immer in der "Player_IDEL_Rechts" wenn ich nach links gehe funktioniert es ohne probleme. Nach dem ich nach links gegangen bin und nach rechts weiter laufen möchte wechselt zwar das sprite wieder auf Player_IDEL_Rechts aber bewegt sich nicht mehr nach rechts.

    [hide= Code End Step Eigener versuch]

    GML-Quellcode

    1. hspeed = 0;
    2. if keyboard_check (vk_right) // Steuerung Rechts
    3. {
    4. hspeed += 5;
    5. vargo = "go"
    6. lastpressed = "right"
    7. }
    8. else
    9. vargo = "stop"
    10. if keyboard_check (vk_left) // Steuerung Links
    11. {
    12. hspeed -= 5;
    13. vargo = "go"
    14. lastpressed = "left"
    15. }
    16. else
    17. vargo = "stop"
    18. if place_free (x,y+10)
    19. { // Wenn wir in der Luft sind
    20. if lastpressed == "right"
    21. sprite_index = Player_Sprung_Rechts
    22. else
    23. sprite_index = Player_Sprung_Links
    24. }
    25. else
    26. { //Wenn wir am Boden sind
    27. if vargo == "go"
    28. {
    29. if lastpressed == "left"
    30. sprite_index = Player_Links
    31. else
    32. sprite_index = Player_Rechts
    33. }
    34. else
    35. {
    36. if lastpressed == "left"
    37. sprite_index = Player_IDEL_Links
    38. else
    39. sprite_index = Player_IDEL_Rechts
    40. }
    41. }
    42. image_index = x/20 // Animation
    Alles anzeigen
    [/hide]

    Über Hilfe und verbesserungen wurde ich mich freuen.

    [hide=behoben mit "if keyboard_check_released"]

    GML-Quellcode

    1. hspeed = 0;
    2. if keyboard_check (vk_right) // Steuerung Rechts
    3. {
    4. vargo = "go"
    5. hspeed += 5;
    6. lastpressed = "right"
    7. }
    8. if keyboard_check_released (vk_right)
    9. vargo = "stop"
    10. if keyboard_check (vk_left) // Steuerung Links
    11. {
    12. vargo = "go"
    13. hspeed -= 5;
    14. lastpressed = "left"
    15. }
    16. if keyboard_check_released (vk_left)
    17. vargo = "stop"
    18. if place_free (x,y+10)
    19. { // Wenn wir in der Luft sind
    20. if lastpressed == "right"
    21. sprite_index = Player_Sprung_Rechts
    22. else
    23. sprite_index = Player_Sprung_Links
    24. }
    25. else
    26. { //Wenn wir am Boden sind
    27. if vargo == "go"
    28. {
    29. if lastpressed == "left"
    30. sprite_index = Player_Links
    31. else
    32. sprite_index = Player_Rechts
    33. }
    34. if vargo == "stop"
    35. {
    36. if lastpressed == "left"
    37. sprite_index = Player_IDEL_Links
    38. else
    39. sprite_index = Player_IDEL_Rechts
    40. }
    41. }
    42. image_index = x/20 // Animation
    Alles anzeigen
    [/hide]

    Gruß Sveni

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Sveni () aus folgendem Grund: Habe den Fehlerselber gefunden :-)