zeit aufzeichnen displaymessage etc

  • zeit aufzeichnen displaymessage etc

    Hi ich hab da ne frage,

    ich möchte das bei einer kollision mit dem gegner objekt eine display message kommt, die die zeit enthält in der der player jeklicher kollision ausweichen konnte.
    dann soll er auf ok klicken, und das lvl beginnt von neu.

    meine frage jetzt

    wie kann ich den faktor zeit in eine variablen stecken?(hab noch nie mit zeit gearbeitet)

    und wie bekomme ich diese display message hin mit den gewünschten funktionen?

    ach ja und, alle 5 sekunden sollen gegnerische objekte schneller werden, wie kann ich das verwirklichen?

    danke schonmal für eure hilfe

    gruß gruen


  • Also:
    du initialisierst eine variable welche jede sekunde um 1 erhöht wird. Oder wir erstellen eine variable die im sekundentakt steigt.
    Dazu musst du erstmal wissen das das steigen einer vairable vom room step abhängig ist.
    Um das ganze jetzt zu lösen können wir diese variante nehmen:

    Du erstellst ein alarmevent in welchem deine variable um 1 erhöht wird //variable+=1
    und der alarm neu gesetzt wird. wir setzen den alarm auf auf deinen room speed//alarm[0]=room_speed
    damit wird deine variable jede sekunde um 1 erhöht. wie du am ende übverprüfst wirst du auch so schaffen.

    Zum erstellen des display message machst du folgendes.

    GML-Quellcode

    1. show_message(variable)/*anstelle von variable muss jetzt dein variablenname hin er zeigt also eine message mit dem inhalt deiner variable. wenn er noch mehr anzeigen soll zum beispiel du hast xx zeit zum verschwinden o.ä. nimmst du:*/
    2. show_message("text" + variable)//das ganze kann beliebig oft gemacht werden...wenn die variable aber ein real ist musst du string(variable) schreiben


    nun stellst du einen alarm auf auf 5 sekunen//alarm[2]=room_speed*5
    im entsprechenden alarm event musst du nun eine variable(zb global.enemi_speed) erhöht werden//global.enemi_speed+=1
    im step event der gegner musst du nun schreiben //speed=global.enemi_speed
    ich hoffe ich es einigermaßen verständlich gesagt und es hilft dir weiter^^
    mfg gamer_08

    edit: damit er nach der message wieder neu startet musst du noch room_restart() schreiben damit er den raum neulädt
  • @gamer_08: Du hast einen kleinen Fehler:

    GML-Quellcode

    1. show_message(string(variable))/*anstelle von variable muss jetzt dein variablenname hin er zeigt also eine message mit dem inhalt deiner variable. wenn er noch mehr anzeigen soll zum beispiel du hast xx zeit zum verschwinden o.ä. nimmst du:*/
    2. show_message("text" + string(variable))//das ganze kann beliebig oft gemacht werden...wenn die variable aber ein real ist musst du string(variable) schreiben

    MfG HEnrik1235
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • ehm das geht auch ohne das string()
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • Mit der Variable current_time sollte es leichter gehen: Einfach im Moment des Spielbeginns
    global.starttime=current_time und bei einer Kollision mit dem Gegner
    show_message("Du hast "+string(current_time-global.starttime)+" Sekunden durchgehalten");
    Je nach Bedarf kannst du dir die Zeit dann noch umrechnen lassen (die ist nämlich sonst in Millisekunden
    angegeben).
    Der Vorteil ist, dass es eine wirklich genaue Zeit ist, da eine Sekunde trotz allem nicht immer room_speed
    steps dauert und somit Alarme und co keine richtigen Zeiten angeben.
    Gruß, Spellmaker
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • millisekunden in sekunden umwandeln

    hi ich hab ein problem die zeit in sekunden umrechnen zu lassen, ich hab im create menue geschrieben...

    GML-Quellcode

    1. starttime=current_time
    2. global.starttime1 = starttime/=1000;

    und im kollisionsmenue(weil dann soll des ausgelöst werden)

    GML-Quellcode

    1. show_message("Du hast "+string(current_time-global.starttime1)+" Sekunden durchgehalten");


    aber ich schaff es nicht das der den wert in sekunden umrechnet o.O... is bestimmt n ganz doofer fehler, aber ich komm net drauf, kann mir wer helfen plz?

    bittedankeschön

    gruß gruen


  • Entweder du teilst gleich die Differenz von current_time und start_time durch 1000, um den Wert in Sekunden zu erhalten oder du teilst beide Komponenten (Minuend und Subtrahend) vor der Rechnung durch 1000. Die Teilung von nur einer Komponente geht natürlich nicht.

    Also am besten:

    GML-Quellcode

    1. show_message("Du hast "+string((current_time-global.starttime)/1000)+" Sekunden durchgehalten");
    2. room_restart();

    nicht:

    GML-Quellcode

    1. show_message("Du hast "+string(current_time-global.starttime/1000)+" Sekunden durchgehalten");
    2. room_restart();


    Ersetze deinen Code im create event dann durch:

    GML-Quellcode

    1. global.starttime = current_time
  • Entschuldigung, ich hatte deinen Post nicht richtig durchgelesen.
    Auf jedenfall ist

    GML-Quellcode

    1. global.starttime1 = starttime/=1000;

    nicht richtig, wenn dann muss es

    GML-Quellcode

    1. global.starttime1 = starttime/1000;

    heißen.
    Dann müsste es allerdings auch heißen

    GML-Quellcode

    1. string(current_time/1000-global.starttime1)

    einfacher ist es, einfach im create event nur

    GML-Quellcode

    1. global.starttime=current_time
    zu schreiben
    und im Kollisions Event dafür

    GML-Quellcode

    1. string((global.starttime-current_time)/1000)

    zu nehmen.
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • Benutzer online 1

    1 Besucher