Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

mehrfach Tasten betätigungen (zwei Tasten gleichzeitig)

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
kurm_de



Anmeldungsdatum: 11.03.2006
Beiträge: 4

BeitragVerfasst am: 20.03.2006, 10:22    Titel: mehrfach Tasten betätigungen (zwei Tasten gleichzeitig) Antworten mit Zitat

hi,

ich habe mir gerade in der "Monster-FAQ" unter "Tastatureingaben" den Beitrag "Wie kann ich Mehrfach-Tastenbetätigungen abfragen?" durchgelesen.
Und habe dann unter "Antwort 4" das 2. Prgramm ausprobiert. Es funktioniert auch soweit ganz gut, also ich kann zwei Tasten gleichzeit drücken und somit etwas über den Bildschirm hin und her bewegen.
Allerdings bleibt manchmal eine Taste hängen, also nicht an der Tastatur, die ist ok.
Es ist so: wenn ich z.b. nach rechts lenke(rechte pfeiltaste drücke) und dann schnell nach links lenke(für ein paar ms sind dann beide Tasten gedrückt) und dann alles loslasse, dass dann die rechte Pfeiltaste sich so verhält als wäre sie gedrückt.
In dem Beitrag wurde dieses Problem auch beschrieben, bisher habe ich aber keine Lösung gefunden.

Deshalb frage ich hier mal: hat jemmand eine Lösung für das Problem, oder sollte ich die Tastaturabfrage ganz anders programmieren?
Vieleicht liegt es auch an meinem Notebook, dass ist ein sehr altes mit 20MHz und ganz wenig RAM.

Viele Grüße kurm_de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 20.03.2006, 11:39    Titel: Antworten mit Zitat

ja das ist ein problem der arbeitsgeschwindigkeit. Die abgefragte Variable ändert immer ihren wert wenn sich etwas an der tastatur ändert. wenn du jetzt zwei tasten gleichzeitig loslässt kann es passieren, dass sich die variable so schnell ein zweites mal ändert, dass die erste änderung von dem programm nicht aufgezeichnet wird und die taste bleibt hängen. Das andere wann tasten hängenbleiben können ist bei den Pfeiltasten, da musst du bisschen drumrum tricksen, sprich es gibt zwei release-werte für eine taste, das hängt soweit ich weiß mit numlock zusammen. Die zweiten Werte musst du dann eben separat abfangen und verarbeiten.

ich weiß jetzt nicht in wie weit du dieses system was dahintersteckt verstanden hast deswegen baller ich dich jetzt erstmal nicht mit der lösung zu die du zweifellos dann nicht verstehen würdest, mach einfach mal ein programm in etwa wie dieses hier, das sollte dir vielleicht ein wenig helfen:
Code:
CLS
DO
locate 1,1
print "INP(&H60):......";inp(&h60);"   "
print "INP(&H60)-180:..";inp(&h60)-180;"   "
LOOP UNTIL INKEY$=CHR$(27)

_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Infection 93
gesperrt


Anmeldungsdatum: 11.03.2006
Beiträge: 377
Wohnort: Egal, dort wo ein PC ist.

BeitragVerfasst am: 10.05.2006, 13:52    Titel: Antworten mit Zitat

Also ich würde es so versuchen:
[code]
cls
MainLoop:
if INKEY$ = "a" and INKEY$ = "b" then print "A und B": END
goto MainLoop
[/code]
Ich benutze statt DO LOOP den GOTO Befehl, weil dann der PC schneller auf Tastendruck reagiert.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 10.05.2006, 14:19    Titel: Antworten mit Zitat

Also mit INKEY$ kannst du das vergessen zwinkern
INKEY$ liefert nur einen Wert ab, nicht zwei. MisterD's Methode ist sicherlich die funktionierendere.

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Infection 93
gesperrt


Anmeldungsdatum: 11.03.2006
Beiträge: 377
Wohnort: Egal, dort wo ein PC ist.

BeitragVerfasst am: 10.05.2006, 14:20    Titel: Antworten mit Zitat

Na werden wir gleich sehen! durchgeknallt durchgeknallt durchgeknallt
_________________
Meine Homepage:
www.infection93.org
Und das Forum von mir und King01:
www.infection93.bboard.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 10.05.2006, 14:22    Titel: Antworten mit Zitat

Na, wie soll den INKEY$ *gleichzeitig* "A" und "B" sein? zwinkern

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Infection 93
gesperrt


Anmeldungsdatum: 11.03.2006
Beiträge: 377
Wohnort: Egal, dort wo ein PC ist.

BeitragVerfasst am: 10.05.2006, 14:23    Titel: Antworten mit Zitat

Na gut, es geht mit INKEY$ nicht...
_________________
Meine Homepage:
www.infection93.org
Und das Forum von mir und King01:
www.infection93.bboard.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 10.05.2006, 14:37    Titel: Antworten mit Zitat

-edit-
zu langsam, alles schon gesagt worden... traurig
_________________
Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Infection 93
gesperrt


Anmeldungsdatum: 11.03.2006
Beiträge: 377
Wohnort: Egal, dort wo ein PC ist.

BeitragVerfasst am: 17.05.2006, 15:54    Titel: Antworten mit Zitat

@MiserD
Die adressen &H60, &H61 und &H62 sind adressen, mit denen man auf die driver A B und C zugreifen kann.
Steht alles im Buch:
'Programmierung von personalen computern der typen IBM PC, XT und AT'

Richtig geiles buch über hardware!
_________________
Meine Homepage:
www.infection93.org
Und das Forum von mir und King01:
www.infection93.bboard.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 17.05.2006, 16:09    Titel: Antworten mit Zitat

wer wollte das wissen? oO Treiber A B und C sagt sowieso nix aus, vielleicht könntest du dich mit dem posten von so nem käse n bisschen zurückhalten?..
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Spezielle Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz