Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Cyianor Super JLI'ler
Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 04.01.2003, 10:59 Titel: keine Taste |
|
|
Hi, wie kann ich feststellen das keine Taste gedrückt wurde??
Ich verwende DInput - Klasse aus dem Buch. |
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 04.01.2003, 11:43 Titel: |
|
|
Du hast doch bestimmte eine Funktion zum Abfragen des Tastaturstatus?
ansonsten(so ungefähr):
Code: |
//Tastaturabfrage von DirectX
...
int nobutton=0;
for(int i=0;i<256;i++)
{
if(!bKeyboard[i])
{
nobutton++;
}
}
if(i==nobutton)
{
//keine Taste wurde gedrückt
}
...
|
Kann sein, das man vorm Vergleich nobutton nochmal um 1 erhöhen muss...
Hoffe konnte helfen... _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
gl_echse JLI'ler
Anmeldedatum: 01.01.2003 Beiträge: 105
Medaillen: Keine
|
Verfasst am: 04.01.2003, 12:35 Titel: |
|
|
so stimmts, aber es is zu umständlich
Code: |
int i=0;
for(;i<256;i++)
{
if(!bKeyBoard[i])
{
exit;
};
};
if(i=255)
{
//keine Taste gedrückt
}; |
Das wäre auch schneller, weil wenn eine taste gedrückt ist wird abgebrochen. |
|
Nach oben |
|
|
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 04.01.2003, 13:04 Titel: |
|
|
Es geht sogar beides
Vielleicht gibt es ja aber schon von Anfang an ein Variable die prüft, ob überhaupt eine Tastatureingabe erfolgt ist?
Wenn die Tastatur zum Beispiel reintheoretisch nen Buffer hätte...könnte man das gleich abfragen... _________________ The source of all power is in its destiny... |
|
Nach oben |
|
|
Kampfhund Super JLI'ler
Alter: 42 Anmeldedatum: 20.07.2002 Beiträge: 408
Medaillen: Keine
|
Verfasst am: 04.01.2003, 15:56 Titel: |
|
|
@gl_echse:
wieos hast du nach den {}-Klammern der if abfrage und der schleife n semikolon? soweit ich weiß brauch man das nicht.
unten muss es noch heißen:
if(i==255) nicht if(i=255)
is exit ein schlüsselwort? ansonsten müsste es return heißen.
ich bin auch nicht ganz sicher, ob die schleife das macht was sie machen soll. du müsstest in der if abfrage der schleife das ! weglassen.
@Millenium & gl_echse
ich würde das anders ansetzen. ich würde zählen wie viele buttons gedrückt sind.
Code: |
int NumPressedButtons = 0;
for(int i=0;i<256;i++)
{
if(Keyboard[i])NumPressedButtons++;
}
if(NumPressedButtons)
{
// Button gedrückt
}
else
{
// Nicht gedrückt
}
|
|
|
Nach oben |
|
|
gl_echse JLI'ler
Anmeldedatum: 01.01.2003 Beiträge: 105
Medaillen: Keine
|
Verfasst am: 05.01.2003, 10:51 Titel: |
|
|
Nach {} kann man ein ; schreiben muss aber net
return beendet die funktion und nicht die schleife.
das mit den == war ein fehler
[edit]Dei code hat den nachteil dass es erst alles überprüft, und du brauchst eine variable mehr. is zwar net viel aber so kleinigkeiten summieren sich [edit] |
|
Nach oben |
|
|
gl_echse JLI'ler
Anmeldedatum: 01.01.2003 Beiträge: 105
Medaillen: Keine
|
Verfasst am: 05.01.2003, 10:54 Titel: |
|
|
Noch was: wenn du naher die int als bool verwendest wärs besser wenn du erst castest. |
|
Nach oben |
|
|
Kampfhund Super JLI'ler
Alter: 42 Anmeldedatum: 20.07.2002 Beiträge: 408
Medaillen: Keine
|
Verfasst am: 05.01.2003, 13:08 Titel: |
|
|
exit klang mir mehr nach return
casten?
wieso casten? das geht auch ohne.
Zitat: |
Dei code hat den nachteil dass es erst alles überprüft, und du brauchst eine variable mehr. is zwar net viel aber so kleinigkeiten summieren sich icon_wink.gif
|
das stimmt, alerdings kann man meine funktion für mehr dinge verwenden.
(hab vergessen zu schreiben das es eine funktion sein soll) |
|
Nach oben |
|
|
|