blinken problem

  • GM 7

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

  • blinken problem

    hi,

    ich möchte das mein player für 3 sekunden anfängt zu blinken, aber ihrgendwie scheint mein code nicht zu funktionieren.
    und ich kann den fehler einfach nicht finden...

    Spoiler anzeigen

    GML-Quellcode

    1. //create event
    2. leben=3;
    3. get_hurt=0;
    4. blinken =1;

    GML-Quellcode

    1. //stepp event
    2. if (place_meeting(x+1+hspeed,y+1+hspeed,obj_gegner)) or (place_meeting(x-1+hspeed,y-1+hspeed,obj_gegner))
    3. {
    4. if get_hurt = 0
    5. {
    6. blinken=2;
    7. leben-=1;
    8. get_hurt = 1;
    9. alarm[0] = 90
    10. }
    11. }
    12. if (leben < 1)
    13. {
    14. game_restart()
    15. }
    16. if (blinken =2)
    17. {
    18. alarm[1]=15
    19. }
    Alles anzeigen

    GML-Quellcode

    1. //alarm 0
    2. get_hurt = 0;
    3. blinken = 1;

    GML-Quellcode

    1. //alarm 1
    2. if (visible =1)
    3. {
    4. visible=0;
    5. }
    6. else if (visible=0)
    7. {
    8. visible=1;
    9. }


    zur erklährung, wenn der feind den player berührt verliehrt er ein leben und ist für 3 sekunden unsterblich.... das funktioniert auch so weit.
    da ich die variable blinken bei einer kollision mit dem gegner auf 2 setze müsste die letzte if anweisung im step event einschalten. so das alarm 1 ausgeführt wird. alarm 1 soll alle 15 steps ( also jede halbe sekunde) geändert werden. alarm 0 wird in 3 sekunden aktiviert, und setzt so die variable blinken wieder auf 1. Hier soll der player dann aufhören zu blinken...
    mein problem ist das der aber garnicht erst anfängt zu blinken :S.... ich habe keine ahnung was ich da jetzt falsch gemacht habe...

    lg gruen


  • Du hast was übersehen. Wie dein code im Step-event aussieht setzt er jeden step alarm[1] auf 15!
    Dadurch läuft dieser nie aus.Versuch mal das am Ende des step-events:

    if blinken = 2 && alarm[1] <= 1
    {
    alarm[1] = 15
    }

    Dies sorgt dafür das der Alarm nur dann auf 15 gesetzt wird wenn er kleiner oder gleich 1 ist.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • deine argumentation versteh ich nicht 8| wie alarm [1] läuft nie aus???

    ich hab des trotzdem mal ausprobiert, aber es ist keine veränderung festzustellen.
    der player wird kein einzieges mal unsichtbar.... (was beim blinken ja unerlässlich ist xD)


  • Du benutzt im Step-Event:

    GML-Quellcode

    1. if (blinken =2)
    2. {
    3. alarm[1]=15
    4. }

    Der Alarm wird also auf 15 gesetz. Ein Step später (Der alarm ist jez bei 14) ist die Variable "blinken" aber immernoch=2 und der alarm 1 wird wieder auf 15 gesetzt...
  • SpeedFreak hat recht, das meinte ich.
    Warum es jetzt nicht funktioniert weiß ich irgendwie nicht.
    Naja dann versuch den sichereren weg:

    if blinken = 2 && vari = 0
    {
    vari = 1
    alarm[1]=15
    }

    Du must dann im Alarm 1 noch reinschreiben: vari = 0
    Das sollte jetzt aber gehen.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Benutzer online 1

    1 Besucher