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:

Tastatur eingabe für Profis [etc.]

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



Anmeldungsdatum: 03.10.2004
Beiträge: 15

BeitragVerfasst am: 03.10.2004, 16:20    Titel: Tastatur eingabe für Profis [etc.] Antworten mit Zitat

1.
Zitat:

KEY <Tastennr.>, CHR$(<Tastenstatus%>) + CHR$(ScanCode%)

Das habe ich im Kochbuch gesehen, nur weiß ich nicht wie man das Anwendet...
Das ist soviel ich weiß dafür da, wenn man 2 tasten gleichzeitig
drückt, dass dann eine aktion "kommt"-

2.Kann ich ständige bewegungsabläufe machen,
ohne die Tastatureingabe zu behindern?, und wie?
oder gibt es sowas wie sleep (variable), ohne das
es die Tastatur eingabe behindert, und auch unter einer sekunde Funktioniert?
Bei sleep gibts ja "sleep 1","sleep 2" etc. aber ich will sowas
wie "sleep .25"! Da fährt er aber nur bei knopfdruck fort, und außerdem behindert das die Tastatureingabe!
ich habe es mit "sound 0, .25" versucht, aber das Beindert auch die Tastatureingabe!

3. "IF h2 = h3 THEN h3 = h3 + 300"
h2 und h3 sind jeweils objekte
aber was meine Frage ist:
Warum klappt des net?
woran könnte alles liegen?-

kann mir jemand helfen, indem er
mir sagt, was man bei jedem einzelnen alles beachten muss?
Das wäre sehr nett!
-Danke
mfG Neonator
_________________
-NEONATOR-
http://www.info-mails.de/index.php3?V_ID=96336
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2457
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 03.10.2004, 16:33    Titel: Re: Tastatur eingabe für Profis [etc.] Antworten mit Zitat

Neonator hat Folgendes geschrieben:
2.Kann ich ständige bewegungsabläufe machen,
ohne die Tastatureingabe zu behindern?, und wie?

Siehe dazu Artikel

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/EreignisSchleife.html
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Neonator



Anmeldungsdatum: 03.10.2004
Beiträge: 15

BeitragVerfasst am: 03.10.2004, 16:47    Titel: Antworten mit Zitat

danke,
aber soweit bin ich noch net, es hilft mir nur wenn ich auch weiß was
die einzelnen Befehle heißen, deswegen wäre es mir lieber, wenn ihr mir das einzeln und sachlich erklärt!
_________________
-NEONATOR-
http://www.info-mails.de/index.php3?V_ID=96336
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5900
Wohnort: Deutschland

BeitragVerfasst am: 03.10.2004, 18:34    Titel: Oh... Antworten mit Zitat

Hallo.

Da programmiert wohl jemand am Jump'n'Run, oder? lächeln

Viele Grüße!
Sebastian, der das auch macht.
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Neonator



Anmeldungsdatum: 03.10.2004
Beiträge: 15

BeitragVerfasst am: 03.10.2004, 18:53    Titel: Antworten mit Zitat

Naja,
ja...
aber eher en Flugsimulator...
aber da sin jede Menge BUGs,
würd des gern hinbiegen...
bei nem vorherigen Thema war
von nem wetbewerb die Rede, wo und wie und vor allem wann findet der statt?
_________________
-NEONATOR-
http://www.info-mails.de/index.php3?V_ID=96336
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5900
Wohnort: Deutschland

BeitragVerfasst am: 03.10.2004, 19:11    Titel: AW Antworten mit Zitat

Hallo.

Der findet immer auf www.qb-city.de statt.

Viele Grüße!
Sebastian
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Tomtitom



Anmeldungsdatum: 20.09.2004
Beiträge: 308

BeitragVerfasst am: 03.10.2004, 19:34    Titel: Antworten mit Zitat

also zu erstens:
das ON KEY ist eigentlich nicht unbedingt so schön und soweit ich weiß, kann man damit nicht mehrere tasten auf einmal abfragen.
Besser ist es immer, wenn du in einer Schleife z.B. folgendes schreibst
Code:
do
...
a$= inkey$
if a$ = chr$(13) then ... 'für die abfrage von Enter
loop

