Keydown()-Prob
Übersicht

atapter2Betreff: Keydown()-Prob |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ich will in einer Schleife bei einem Pfeiltastendruck nach unten jeweils einen Text darstellen, der in einer Function gespeichert ist. Ich habe es so probiert: BlitzBasic: [AUSKLAPPEN]
Das funzt aber nicht, weil immer gleich der zweite Text dargestellt wird. Wie kann man das ändern? Thx schonmal, atapter2 |
||
MegaTefyt |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also, ich seh den Sinn nicht so ganz (bzw. sieht mir das arg umständlich aus) aber mit KeyHit anstatt KeyDown müsste das funktionieren (dass mit jedem Tastendruck der nächste Text dargestellt wird).
Aber ich weise nochmal darauf hin, dass das extrem umständlich und unsauber ist (in dieser Form). ^^ |
||
![]() |
Blitz3D |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst die Variable Status als Global deklarieren:BlitzBasic: [AUSKLAPPEN] Global Status |
||
User posted image
Xware Entertainment und Forum User posted image |
![]() |
tobiasm767 |
![]() Antworten mit Zitat ![]() |
---|---|---|
du must nach dem ersten EndIf
ein FlushKeys() machen |
||
MegaTefyt |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Blitz3D hat Folgendes geschrieben: Du musst die Variable Status als Global deklarieren:BlitzBasic: [AUSKLAPPEN]
Global Status Ähm, kurz und knapp: nein. ![]() |
||
atapter2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ne, mit dem Global status das bringts nicht | ||
![]() |
tobiasm767 |
![]() Antworten mit Zitat ![]() |
---|---|---|
mach nach dem ERSTEN endif ein FLUSHKEYS() rein!!!!!!! | ||
atapter2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
tobiasm767 hat Folgendes geschrieben: mach nach dem ERSTEN endif ein FLUSHKEYS() rein!!!!!!!
Das klappt nicht! Ich hab ja auch mehrere dieser Abfragen. Kann es sein, dass sich Flushkeys() gegenseitig aufhebt wenn man es mehrmals einsetzt? |
||
![]() |
Blitz3D |
![]() Antworten mit Zitat ![]() |
---|---|---|
was steht in der Funktion text2() ? | ||
User posted image
Xware Entertainment und Forum User posted image |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Man! Das kann man sich ja nicht mit anschauen, gib endlich mal den Code, oder willst du, das wir noch Jahre lang raten, was du falsch machen könntest !?! | ||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@adapter2
Also du machst eine KeyDown -Abfrage in welcher die Variable 'status' auf 1 gesetzt wird. GLEICH DANACH fragst du wenn status gleich 1 und KeyDown, dann mache status = 2!!! Im nächstem Durchlauf wird wieder status auf 1 gesetzt usw. usw. Da die Routine wohl etwas schneller sein dürfte als überhaupt jemand die Taste betätigen kann, wird natürlich wirrwar für den Anwender sichtbar. Versuchs mal mit KeyHit, oder machst eine '''KeyUp''' -Funktion, oder probiere mal folgenden Code, vielleicht hilft ja dieser. Ich kann dir bei deinem Beispiel nicht ganz folgen, was passieren soll. Code: [AUSKLAPPEN] While Not KeyHit(1) If KeyHit(208) Then Text(status) status=1-status End If Wend End Function Text(status) If status=0 Then Print "Dies ist der erste Text" If status=1 Then Print "Und das hier ist der zweite Text" End Function |
||
atapter2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also, am Anfang wird ein Dim(150) definiert.
In den Funktionen Text1(), Text2() etc. wird jeweils in 25er-Schritten das Dim-Feld ausgelesen und dann ausgegeben. Die Ausgabe erfolgt auch in 25er-Schritten, und wenn der Benutzer auf die Pfeiltaste nach unten drückt soll der nächste 25er-Text kommen. |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aja, OK. Hier mal ein neues Beispiel:
Code: [AUSKLAPPEN] Graphics 800,600,32,2
Dim menge$(149) menge(0)="Erster" menge(1)="Text" menge(2)="und so weiter, bis 25 Zeilen" menge(25)="Zweiter" menge(26)="Text" menge(27)="und so weiter, und so weiter..." While Not KeyHit(1) If KeyHit(208) Then texte(status) status=status+1 If status>=6 Then status=0 End If Wend End Function texte(start) For weiter=start*25 To (start*25)+24 Print Str(weiter)+" - "+menge(weiter) Next End Function |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ähm, adapter2... Wie hast du es geschafft in weniger als einer Minute mein Beitrag zu lesen, Code ausprobieren, für nicht richtig zu deklarieren und dann die Mehrzeiler zu schreiben??? Naja, bin wohl zu langsam für diese Welt.
P.S. mit einer kleinen Modifikation, kannst du den Text mit dem eben genannten Beispiel auch scrollen lassen... |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group