Text löschen

  • GM 8

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

  • Text löschen

    Hallo
    schon wieder ne dumme Frage von mir... ;)

    Ich hab jetzt

    GML-Quellcode

    1. {
    2. if (mouse_x==x && mouse_y==y){
    3. if (keyboard_string=="Text")
    4. {//hier liegt meine Frage}}}


    Ich möchte dann das der Text wieder gelöscht wird, wenn die Bedingung erfüllt ist, aber wie lautet der Befehl??? ?(
    GML lernen geht leicht :)
    1. http://www.gm-d.de/help/ (deutsch)
    2. gm-d.de/wbb/index.php/Thread/2270/ (Einsteiger-Referenz)
    3. docs.yoyogames.com/ (Hilfe auf Englisch von GM:S)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Sk.Info.k.P. ()

  • Lösung:

    GML-Quellcode

    1. if (keyboard_string = "text") then keyboard_string = 0;

    Bedenke, dass sich keyboard_string alle Zeichen merkt, die eingegeben wurden - auch wenn das Eingabefeld noch gar nicht existiert. Am besten leerst du es jedes Mal vor UND nach dem Eingabefeld mit keyboard_string = 0;

    GML-Quellcode

    1. if ! (freedom) { instance_destroy(gamemaker); instance_create(x, y, html5); }
  • Die Lösung von bonsaihald ist gut. :thumbsup:
    Kann ich gleichzeitig noch eine Zeitverzögerung einbauen damit "Text" wenigstens kurz dasteht?
    Außerdem würde ich gerne noch den Score immer um eins hochsetzen, wenn das richtige eingegeben wurde, wie mache ich das am besten? ?(
    GML lernen geht leicht :)
    1. http://www.gm-d.de/help/ (deutsch)
    2. gm-d.de/wbb/index.php/Thread/2270/ (Einsteiger-Referenz)
    3. docs.yoyogames.com/ (Hilfe auf Englisch von GM:S)
  • Äh und wie genau soll das aussehen??? ;(

    Also ich lösche keyboard_string jetzt davor und danach ->

    GML-Quellcode

    1. {
    2. if (mouse_x ==x && mouse_y ==0){
    3. keyboard_string = 0;
    4. if (keyboard_string=="Text"){
    5. //score erhöhen
    6. keyboard_string = 0;}}}

    Aber dann wird ja alles gleich gelöscht, also hab ich mich dumm angestellt, such grad noch nach der richtigen Stelle...

    das mit

    GML-Quellcode

    1. text = keyboard_string;

    funktioniert leider nicht, denn da wird der Text auch sofort gelöscht :( äh und was genau soll es mir eigentlich bringen???

    Edit:

    GML-Quellcode

    1. {
    2. if (mouse_x ==x && mouse_y ==0){
    3. if (keyboard_string=="Text"){
    4. //score erhöhen
    5. keyboard_string = 0;}}
    6. else{
    7. keyboard_string = 0;
    8. }}


    Das reicht mir eigentlich. 8o
    GML lernen geht leicht :)
    1. http://www.gm-d.de/help/ (deutsch)
    2. gm-d.de/wbb/index.php/Thread/2270/ (Einsteiger-Referenz)
    3. docs.yoyogames.com/ (Hilfe auf Englisch von GM:S)

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von Sk.Info.k.P. ()

  • Du kannst das wie folgt machen:

    GML-Quellcode

    1. erfolreichEingetippt = false;


    GML-Quellcode

    1. if (mouse_x == x && mouse_y == y && !erfolgreichEingetippt) {
    2. if (keyboard_string == "Test") {
    3. erfolgreichEingetippt = true;
    4. alarm[0] = room_speed * 2; //2 Sekunden bei voller FPS
    5. score+=10; //10 Punkte addieren
    6. }
    7. }


    Alarm 0:

    GML-Quellcode

    1. erfolgreichEingetippt = false;
    2. keyboard_string = "";


    Also ich lösche keyboard_string jetzt davor und danach ->
    Das macht kein Sinn, Code wird immer von oben nach unten ausgeführt, wenn du vorher keyboard_string zurückgesetzt wie willst du dann in der nächsten Zeile prüfen ob das "Test" ist? Das geht nicht.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • henrik1235 schrieb:

    if (mouse_x == x && mouse_y == y && !erfolgreichEingetippt) {
    if (keyboard_string == "Test") {
    erfolgreichEingetippt = true;
    alarm[0] = room_speed * 2; //2 Sekunden bei voller FPS
    score+=10; //10 Punkte addieren
    }
    }
    Kannst du den Teil mit dem room_speed kurz erklären? Ich weiß das man den room_speed in seinem Raum verändern kann, aber egal ob ich wie oben mit 2 multplizier oder mit 20 oder mit 0.2 ich sehe keinen Unterschied.
    GML lernen geht leicht :)
    1. http://www.gm-d.de/help/ (deutsch)
    2. gm-d.de/wbb/index.php/Thread/2270/ (Einsteiger-Referenz)
    3. docs.yoyogames.com/ (Hilfe auf Englisch von GM:S)
  • Das Spiel läuft in Zeitsprüngen, so genannten Steps, jeden Step werden alle nötigen Events aufgerufen. Alarme zählen in Steps runter und wenn sie bei 0 sind lösen sie das jeweilige Event dazu auf. Der Room Speed gibt an wie viel Steps wird pro Sekunde maximal machen können (typischerweiße 30 bzw. 60 FPS).

    Jeder Step hat also 1/room_speed Sekunden Zeit um alles auszuführen, haben wir noch Zeit übrig wird gewartet, haben wir zu lange gebraucht sinkt die FPS (das Spiel fängt an zu ruckeln). Pro room_speed Steps vergehen also etwa eine Sekunde, daher room_speed * Sekunden;
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Ok, verstanden- glaub ich ^^ .
    Gibt es auch was "Ausgeschriebenes" für die Abkürzung fps?

    Wenn ich den room_speed aber mit einer ganzen Zahl multiplizier, wird das Ergebnis doch größer und müssten dann nicht mehr steps pro Sekunde ausgeführt werden?

    Edit:
    Das Ergebnis wird schon größer, aber der Alarm wird dann sozusagen "länger runtergezählt" oder?
    GML lernen geht leicht :)
    1. http://www.gm-d.de/help/ (deutsch)
    2. gm-d.de/wbb/index.php/Thread/2270/ (Einsteiger-Referenz)
    3. docs.yoyogames.com/ (Hilfe auf Englisch von GM:S)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Sk.Info.k.P. ()

  • fps= Frames per second

    Alarm[]=room_speed*3;
    Sind 3 Sekunden also desto höher der Wert umso länger zählt der Alarm runter. Und bei 0 wird er halt ausgeführt.
    Imagine taking your usual two century long nap minding your own business when suddenly some cunt wakes you up.
    You tell him to f*ck off of course but just when you finally managed to fall asleep again the same asshole comes knocking again. I'd attack that dick too.