um aber mehrere Tasten gleichzeitig abzufragen, wird es schon etwas komplizierter. Da genügt schon nicht mehr reiner QB-Code, aber dazu schaust du am besten in die MonsterFAQ

zu 2.
wenn du kleine Pausen machen willst, aber trotzdem noch die Tastatur abfragen willst, dann musst du auch wieder eine Schleife machen und darin die Tasten abfragen, wie im obigen Beispiel. Damit eine bestimmte Zeit Pause ist, musst du noch den Timer einbauen, z.B. mit
Code:
t=timer
do until timer-t=0.25 'für eine viertel sekunde Pause
...



zu 3. Also eigentlich müsste das klappen, vielleicht stimmt was mit dem restlichen Code nicht.

MfG, Tomtitom
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



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

BeitragVerfasst am: 04.10.2004, 08:24    Titel: Antworten mit Zitat

also mal ne erklärung zu dem KEY-Gesabbel da.


1. KEY ist Schrott! zwinkern
Ich hab das ganze mal für ein Snake-Spiel benutzt, ist echt lkustig des Spiel, vllt lad ich's heute mal auf Codesharinx hoch und geb dir dann den Link. Es funktioniert auch aber ich hab ein Problem: Ich weiß die Steuerung nicht mehr und bekomm sie auch nicht mehr raus da ich die KEY-Zuweisungen nicht kommentiert hab... Ich lauf immer über den halben Bildschirm und probier die Tasten alle aus und dann häng ich schon in der Wand....


2. So funktioniert KEY:
Mit der KEY-Anweisung wird eine Tastenkombination (zB STRG+"H") definiert und einer Nummer zugewiesen.
Die ON KEY-Anweisung definiert eine GOSUB-Routine, die bei einem Druck der Kombination der entwsprechenden Nummer ausgeführt wird wenn die Ereignisverfolgung aktiviert ist.
KEY n ON aktiviert die Verfolgung für Kombination n
KEY n STOP pausiert sie und
KEY n OFF schaltet sie ab.

in der QB-Onlinehilfe kannst du die Zahlen nachschauen, die du da bei den CHR$'s hinschreiben musst. meistens wirst du das für eine einzige Taste haben wollen, nicht für eine Kombination, dann schreibst du bei dem ersten CHR$ eine 0 rein. das Staffelt sich dann, 1 für Shift dazu, 2 für Strg, 4 dann für alt, 8 für ... usw, für mehrere Tasten einfach die Werte addieren. Die Tasten stimmen aber glauib ich ned, schau in die onlinehilfe, da steht welche Zahl zu welcher Taste gehört.
Da steht auch, welche Zahl für Welche Taste in des zweite CHR$ rein muss.

Eine Fertige Key-Konstruktion (bitte nagelt mich nicht mit den Zahlen fest)sähe so aus:
Code:
KEY 21, CHR$(0)+CHR$(72) 'keine Taste + die Hoch-Taste (könnte sein...)
ON KEY 21 GOSUB hoch
...
KEY 21 ON
...
KEY 21 OFF
SYSTEM
...
...
hoch:
...
RESUME 'oder RETURN, weiß ned genau, ausprobieren.



@Tomtitom: mehrere Tasten auf einmal ist doch ganz einfach, oder?
Code:
DIM tasten(128) AS INTEGER 'Boolean wäre besser, gibts aber ned.
CONST ON=1
CONST OFF=0

DO 'Hauptschleife

PRINT "Hier am besten den Code hin"

neuTaste=inp(&H60) 'oder INP(53) müsste das glaub  ich sein wenn mans ausrechnet
IF neuTaste > 128 THEN taste(neuTaste-128)=OFF else taste(neuTaste)=ON
SELECT CASE ON 'komisch, das so rum zu machen, geht aber einfach dann.
CASE taste(72) 'hochtaste galub ich
...
CASE taste(75) 'links-Taste glaub ich
...
CASE taste(77) 'müsste Rechts sein
...
CASE taste(80) 'müsste hoch sein
...
CASE taste(1) 'ist glaub ich Escape
...
CASE taste(13) 'dürfte Enter sein
...
END SELECT

PRINT "Oder hier, ist auch ok"

LOOP UNTIL INKEY$=CHR$(27)

