Ergebnis 1 bis 15 von 15

Thema: Timer Problem

  1. #1

    Timer Problem

    Hallo,
    ich habe folgendes Problem, mit dem ich mich schon lange rumärgere.
    Ich habe einen Timer eingestellt, der bestimmt, wie viel Zeit ich habe um eine bestimmte Taste zu drücken. Wenn die Bedingung, das der Timer weniger als eine Sekunde hat, eintritt, müsste derselbe Fall eintreten, der auch eintritt, wenn ich in dieser Zeit eine falsche drücke (In diesem Fall funktionierts). Nur passiert, wenn der Timer abgelaufen ist einfach gar nichts (außer er wird nicht mehr angezeigt) und ich habe unendlich viel Zeit die Taste zu drücken.

  2. #2
    @ Oktorok3
    Frage wie sieht der Code aus und welchen Maker? O.o
    Wäre hilfreich...

    Edit:
    Ansonsten habe ich mal einen kleinen Code zusammengestellt für den rm2k/3K



    Variabel 23 = Tastenkombination
    Diese Variabel speichert die Tastenabfrage die man abfragen möchte.
    Bsp:

    Variabel 23 ist 1
    Runter,Runter,links,Links

    Variabel 23 ist 3
    Runter,Rechts
    u.s.w.

    Variabel 5 ist für Tastenabfrage des Makers verantwortlich.
    Erlärt sich hoffentlich von selbst.

    Danach frage ich die Richtigen Tasten ab.
    D.h. Richtige Taste 1: Taste Runter + 1
    Richtige Taste 2: Taste Links + 1
    grenzwerte nicht vergessen abzufragen!

    Danach frage ich ab welche Tasten richtig gedrückt wurden:

    Abfrage:
    Taste 1=2
    Taste 2=2
    Dann Soundeffekt oder je nachdem was du dort einbauen möchtest!

    bei eine Falsche Tastendruck dann Soundeffekt!

    Nicht vergessen wenn die Timer abgelaufen ist also Sprich
    0 Sek. O Min. dann Game Over oder was auch immer.

    So ich hoffe das war hilfreich für dich aber ich nehme keine Garantie für den Code
    da ich ein wenig unter Zeitdruck gecodet hab!Trotzdem hat er bei den Test funktioniert.^^

    Und ja ich bin bereit auch hierfür Kritik im Empfang zu nehmen.

    Lg
    Multi-Master1988

    Geändert von Multi-Master1988 (06.11.2010 um 21:05 Uhr)

  3. #3
    Kann es sein, dass du bei deiner Tastenabfrage die Option "wait until key pressed" aktiviert hast? Da ist es nämlich egal, ob er Timer abgelaufen ist, oder nicht. Wenn der im Code an der Stelle angekommen ist, wartet er solange, bis eine Eingabe geschieht und wenn das richtige eingegeben wird, akzeptiert der das trotzdem, auch nach 10 minütigem Warten. Das ganze umzusetzen ist ein wenig komplizierter, damit durfte ich mich nämlich auch mal rumschlagen...

  4. #4
    Sieht gut aus.
    Und gut erklärt ist es auch.
    Kann ich gut gebrauchen.

  5. #5
    @ Mongkey

    Gut das freut mich. ;-)
    Aber weiter erläutern werde ich es nicht.Zumal selber lernen einen besseren effekt hat.

    Lg
    Multi-Master1988

  6. #6
    Es ist der 2k3
    @MultiMaster:
    der Code befolgt scheinbar das warten auf eine Tastenkombination, die eingegeben werden soll, wie ich es verstanden habe und es werden 4 Variablen benutzt. Ich glaube nicht, das dieser Code mir hilft, aber es ist nett, das du dir die Mühe gemacht hast ihn zu erstellen.
    @R.F.
    Ich hatte tatsächlich wait until key pressed eingestellt und es klingt durchaus plausibel, was du geschrieben hast R.F.
    Das ganze hab ich jetzt ohne das warten auf die Taste eingestellt und jetzt läuft der Timer nicht mal mehr ab, sondern man hat überhaupt keine chance mehr eine Taste zu drücken, weil es sofort zur failure bedingung kommt (also als wäre der timer abgelaufen, oder man hätte eine falsche taste gedrückt).Bedeutet, weil nicht mehr auf die taste gewartet wird, läuft das Script sofort weiter und geht zur bedingung, keine Taste gedückt zu haben.
    Also ich habe es folgendermaßen eingestellt:

    http://www.pictureupload.de/original...944_tasten.png

    Geändert von Oktorok3 (07.11.2010 um 13:16 Uhr)

  7. #7
    Deshalb hab ich auch gesagt, dass es ein wenig komplizierter wird. Eben weil er das Skript weiterlaufen lässt.

    Ich hatte das damals so gelöst, dass er in eine Schleife geht, die entweder abbricht, wenn die korrekte Taste gedrückt wird, oder wenn der Timer ausläuft. Hat bei mir damals auch funktioniert, habs aber grad nicht zur Verfügung... Hatte ich in meinem Ishitori-Skript verbaut...

  8. #8
    Ich habe es jetzt anders gemacht und den Timer extern über ein zweites allgemeines Ereignis eingebaut.
    (Diesmal wird der Timer in einer Variable gespeichert)
    Bloß, das jetzt der Timer nicht mehr kommt und der Rest eben schon funktioniert.

  9. #9
    Zitat Zitat von Multi-Master1988 Beitrag anzeigen
    Aber weiter erläutern werde ich es nicht.Zumal selber lernen einen besseren effekt hat.
    Es erklärt zumindest die Grundlagen der Tastenabfrage, nichts da mit Timer xD
    Zitat Zitat von Oktorok3 Beitrag anzeigen
    Ich habe es jetzt anders gemacht und den Timer extern über ein zweites allgemeines Ereignis eingebaut.
    (Diesmal wird der Timer in einer Variable gespeichert)
    Bloß, das jetzt der Timer nicht mehr kommt und der Rest eben schon funktioniert.
    Das entspricht zumindest in etwa dem, was ich mit der Schleife gesagt hatte. Entweder hast du beide Events auf Autostart gestellt, weshalb das eine das andere blockiert, oder sie arbeiten nicht wirklich synchron. Ich würde sowas, wie gesagt, lieber in einem Event mit Schleife, als in zwei unterschiedlichen Events machen. Bei zwei unterschiedlichen Events ist die Chance relativ hoch, dass nur Mist bei raus kommt, außer man kennt sich relativ gut mit den Interna aus.

    Wuhu 2000!

  10. #10
    Ich habe das Hauptevent mit autostart und das timer event mit parallel process und mit tab aktivierung eingestellt. Den Tab hab ich im Hauptevent an gemacht und nachdem der Timer abgelaufen sein sollte, schaltet sich das Timer event selbst wieder aus.
    Wie es aussieht kann mir aber leider niemand einen raffinierten Lösungsvorschlag für dieses Problem nennen .

  11. #11
    Zitat Zitat von Oktorok3 Beitrag anzeigen
    Den Tab hab ich im Hauptevent an gemacht und nachdem der Timer abgelaufen sein sollte, schaltet sich das Timer event selbst wieder aus.
    Wenn es in einem ParallelProzess stattfindet, aktiviert der Timer sich doch jedes Mal wieder von neuem.

    Mal ein Pseudocode:
    Code (Pseudocode):
     
    >Timer setzen
     
    >Schleife (Beginn)
      >Passwortabfrage (ohne warten)
     
      >Timer abgelaufen?
        >Tab für abgelaufenen Timer aktivieren
        >Schleife beenden
     
      >Tasteneingabe korrekt?
        >Tab für richtige Eingabe aktivieren
        >Timer beenden
        >Schleife beenden
      >ansonsten
        >Tab für abgelaufenen Timer aktivieren
        >Timer beenden
        >Schleife beenden
     
    >Schleife (Ende)
     
    >Behandeln der einzelnen Tabs (bei richtiger, bzw. falscher Eingabe)
     

    Geändert von R.F. (09.11.2010 um 20:51 Uhr)

  12. #12
    Naja, das ist ja im Grunde dasselbe, das ich anfangs auch gemacht habe, ohne den Timer in einem 2. Common Event einzustellen.
    Und ja, natürlich aktiviert sich der Timer immer wieder von Neuem, aber erst, nachdem der Tab angeht, der das Event mit dem Parallel Prozess aktiviert.

  13. #13
    Zitat Zitat von Oktorok3 Beitrag anzeigen
    Ich habe das Hauptevent mit autostart und das timer event mit parallel process und mit tab aktivierung eingestellt. Den Tab hab ich im Hauptevent an gemacht und nachdem der Timer abgelaufen sein sollte, schaltet sich das Timer event selbst wieder aus.
    Wie es aussieht kann mir aber leider niemand einen raffinierten Lösungsvorschlag für dieses Problem nennen .
    Ich würde es andersrum machen und den Timer in den Autostart packen und die Tastenabfrage in den pp.

    Der Parallele Prozess würde dann so aussehen:
    Code:
    Taste = -1
    Tastenabfrage (in Taste gespeichert), wait until key hit
    Parallelen Prozess mit Switch beenden
    der Autostart so:
    Code:
    Timer starten
    Label 1
    Wenn Taste = -1
       -> Wenn Timer abgelaufen
           -> Fail
       -> else
           -> wait 0.0
           -> goto label 1
    else
       -> Wenn Taste richtig
           -> Gewonnen
       -> else
           -> Fail

  14. #14
    Warum würdest du es so rum machen? Wieso sollte es dann klappen?
    Warum wird der Parallele Prozess nach einmal aus und nicht wieder angeschaltet?
    Ich verstehe die Logik bei deinem Code nicht.

  15. #15
    Ich habe ein Demoprojekt zusammengeklickt in dem der oben beschriebene Code so eingesetzt wird wie ich es meinte. Ich hoffe das hilft weiter... Der Code befindet sich dabei in dem Event vom Rosenbusch und in einem parallelen Prozess.
    http://npshare.de/files/0fb10eed/demo.rar

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •