Zwischending keyhit und keydown

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Sereyanne

Betreff: Zwischending keyhit und keydown

BeitragFr, Mai 09, 2008 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
hab mal wieder ne blöde Frage.
Ich suche eine Möglichkeit, um eine Anzahl zu kaufender Items einzustellen.
Mit keydown rassel ich von 1-100 durch, so schnell kann ich kaum gucken.
Mit keyhit gehts halt immer nur in 1er Schritten.
Wahrscheinlich muss ich mit createtimer arbeiten, ich weiß nur nicht wie.
Es sollte so funktionieren: Ich drücke einmal die Taste > Anzahl erhöht sich um 1.
Ich halte die Taste gedrückt > Anzahl rasselt durch bis ich loslasse (aber nicht zu schnell).
Geht sowas?
Danke im Voraus!

DerHase

BeitragFr, Mai 09, 2008 12:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Bau einen Timer zu Keydown ein, jede halbe Sekunde wird weiter gezaehlt, wenn die Taste gedrückt ist!
Play Satyr!

ChaosCoder

BeitragFr, Mai 09, 2008 13:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
while not keydown(1)

if keydown(57) and Millisecs()>key_space_timer;Leertaste gedrückt und genug Zeit vergangen?
     key_space_timer=millisecs()+500;Nächste Minimum Zeit setzen (500=halbe Sekunde)
     x=x+1;oder andere dinge die jede halbe sekunde ausgeführt werden sollen, wenn die leertaste gedrückt wird
endif

text 10,10,"Du hast schon "+x+" halbe Sekunden die  gedrückt."
flip
cls
wend
Ich hab grad keine Blitz3D Version zur Hand mit der ich das Testen kann und programmiert hab ich in dieser Sprache schon seit Jahren nicht mehr, also sorry wenns nich gleich funktioniert, aber das Grundprinzip sollte klar werden.
Projekte: Geolaria | aNemy
Webseite: chaosspace.de

Nibor

BeitragFr, Mai 09, 2008 13:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Du solltest mit Millisecs() die Zeit bestimmen, die
Zeit abfragen, etwa so:


if secs+500<Millisecs() and KeyDown(taste) then
secs=Millisecs()
anzahl=anzahl+1
endif

Edit:
zu spät
http://www.blitzforum.de/showcase/203/

BigMaexle

BeitragFr, Mai 09, 2008 13:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Function Taste_Zeit (Scancode,Intervall)

If KeyDown (Scancode) Then

   If Aktuell_Zeit - Letzter_Druck_Zeit > Intervall Then
   
      Letzter_Druck_Zeit = MilliSecs ()
      
      Return 1
      
   Else
   
      Return 0
      
   EndIf
   
EndIf

End Function


Vielleicht die Muster-Lösung, aber es Funktioniert. Aber nur wenn Aktuell_Zeit und Letzter_Druck_Zeit als Global definiert sind. Beim 1. isses klar, beim 2. versteh ich es nicht so genau, aber so geht es dann ohne Probleme.

EDIT: Es nervt, wenn schon Codes gepostet wurden´und man hat es nicht gemerkt, weil man nicht akutalisiert hat Razz
--------------------------------------
Ich bin unfreiwillig ein Mitglied dieser kapitalistischen Gesellschaft, wo jeder Geldgeile Unternehmer an mein Geld will und ich selbst bei meinen Entscheidungen so gut wie willenlos bin...... und ich bin glücklich drüber

Sereyanne

BeitragFr, Mai 09, 2008 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
uuih!! Shocked
danke für die zahlreichen Antworten! Very Happy
da wird doch bestimmt was gescheitet für mich dabei sein!
(lohnt sich immer wieder, hier zu fragen!)

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group