Alarm problem

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

  • hy


    also ich habe einen gegner erstellt der im create event einfach nur image speed auf 0.3 setzt und einen alarm erstellt also alarm[0]=room_speed*3;

    dann im alarm[0] event wollte ich den gegner laufen lassen eine bestimmte weite mit dem hier

    GML-Quellcode

    1. ​px = 1000;
    2. py = y;
    3. if point_distance(x,y,px,py)>5
    4. {
    5. move_towards_point(px,py,5);
    6. }
    7. else
    8. {
    9. speed = 0;
    10. }
    Alles anzeigen


    aber er führt es nicht aus........lösche ich den alarm und setze den code ins step event funktioniert es einwandfrei.das bringt mich auf die idee es mal im step event mit nen alarm zu testen....aber eigentlich sollte es ja so auch gehn....wäre für antworten dankbar
  • ich hoff du hast deinen alarm auch im create event erstellt, da im step event dein alarm sonst nicht aktiviert wird... hast auch mal probiert mit ner kleineren framezahl? wie z.B alarm[0] =1; gehts dann auch nicht ?
    Wir stehen zusammen und wir fallen zusammen
  • Eddy meinte = 1 zum starten. -1 weiß nicht ob der da starten würde.
    Ein Alarm läuft übrigens nicht wenn es dazu kein Event gibt
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Japp, ein Alarm wird nur 1 Step ausgeführt.

    Du musst deinen jetzigen Alarm-Code also ins Step Event setzen, und davor eine If-Abfrage ob eine bestimmte Variable true ist.
    Diese Variable lässt du im Alarm-Code auf den true setzen.
    Dieser Beitrag wurde bereits 1909 mal editiert, zuletzt von »Sharivari« (Morgen, 19:89)
  • @Husi012

    aber du hast mir doch erklärt wenn man einen alarm im step event erstellt braucht man eine if alarm[0]=-1 abfrage weil er ansonsten jeden step den alarm neu startet..und mit der if abfrage schaut er ob er schon mal runtergezählt wurde.....


    aber wenn ich den alarm ja im create event erstellt habe sollte ja ganz normal dann das alarm event ausgeführt werden ...oder
  • Du brauchst ein Alarm Event, weil Yoyogames es so eingebaut hat, dass der Alarm sonst nicht herunter zählt.
    @Sharivari
    Du brauchst keine extra Variable. Wenn der Alarm abgelaufen ist, ist der Wert wie @acidrain833 sagte auf -1.
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • @Husi012

    ja klar also ich habe eh noch ein alarm[0] event erstellt und in diesem event hab ich das mit point distanz und move towards point....

    also nochmal....zuerst hab ichs auf diese weiße versucht....im create event einen alarm erstellt mit room speed *5;
    dann im alarm event den code zum bewegen geschrieben....

    da es aber nicht ginghab ich das create event gelöscht und hab ich ihn dann im step event erstellt und mit der if abfrage erstellt....und das alarm event trotzdem gelassen.ging aber nicht.
  • @Husi012
    Ja er will aber "alarm[0]=room_speed*3;"
    Und dann wird der obige code nicht step by step ausgeführt, sondern nur einmal weil es im create event ist.
    Wenn du jetzt den alarm auf -1 setzt, würde der alarm wie ein step event fungieren, was schwachsinn währe da man ja ein step event schon hat. :D

    Ich würde es wie @Sharivari machen.

    create event

    GML-Quellcode

    1. alarm[0]=room_speed*3;
    2. bewegen = false;

    alarm[0] event

    GML-Quellcode

    1. bewegen = true;

    step event

    GML-Quellcode

    1. px = 1000;
    2. py = y;
    3. if bewegen = true
    4. {
    5. if point_distance(x,y,px,py)>5
    6. {
    7. move_towards_point(px,py,5);
    8. }
    9. else
    10. {
    11. speed = 0;
    12. }
    13. }
    Alles anzeigen

    Das würde dann heißen das die Variabel glech zum anfang wenn das gegner Objekt erstellt wird auf true gesetzt wird und unverändert bleibt. Das kanst du dann nach belieben ändern indem du die Variabel einfach wieder auf false setzt. ^^

    Also ich denke so oder so ähnlich sollte der code aussehen. :P
    Für jene, die ständig das Scheitern fürchten, sind Erfolge auf ewig unerreichbar.
  • danke an alle ich habs jetzt so mit der variable gemacht und statt move towards point einfach nur mit point distance und hspeed gearbeitet es funktioniert auch

    also er steht zuerst ein paar sekunden dann wird der alarm ausgelöst und er bewegt sich eine gewisse weite und bleibt dann wieder stehn....jetzt wollte ich aber einen neuen alarm im step event
    erstellen damit er sich nach einer gewissen zeit umdreht und wieder zurück geht...

    also wie erstelle ich einen alarm im step event???