Sprite wechseln nach Attacke

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

  • Sprite wechseln nach Attacke

    Mein Player-Objekt läuft hin und her, hat ein Schwert in der Hand und sobald ein Gegner vor ihm ist wird die Attacke mit Kollsion-Effekt ausgeführt. Ich habe die Sprites für die Attack, vier Sprites die einmal ablaufen soll.

    Wie programmiere ich das am Besten, dass wenn zB. das Ereigness ensteht bei Kollsion-Event: einmal Sprite_Attacke abgespielt und anschliessend wieder auf Sprite_Walk gewechselt wird?

    Meine einzige Idee war im Step-Event:

    GML-Quellcode

    1. if (sprite_index == spr_player_attack & image_index >= 4){
    2. sprite_index = spr_player_walk
    3. }

    ...aber er bleibt in der Attacke-Animation.

    Was wäre eure Idee oder Vorschlag?
    huhu
  • Dafür gibt es mehrere Lösungen z.B.
    create event

    GML-Quellcode

    1. kollision = false;

    step event

    GML-Quellcode

    1. if(...) // dein kollisions code
    2. {
    3. kollision = true;
    4. }
    5. if kollision == true
    6. {
    7. sprite_index = spr_player_attack;
    8. if image_index >= 4
    9. {
    10. sprite_index = spr_player_walk;
    11. kollision = false;
    12. }
    13. }
    Alles anzeigen


    So oder so ähnlich sollte das funktionieren. ^^
    Gibt bestimmt noch schönere möglichkeiten das zu lösen aber das ist mir grad so in den Sinn gekommen. :)
    Für jene, die ständig das Scheitern fürchten, sind Erfolge auf ewig unerreichbar.
  • So ähnlich wie @Rotfuchs7 es geschrieben hat. Momentan würde er kollision sofort wieder auf true setzen und wieder gleich zu schlagen, da der Gegner immernoch mit dem spieler überlappt.

    GML-Quellcode

    1. //create
    2. canHit = true
    3. //step
    4. if collision//wird immer ausgeführt, weil könnte ja nützlich für iwelche anderen eigenschaften des gegners sein
    5. {
    6. if canHit == true//wird nur einmal ausgeführt
    7. {
    8. sprite_index = spr_player_attack;
    9. canHit = false;
    10. alarm[0] = room_speed*1;//nach einer sekunde im alarm[0] canHit wieder auf true stellen damit er wieder schlagen kann
    11. }
    12. if sprite_index == spr_player_attack//wird nur beim attackieren ausgeführt
    13. {
    14. if image_index > 3
    15. {
    16. sprite_index = spr_player_walk;
    17. }
    18. }
    19. }
    20. //alarm[0]
    21. canHit = true;
    Alles anzeigen

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)