Achtung dabei: eine Inkey$-Abfrage in der Schleife ist wichtig, da bei Abfragen von INP(&H60) der Tastaturpuffer nicht geleert wird -> Er fängt irgendwann an zu piepsten weil der Puffer überläuft...

3. Zu deinem dritten Teil: Was geht da nicht? bekommst du einen Fehler oder wie?
wenn das ganze so aussieht:
Code:
h2=100
h3=100
IF h2=h3 then h3=h3+300

ist h3 am ende 400. Das geht.
wenn h3 jetzt aber ein von dir definierter Typ ist geht das nicht, dann musst du jedes Attribut einzeln vergleichen, also "IF h2.x=h3.x and h2.y=h3.y ...", dann geht allerdings die Anweisung h3=h3+300 nicht, von daher denk ich, du hast dich irgendwo vertippt oder so.

Wenn da jetzt irgendwo irgendwas nicht funktioniert: Das ist alles aus dem Kopf zusammengeschrieben, keine Gewähr dass das stimmt... zwinkern
_________________
"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
Neonator



Anmeldungsdatum: 03.10.2004
Beiträge: 15

BeitragVerfasst am: 04.10.2004, 15:37    Titel: Antworten mit Zitat

Danke @ all, nur vieles funtz net,
und... achja...
machnmors anders:
Stellt sich jemand mir zur verfügung den ich ... "Einweihen" kann?
dem schick ich die *.bas , und scherib als kommentare
was ich haben will, und er macht es, und schreibt dann dahinter kommentare was was ist etc., ich glaube so wäre mir am besten geholfen...
_________________
-NEONATOR-
http://www.info-mails.de/index.php3?V_ID=96336
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MisterD



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

BeitragVerfasst am: 04.10.2004, 18:35    Titel: Antworten mit Zitat

Hm, ich schaus mir mal an. schick mir Mail.
_________________
"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
Neonator



Anmeldungsdatum: 03.10.2004
Beiträge: 15

BeitragVerfasst am: 04.10.2004, 18:54    Titel: Antworten mit Zitat

sry, kann deine E-mail adresse nicht sehen,
denn mir fehlt en Gewisse Prog...
kannst du sie Posten?
_________________
-NEONATOR-
http://www.info-mails.de/index.php3?V_ID=96336
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MisterD



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

BeitragVerfasst am: 04.10.2004, 19:09    Titel: Antworten mit Zitat

Da in der Fußzeile aller meiner Beiträge ist ein EMail-Button... zwinkern
_________________
"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


Zuletzt bearbeitet von MisterD am 10.08.2007, 16:52, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Tomtitom



Anmeldungsdatum: 20.09.2004
Beiträge: 308

BeitragVerfasst am: 04.10.2004, 20:33    Titel: Antworten mit Zitat

zur Not hättest du es auch zu mir schicken können zwinkern

@ MisterD: also dein Code bezüglich der mehreren Tasten ist interessant, hab ihn auch mal getestet und er scheint zu funktionieren. Zumindest, wenn man das Select case durch ifs ersetzt, denn select case betrachtet ja nur einen Fall. Aber es klappt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Neonator



Anmeldungsdatum: 03.10.2004
Beiträge: 15

BeitragVerfasst am: 04.10.2004, 20:43    Titel: Antworten mit Zitat

das mit der E-mail-button hab ich au bemerkt, aber dann kommt nen Fehler, oder besser gesagt, ich brauch ein Prog. das ich net hab...
_________________
-NEONATOR-
http://www.info-mails.de/index.php3?V_ID=96336
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MisterD



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

BeitragVerfasst am: 05.10.2004, 11:28    Titel: Antworten mit Zitat

@tomtitom: Na gut, das kann sein, aber noch was wichtiges: Man muss NumLock ausschalten sonst "rasten" die Pfeiltasten ein...
Was man wahrscheinlich auch machen kann ist, CONST ON =-1 dann reicht nämlich einf IF taste(1) THEN...

@neonator: Dann bleib einfach mit der Maus auf dem Link, dann steht unten in der Statusleiste die zeile "mailto:usw" da kann man dann die Adresse ablesen zwinkern
_________________
"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 -> Allgemeine Fragen zu QBasic. 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