Ereignisse & Aktionen --> Diverse Fragen

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

  • Ereignisse & Aktionen --> Diverse Fragen

    Hallo alle zusammen!

    Ich habe wirklich in der Hilfe nachgelesen, konnte auf folgende Fragen dennoch keine Antwort finden. Fragen:

    1. Wenn ich eine Aktion erstellen möchte, die immer etwas kontrolliert (z.B. erfüllung einer variabel), aber bei erfüllter Bedingung die nachfolgenden Aktionen nur einmal ausführt, und dann wieder in "Stellung" geht und wieder kontrolliert, bis das selbe erneut passiert. Wenn ich ein Step Event mache, funktioniert das nicht. Denn da werden die nachfolgenden Aktionen die ganze Zeit ausgeführt, wenn die Bedingung erfüllt wurde. Create Event geht ja auch nicht, denn da wird es nur einmal kreiert. Ich habe schon User Defined ausprobiert, doch da klappt irgendwie gar nichts -- was mich zur zweiten Frage bringt.

    2. Für was ist eigentlich User Defined? Egal was für Aktionen ich da reintue, sie werden nie ausgeführt. In der Hilfe steht über dieses Event nichts. Kann mir jemand sagen, was genau das ist?

    Ich hoffe, ihr könnt mir helfen. Was ich komfortabler (und zugleich sehr nett ;)) finden würde: Wenn's geht bitte das Ganze in Drag&Drop erklärt.

    Ich danke euch jetzt schon auf hilfreiche Antworten!!! :)

    EDIT
    *****

    Hab' noch was vergessen!!!

    3. Wie kann ich machen, dass man das Intro (Video) nicht per Mausklick überspringen kann? Das passt weder in Create noch sonst wo hin (glaub' ich zumindest). Help!

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

  • 1. Wenn ich eine Aktion erstellen möchte, die immer etwas kontrolliert (z.B. erfüllung einer variabel), aber bei erfüllter Bedingung die nachfolgenden Aktionen nur einmal ausführt, und dann wieder in "Stellung" geht und wieder kontrolliert, bis das selbe erneut passiert. Wenn ich ein Step Event mache, funktioniert das nicht. Denn da werden die nachfolgenden Aktionen die ganze Zeit ausgeführt, wenn die Bedingung erfüllt wurde. Create Event geht ja auch nicht, denn da wird es nur einmal kreiert. Ich habe schon User Defined ausprobiert, doch da klappt irgendwie gar nichts -- was mich zur zweiten Frage bringt.


    mach ein step event und code da einfach mit ner if bedingung den auszuführenden code rein : /

    guckstu hier:
    GML - Die Einsteigerreferenz
    und hier der deutsche Tut vom GM
    gm-d.de/help/

    achja apropo nett:

    : D
    xD

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

  • zu 1. 8o Kannst du das nicht etwas genauer formulieren?!?
    Ich weis echt nicht was du meinst...
    Wenn du also eine Aktion nur einmal ausführen willst nimm eine Variable...

    var = 1

    Deine D&D Abfrage
    var = 1

    Hier kummt das rein, was du nur einmal ausführen willst.
    var = 0

    zu 2. Die User Events kannst du so hier ausführen:

    GML-Quellcode

    1. event_perform(ev_other,ev_user0);

    Das braucht natürlich nicht jeder, aber es ist ab und zu hilfreich ^^
  • Danke für die Antworten!

    @copyboy
    Ich meine mit einmal ausführen eben nicht das Create Event. Denn dann wird es nur einmal ausgeführt. Du hast mich da falsch verstanden. Wie soll ich das am besten erklären...
    Also: Ich möchte z.B. machen, dass wenn der Punktestand kleiner als 9 ist, eine Meldung ausgegeben wird. Doch wenn man das in ein Step Event tut, kommt die Meldung nun bei jedem Step! Bei Create nur einmal. Kurz: Es soll nur einmal auftauchen wenn "Punktestand kleiner als 9" ist, aber dann quasi deaktiviert wird, wenn man noch tiefer sinkt, da es sonst bei -10, -11 ect. immer diese Meldung anzeigt. Es darf nicht erneut angezeigt werden, wenn man z.B. von -10 wieder auf -9 kommt. Aber wenn man jetzt wieder auf 0 oder so ist, und wieder sinkt, soll es wieder angezeigt werden.

    Ist zwar ein dummes Beispiel, aber ich hoffe, ihr versteht was ich meine. ;)

    EDIT
    *****

    Wenn diese Beschreibung für die Katz ist, sagt bescheid. Dann werde ich schnell ein Beispiel zusammen basteln und ins Netz stellen (gmk-Datei). 8)

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

  • Original von copyboy
    zu 2. Die User Events kannst du so hier ausführen:

    GML-Quellcode

    1. event_perform(ev_other,ev_user0);

    Das braucht natürlich nicht jeder, aber es ist ab und zu hilfreich ^^


    Event_perform ist aber nicht dazu gedacht, die User Events auszuführen, sondern fremde Events zu einem Zeitpunkt auszuführen, an dem sie eigentlich nicht dran sind.
    Für den Normalen Aufruf der User Events benutzt man

    GML-Quellcode

    1. event_user(numb)
  • 3. : Ich arbeite mit dem Game Maker 6.1, aber möglicherweise gehts auch im siebener...
    Denn im 6.1 werden Videos automatisch übersprungen bei Tastendruck oder Mausklick...


    Wenn's nicht geht, dann tut mir dass leid... ;(

    Magical dream time!
  • Danke für die Antwort!
    Seit gestern lerne ich GML, da sehr vieles einfacher wird und man viel mehr Möglichkeiten hat. Wie ich darauf kam? Nur mit Drag&Drop lassen sich meine Spiele, die ich verwirklichen will, nicht realisieren. Ich habe ne Cheatfunktion für mein Game hinzugefügt (ohne Hilfe aus dem Netz oder sonst wo!!!). Hier der Code:

    ------------------------------------------------------------------------
    //+30 Sekunden Zeit Cheat - Michael Stutz
    {
    var cheat;
    cheat = get_string("Gib einen Cheat ein:",0);

    if (string(cheat) == "Napis")
    {
    show_message("CHEAT: +30 Sekunden");
    zeit = zeit +30;
    }
    else
    {
    show_message("Cheat unbekannt!");
    }
    }
    ------------------------------------------------------------------------

    Was haltet ihr davon? Gut so?

    EDIT
    ******

    Noch was: Wie ändere ich eigentlich den "Style" der Game Maker Standard Fenster? Also ich meine die Fenster, die auftauchen bei Show Message oder bei Fragen. Diese Schwarzen, ihr wisst schon... ;) Danke schon im Vorraus (wenns geht GML mit Komentaren dazu). :P

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

  • Ein [ GML ] bzw [ /GML ] (ohne Leertasten) lässt das ganze noch schöner aussehen ^^
    Also das ist garnicht mal so schlecht, aber da gibt es einen Fehler: string() ist eine Funktion, die einen INTEGER in einen String umwandelt. Wenn das ganze schon ein String ist... brauchst du das ganze nicht.
    Dann ein Vorschlag: Besonders bei dir würde ich switch nehmen, also so:

    GML-Quellcode

    1. var cheat;
    2. cheat=get_string("Gib einen Cheat ein:",""); // Eine 0 passt da nicht.
    3. switch (cheat)
    4. {
    5. case "Napis":
    6. show_message("CHEAT: +30 Sekunden");
    7. zeit += 30; // Praktisch, += bedeutet was dazutun (geht auch bei Strings).
    8. break; // Nie vergessen!
    9. case "allyourbaseisbelongtoyoyogames": // Ein weiteres Beispiel :D
    10. show_message("CHEAT: N00b, du hast gerade das Spiel beendet :P");
    11. game_end();
    12. break;
    13. default: // Also wenn nichts dergleichen passiert...
    14. show_message("Cheat unbekannt!");
    15. break;
    16. }
    Alles anzeigen


    EDIT: (zu deinem EDIT)
    gm-d.de/help/hh_start.htm?407_02_messages.html
    Da ist ein ganzes Kapitel, und da steht genau das auch drin ;)

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

  • Jo. Danke vielmals - dein EDIT ist auch sehr hilfreich!!! Allerdings bevorzuge ich if / else für kleinere Codes (nur 1 - 3 Cheats z.B.). Frag mich bloss nicht warum :D! Aber ich glaube, das werde ich in Zukunft noch sehr oft brauchen. Ich entwickle mich erstmal zum Experten in "If / Else". Natürlich auch anderes Zeugs nebenbei. Doch If und else finde ich irgendwie wichtiger, auch wenn switch um einiges einfacher ist. das "Variable x += y" finde ich sehr praktisch, wusst' gar nicht, dass es sowas gibt. :)
    Wie dem auch sei! Ich meld' mich wieder, wenn's was zu besprechen gibt.
    Tschö ;)