Zwischending keyhit und keydown
Übersicht

![]() |
SereyanneBetreff: Zwischending keyhit und keydown |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bau einen Timer zu Keydown ein, jede halbe Sekunde wird weiter gezaehlt, wenn die Taste gedrückt ist! | ||
Play Satyr! |
![]() |
ChaosCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] while not keydown(1)
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.
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 |
||
Projekte: Geolaria | aNemy
Webseite: chaosspace.de |
![]() |
Nibor |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
--------------------------------------
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
uuih!! ![]() danke für die zahlreichen Antworten! ![]() da wird doch bestimmt was gescheitet für mich dabei sein! (lohnt sich immer wieder, hier zu fragen!) |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group