input stopt timer,anderer Lösungsweg??????

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

globecrash

Betreff: input stopt timer,anderer Lösungsweg??????

BeitragDi, Apr 27, 2004 17:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo

Also ,ich hab ein problem ich will so ein textadventure machen mit dem prinzip eines Quizspiel wobei es sich um ein andere Art handelt.

Um was es geht, man muss immer ein begriff herausfinden und hat eine gewisse zeit. Aber jetzt hab ich gemerkt das Input ja den "timer "stopt.Weil input wie waitkey ist.
Nun frage ich mich wie ich das anders lösen könnte.
Hier mal ein Codeschnipsel:Code: [AUSKLAPPEN]

zeit = 0
Print "Was gibt a + b?"
Repeat
zeit= zeit + 1
If zeit > 5000 Then Print "ende"   

Until zeit > 5000
WaitKey

Das ist jetzt ein möchtegerncode und gehört nicht zum spiel aber das Prinzip und das Problem ist das selbe.
Kennt jemand ne Lösung???
Und mit einer anzahl"versuche" anstat ein timer wil ichs nicht machen.

mfg Fu und danke im vorraus
(\__/)
(O.o )
(> < )
This is Bunny. Copy Bunny into your signature to help him on his way to world domination
User posted image

Holzchopf

Meisterpacker

BeitragDi, Apr 27, 2004 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Dafür gibt es Eingaberoutinen:
https://www.blitzforum.de/view...ight=input

Es gibt übrigens eine Forum-Suche!
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

globecrash

BeitragDi, Apr 27, 2004 18:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo

Gibt es sonst keine andere Lösung ??
Ich hab mir schon irgendwie gedacht das es mit einer inputroutine(obwohl ich nicht weis was das genau ist) geht.
Ich frage deshalb ob es eine anderer Lösungsweg gibt, weil ich ein Anfänger bin und selber eine Routine machem Confused darum wollte ich mal mit ein par Textadventure anfangen.

mfg Fu
(\__/)
(O.o )
(> < )
This is Bunny. Copy Bunny into your signature to help him on his way to world domination
User posted image

Kabelbinder

Sieger des WM-Contest 2006

Betreff: Ohoh!

BeitragDi, Apr 27, 2004 18:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bitte dich, nicht so, alles, aber bitte nicht so! Mad ....

Ups, tschuldigung, ich glaube, ich habe mal wieder eine meiner Phasen... Wink

Egal, also, du solltest aber auf keinen fall die Zeit durch Befehle, die das Programm verlangsamen berechnen, denn wenn du dieses Spiel dann auf einem schnelleren, bzw langsameren Computer spielen willst, ist die Wartezeit viel zu kurz bzw zu lang.

Es gibt da aber eine ganz praktische Funktion, die zur Lösung deines Problems fürhren könnte, sie heist "Millisecs()".
Die Funktion zählt die Zeit, die vergangen ist, seit das Programm gestartet wurde Du kannst die Zeit also so stoppen:

Code: [AUSKLAPPEN]
count = MilliSecs()

Antwort = Input("was ergibt a + b :  ")
zeit = MilliSecs() - count

If zeit > 2000 Then
Print "Du hast zu lang gebraucht! Pech für dich."
Else
Print "Du hast rechtzeitig geantwortet"
EndIf
WaitKey
End


Danach musst du natürlich noch abfragen, ob die gegebene Antwort richtig ist.

Der Nachteil hierbei ist, dass man nicht sieht, wieviel zeil schon rum ist, das liegt, wie du das schon richtig herausgefunden hast an "input".

Aber mein Tipp wäre, einen sound abzuspielen, der genau so lang dauert, wie die Wartezeit. Dann weis der Benutzer, wo er steht.


Also, Viel Erfolg Very Happy
<Wing Avenger Download> ◊◊◊ <Macrophage Download>
 

globecrash

BeitragDi, Apr 27, 2004 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo

Sorry aber ich glaube ich hab mich nicht so klar ausgedrückt und ja dasmit millisecs ken ich auch.

Also hier mal den Timer den ich vorgesehen habe , aber mit dem hatte ich das gleiche Problem den ich wusste nicht wie in meinem Code zu integrieren.
Code: [AUSKLAPPEN]
; der Timer
ziel=MilliSecs() + 30000
Repeat
   If MilliSecs() >ziel Then Print "Game Over" Exit
Forever


Und hier mal mein Program ohne Timer mit einer frage,
Code: [AUSKLAPPEN]
;Titel
AppTitle "HaCk IT"

;Bildschirmauflösung
Graphics 640,480

