Boomerangs erst bei image 5 erstellen

  • Boomerangs erst bei image 5 erstellen

    Hallo,

    Ich habe in meinem Spiel eine Hauptfigur (Name: "obj_main").
    Obj_main soll Boomerangs werfen.
    Also habe ich einen Sprite mit insgesamt 10 images erstellt (Name: "boomerang_wurf").
    Als nächstes zeichnete ich den Boomerang welchem ich dann ein Objekt zuwies
    (Name: obj_Boomerang).

    Allgemein habe ich jetzt:

    - Ein Hauptfiguren- object
    - Einen Boomerangwurf- sprite
    - Ein Boomerang- object


    Das das Hauptfiguren- object auf einer bestimmten Taste ( "W" ) den Boomerangwurf- sprite abspielt und dabei das Boomerang- object wirft, habe ich schon erreicht.

    Das Problem ist aber, dass der Boomerang schon direkt nach drücken der W- Taste erscheint.
    Das passt aber nicht zum Boomerangwurf- sprite, denn die Figur holt erst aus und wirft dann.
    Das heißt, ich möchte, dass der Boomerang erst bei image 5 (von 10) des
    Boomerangwurf- sprites erscheint.

    Kann mir bei dem Problem jemand helfen?
    Das wichtigste BACK- UP ist das, wozu man keine Zeit mehr hatte

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Baddi ()

  • Das object der Hauptfigur hat folgende Quelltexte:


    Im Create- Event:

    GML-Quellcode

    1. var_boomerang=false;
    2. global.anzahl=0


    Im Step- Event:

    GML-Quellcode

    1. depth=-y
    2. if (var_boomerang)
    3. {
    4. if (speed==0) // wenn sich das Objekt nicht bewegt
    5. sprite_index=vorne_stand; // Subimage 0 wählen (stehender Charakter)
    6. speed=0; // Geschwindigkeit zurücksetzen
    7. image_speed=0; // Animation pausieren
    8. if keyboard_check(vk_up)
    9. {
    10. sprite_index=rennenhinten;
    11. image_speed=0.5; // Animation starten
    12. direction=90; // Richtung einstellen
    13. speed=12; // Das Objekt bewegen
    14. }
    15. //-------------------------------------------------------------
    16. if keyboard_check(vk_down)
    17. {
    18. sprite_index=rennenvorne;
    19. image_speed=0.5;
    20. direction=270;
    21. speed=12;
    22. }
    23. //-------------------------------------------------------------
    24. if(keyboard_check_pressed(ord('B')))
    25. {
    26. var_boomerang = true;
    27. }
    28. if(var_boomerang=true)
    29. {
    30. speed=0
    31. sprite_index = Boomerang_wurf;
    32. image_speed=0.7
    33. }
    Alles anzeigen



    Im Animation End- Event:

    GML-Quellcode

    1. if (sprite_index=Boomerang_wurf)
    2. {
    3. sprite_index=vorne_stand
    4. schlagen=false
    5. }



    und im Press B- Event:
    (Das hab ich im Drag&Drop- Modus gemacht)

    - if global.anzahl is smaler than 2
    - Start of a block
    - create instance of object boomerang at position (object0.x+20,object0.y+20 with speed 14 in direction 315
    - create instance of object boomerang at position (object0.x+20,object0.y+20 with speed 14 in direction 225
    - End of a block


    Damit aber noch nicht genug...

    Das Object des Boomerangs hat auch noch einen Quelltext:

    Im Create- Event:

    GML-Quellcode

    1. global.boom=0
    2. global.anzahl+=1


    Im Step- Event:

    GML-Quellcode

    1. if( distance_to_object(object0)>250)
    2. {
    3. instance_destroy()
    4. global.anzahl-=1
    5. }





    SO, das wars
    TrunX hat mir netterweise einen Quelltex geschrieben (siehe oben).
    Ich weis aber nicht, wohin damit.
    Das wichtigste BACK- UP ist das, wozu man keine Zeit mehr hatte

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Baddi ()

  • Ich weiß nicht, was ich unter haö vertehen soll, aber ich
    gehe davon aus, dass du es nicht verstanden hast.
    Hier mit comments:

    GML-Quellcode

    1. if sprite_index=spr_bumwerf //Wenn der Spieler als Sprite spr_bumwerf hat,
    2. if image_index=5 //und bei image 5 ist,
    3. instance_create(x,y,obj_bumerang) //wird das Bumerangobjekt erstellt


    Das ganze gehört ins
    - Ein Hauptfiguren- object

    und zwar im Event.

    Im (w) - Event:

    GML-Quellcode

    1. sprite_index=spr_bumwerf //Weist dem Player das bumerang-werf-sprite zu


    Im (animation end) - Event:

    GML-Quellcode

    1. if sprite_index=spr_bumwerf //Wenn das Sprite spr_bumwerf ist,
    2. {
    3. sprite_index=player_normal //Weist dem Player sein normales Sprite zu
    4. }


    ,-Megamag



    EDIT: Mist! Zu spät!

    Magical dream time!

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

  • Das funktioniert aber nicht.
    Jetzt wird noch nicht mal mehr der Boomerang- Wurf- Sprite abgespielt.

    Bezug auf Megamag´s Beitrag:
    Soll ich diesen Quelltext zu meinem hinzufügen, oder bringt es mehr, wenn ich meinen lösche und den von Megamag benutze.
    Das wichtigste BACK- UP ist das, wozu man keine Zeit mehr hatte
  • Hallo Baddi!

    Ich habe drei Fehler bei dir gefunden:
    1. In dem Eröffnungsbeitrag hast du geschrieben, dass die Figur auf der 'W'-Taste zu Boomerang_wurf wechselt, in deinem Script steht, dass sie das auf 'B' macht!
    (könnte Grund für dafür sein, warum das nicht funktioniert, weil Megamag sich auf 'W' spezialisiert hat!)

    2. In deinem Script steht:

    GML-Quellcode

    1. depth=-y
    2. if (var_boomerang)
    3. {
    4. .
    5. .
    6. .
    7. }


    Muss da nicht

    GML-Quellcode

    1. depth=-y
    2. if (var_boomerang=false) //Du hast bei 'B' if var_boomerang=true deswegen muss da false hin
    3. {
    4. .
    5. .
    6. .
    7. }


    hin?

    3. Im Animation-End-Event muss nicht schlagen=false sondern var_boomerang=false hin!



    Nun zu der Frage, wo der Quelltext hin muss:
    Du musst das so machen:

    Im Drag&Drop:

    Quellcode

    1. - if global.anzahl is smaler than 2
    2. - Start of a block
    3. - if image_index is equal to 5
    4. - Start of a block
    5. - create instance of object boomerang at position (object0.x+20,object0.y+20 with speed 14 in direction 315
    6. - create instance of object boomerang at position (object0.x+20,object0.y+20 with speed 14 in direction 225
    7. - End of a block
    8. - End of a block


    Müsste jedenfalls so funktionieren :D