Gegner wechselt seinen Sprite beim Schießen nicht.

  • GM 8

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

  • Gegner wechselt seinen Sprite beim Schießen nicht.

    Hallo, ich, der Spammer verzweifel gerade mal wieder. :D
    Es geht um einen Gegner, der schießen soll und dabei seinen Sprite in eine kleine Wurfanimation und danach wieder zurück ändern soll.

    Das Problem war anfangs, dass er zwar den Sprite geändert, sich danach jedoch nicht wieder zurückverändert hat.
    Nun habe ich den Code ein wenig verändert und jetzt verändert sich der Sprite gar nicht mehr.

    Unten findet ihr den verwendeten Code, welcher im Step-Event ist:

    GML-Quellcode

    1. if distance_to_object(obj_Wictor) < 200
    2. {
    3. if wait <= 0
    4. {
    5. instance_create(obj_SHADOWSTAGE_KNIGHT.x, obj_SHADOWSTAGE_KNIGHT.y, obj_throwingSword)
    6. wait = 100
    7. }
    8. }
    9. if wait <= 0
    10. {
    11. sprite_index = SHADOWSTAGE_Knight_Throw
    12. }
    13. if wait = 100
    14. {
    15. sprite_index = SHADOWSTAGE_Knight
    16. }
    17. wait -= 1
    Alles anzeigen


    Ich hoffe ihr könnt mir helfen.
    Liebe Grüße,
    Max/ChinoDX

    ROBOT REVOLUTION - Jetzt in Entwicklung!
  • Hey Stone,
    erstmal danke für die Antwort.
    Leider stehe ich jetzt ein wenig auf dem Schlauch. Welchen sprite_index soll ich da genau reinschreiben? Den des normalen Sprites oder den, des werfenden Sprites?
    Und was soll ich dann genau als x -und y-Koordinate reinschreiben.
    Sorry, bin wenn es um Draw-Events geht, die mit Sprites zu tun haben, ein bisschen noobich (:D).

    Liebe Grüße,
    Max/ChinoDX

    ROBOT REVOLUTION - Jetzt in Entwicklung!
  • Hallo nochmal.
    Die Lösung ist offensichtlicher als ich dachte. Du hast die Variable falsch abgefragt.
    Statt

    GML-Quellcode

    1. if wait = 100

    muss da

    GML-Quellcode

    1. if wait == 100

    stehen. Da das Sprite aber nur ein Frame wechselt ist die Animation kaum zu sehen.
    Du solltest lieber

    GML-Quellcode

    1. if wait >= 90

    benutzen. Die Zahl musst du selber gucken wie es am besten aussieht.
    Gruß
    Stone
  • Hello again Stone,

    irgendwie funkt das ganze noch nicht so richtig, vielleicht habe ich aber auch einfach was falsches eingetippt. Denn jetzt bleibt er in seinem jetzigen, also dem STandartsprite einfach verharrend und die "Animation" kommt gar nicht mehr vor.

    Hier nochmal der Code:

    GML-Quellcode

    1. if distance_to_object(obj_Wictor) < 200
    2. {
    3. if wait <= 0
    4. {
    5. instance_create(obj_SHADOWSTAGE_KNIGHT.x, obj_SHADOWSTAGE_KNIGHT.y, obj_throwingSword)
    6. wait = 100
    7. }
    8. }
    9. if wait <= 0
    10. {
    11. sprite_index = SHADOWSTAGE_Knight_Throw
    12. }
    13. if wait >= 90
    14. {
    15. sprite_index = SHADOWSTAGE_Knight
    16. }
    17. wait -= 1
    Alles anzeigen


    Liebe Grüße,
    Max/ChinoDX

    ROBOT REVOLUTION - Jetzt in Entwicklung!
  • Okay, ich schreib mal den Code so wie ich es machen würde:

    GML-Quellcode

    1. if distance_to_object(obj_wictor)
    2. and wait < 0
    3. {
    4. instance_create(was du da eingeben hast)
    5. wait = 100
    6. }
    7. if wait < 0
    8. sprite_index = werf Sprite
    9. else
    10. sprite_index = normales Sprite
    11. wait -=
    Alles anzeigen

    Müsste gehen.
    Gruß
    Stone
  • Du musst noch nicht aufegeben. Ich habe in dem Code was Falsch gemacht. Ich war nicht wirklich ausgeschlafen.
    Mit diesem Code müsste es wirklich gehen.

    GML-Quellcode

    1. if distance_to_object(obj_wictor)
    2. and wait < 0
    3. {
    4. idmerk = instance_create(x,y,obj_throwingSword) //Erstellt das Object und merkt sich die ID
    5. idmerk.direction = point_direction(x,y,obj_wictor.x,obj_wictor.y) //Bestimmt die richtung (in dem fall object_wictor)
    6. idmerk.speed = 10 //Bestimmt die Geschwindigkeit (in dem fall 10)
    7. wait = 100
    8. }
    9. if wait >= 90
    10. sprite_index = SHADOWSTAGE_Knight_Throw
    11. else
    12. sprite_index = SHADOWSTAGE_Knight
    13. wait -= 1
    Alles anzeigen

    Wenn das nicht funktioniert sag bescheid und ich maches nochmal etwas umständlicher.
    Gruß
    Stone