input stopt timer,anderer Lösungsweg??????
Übersicht BlitzBasic Allgemein
globecrashBetreff: input stopt timer,anderer Lösungsweg?????? |
Di, Apr 27, 2004 17:51 Antworten mit Zitat |
|
---|---|---|
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 |
HolzchopfMeisterpacker |
Di, Apr 27, 2004 17:55 Antworten mit Zitat |
|
---|---|---|
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 BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
globecrash |
Di, Apr 27, 2004 18:02 Antworten mit Zitat |
|
---|---|---|
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 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 |
KabelbinderSieger des WM-Contest 2006Betreff: Ohoh! |
Di, Apr 27, 2004 18:15 Antworten mit Zitat |
|
---|---|---|
Ich bitte dich, nicht so, alles, aber bitte nicht so! ....
Ups, tschuldigung, ich glaube, ich habe mal wieder eine meiner Phasen... 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 |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
globecrash |
Di, Apr 27, 2004 18:43 Antworten mit Zitat |
|
---|---|---|
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 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 |
Di, Apr 27, 2004 18:48 Antworten mit Zitat |
|
---|---|---|
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 |
||
KabelbinderSieger des WM-Contest 2006Betreff: Jetzt hab ich ne Frage |
Di, Apr 27, 2004 19:00 Antworten mit Zitat |
|
---|---|---|
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. 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 |
Di, Apr 27, 2004 19:26 Antworten mit Zitat |
|
---|---|---|
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 mfg Fu |
||
(\__/)
(O.o ) (> < ) This is Bunny. Copy Bunny into your signature to help him on his way to world domination User posted image |
HolzchopfMeisterpacker |
Di, Apr 27, 2004 19:37 Antworten mit Zitat |
|
---|---|---|
[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 [/OffTopic] |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
globecrash |
Di, Apr 27, 2004 20:10 Antworten mit Zitat |
|
---|---|---|
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 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 |
Übersicht BlitzBasic Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group