;menü
SetBuffer BackBuffer()

Text 100, 100, "Hack it"
Text 130, 200, "Finde Das Kennwort"
Text 140,250 , " Drücke   enter"
Flip
WaitKey
SetBuffer FrontBuffer()
Cls


; Das Spiel
Print " Was gibt  a + b "
Repeat
   If KeyHit(1) Then End
   kennwort$ = Input$("find  it:")
   If kennwort$ = "ab" Then Print "Du hast es geschafft"  Exit
Forever

;Bestätigung für nächstes Level
WaitKey

Cls

Print "hallo das ist das 2te Level-mädchenname mit -blabla- "
WaitKey

Ich erwarte nicht das ihr mir jetzt die ganze arbeit macht, nur das ihr mir erklärt wie ich das mit dem timer hinbekomme Very Happy
mfg Fu vielen dank im vorraus
(\__/)
(O.o )
(> < )
This is Bunny. Copy Bunny into your signature to help him on his way to world domination
User posted image

Markus2

BeitragDi, Apr 27, 2004 18:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Also am einfachsten kannst du nach jeder Taste die gedrückt wird
den Buchstaben an nem String dran hängen und den zeigst du
dann einfach an .
Drückt man Entf dann den ganzen Text löschen , also ohne
jegliche Cursor bewegung wenn man sich mal vertippt hat
muß man eben alles neu eingeben .

Wenn du sowas hin bekommst dann auch mal die alternativen
Eingabe Funk. im CodeArchiv mal testen .
Von mir ist auch eine dabei die den Programm ablauf nicht
anhält und du so quasi dann deine Zeit die gerade abläuft
anzeigen kannst etc.
Einfach mal ansehen und verstehen lernen durch lesen Wink

Kabelbinder

Sieger des WM-Contest 2006

Betreff: Jetzt hab ich ne Frage

BeitragDi, Apr 27, 2004 19:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, meinst du das so, dass man in einer Bestimmten zeit möglichst viele Fragen Beantworten muss, oder dass man für jede Frage 3 sekunden zeit hat.

Außerdem kann ich nicht so ganz nachvollziehen, wofür du die Schleifen brauchst. Question

Also, du musst sonst einfach an Anfang des Programms/vor Jeder Frage Die Zeit nehmen, ganz egal, ob du das auf deine Art:
Code: [AUSKLAPPEN]
ziel=MilliSecs() + 30000


Oder auf meine:
Code: [AUSKLAPPEN]
zeit = MilliSecs() - count


machst

dann, wenn geantwortet wurde einfach überprüfen, vieviel Zeit vergangen ist und entsprechend fortfahren.

So, ich muss jetzt Die Simpsons sehen.
<Wing Avenger Download> ◊◊◊ <Macrophage Download>
 

globecrash

BeitragDi, Apr 27, 2004 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo

@ kabelbinder, nein ich will es so machen das man eine zeitlang zeit hat für zb 10 frgaen 30 sekunden(die zeiten sind einfach so und stimmen nicht) dh nicht für jede frage 10 sekunden sondern für alle fragen eine beliebige zeit..

@ markus ich schau mir das mal an , on ich das hinbekomme, denke nicht aber wie du schon sagst lesen und was dabei lernen Very Happy

mfg Fu
(\__/)
(O.o )
(> < )
This is Bunny. Copy Bunny into your signature to help him on his way to world domination
User posted image

Holzchopf

Meisterpacker

BeitragDi, Apr 27, 2004 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
[OffTopic]

Code: [AUSKLAPPEN]

; Das Spiel
Print " Was gibt  a + b "
Repeat
   If KeyHit(1) Then End
   kennwort$ = Input$("find  it:")
   If kennwort$ = "ab" Then Print "Du hast es geschafft"  Exit
Forever


ÄHEM: a+b gibt a+b, nicht ab, ab ist das Produkt von a*b.

Wollte nur mal gesagt sein Wink
[/OffTopic]
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

globecrash

BeitragDi, Apr 27, 2004 20:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo
[OT]
@ Holzchopf ja ich weiss war ein versehen aber nur das das geklärt ist das war einfach ne dummie frage nicht die ich im spiel dan vorkomen wird.
[/OT]
Das mit der eingabe Routine scheint mir doch schwieriger als geplant ,für ein simples Textadenture Confused
Aber wen ich sowas hinbekommen würde wer es auch für andere sachen sehr nützlich.

mfg Fu
(\__/)
(O.o )
(> < )
This is Bunny. Copy Bunny into your signature to help him on his way to world domination
User posted image

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group