HitKey - Problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Ascendic

Betreff: HitKey - Problem

BeitragDi, Sep 18, 2007 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
hiho,

wundere mich seit einiger zeit warum HitKey nur manchmal funktioniert. Vielleicht weiss jemand wovon
ich spreche und kann mir dabei helfen? Confused

achja, bei der forensuche habe ich auch nichts gefunden was mir helfen koennte

cya
mail: info@ascendic.com
icq: 413434626
VFX: http://youtube.com/watch?v=TBPZ40y0VB8
User posted image

Smily

BeitragDi, Sep 18, 2007 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei dieser expliziten fehlerbeschreibung kann ich das problem eigentlich grob auf 2 dinge einschränken:

- Mansche Tastaturen Mucken, wenn man mehr als 3 Tasten gleichzeitig drücken muss.
- Du fragst in der schleife eine taste mehr als ein mal ab.

such dir bitte das raus, was auf dich zutrifft.

gruß,
Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
 

Ascendic

BeitragDi, Sep 18, 2007 20:37
Antworten mit Zitat
Benutzer-Profile anzeigen
hiho,

nichts davon trifft zu^^

ich habe eine repeat schleife in einer anderen:
repeat
escape = keyhit(1)
if bla then
repeat
escape = keyhit(1)
;etwa so siehts aus, nur dass es 1000 zeilen mehr gibt
until escape
escape = 0
endif
until escape

wenn ich das programm nun starte, kann ich es auch richtig per escape beenden, das is gut. wenn ich aber
zur zeit des programmablaufs in die zweite repeat-schleife komme, kann ich diese beenden, nicht aber
die hauptschleife. hatte schon mehrmals probleme mit den hit-befehlen...

cya
mail: info@ascendic.com
icq: 413434626
VFX: http://youtube.com/watch?v=TBPZ40y0VB8
User posted image

Smily

BeitragDi, Sep 18, 2007 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn deine ganzen 1000 zeilen Code so aussehen, solltest du dich vlt nochmal mit den grundlagen auseinandersetzen...

Code: [AUSKLAPPEN]
repeat
  escape = keyhit(1)
  if bla then
    repeat
      escape = keyhit(1)
      ;etwa so siehts aus, nur dass es 1000 zeilen mehr gibt
    until escape
  escape = 0
  endif
until escape


escape wird ja nach den verlassen der inneren schleife auf 0 gesetzt... also ist die abfrage "until escape" logischerweise falsch.

gruß,
Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org
 

Ascendic

BeitragDi, Sep 18, 2007 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
hiho,

escape = keyhit(1) uebersehn? is in der hauptschleife

achja, und die innere schleife wird nicht mehr ausgefuehrt, nachdem sie einmal ausgefuehrt wurde

cya
mail: info@ascendic.com
icq: 413434626
VFX: http://youtube.com/watch?v=TBPZ40y0VB8
User posted image

BladeRunner

Moderator

BeitragDi, Sep 18, 2007 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
https://www.blitzforum.de/foru...180#253180

Ersitze Mousehit durch Keyhit.
Es bringt nichts eine Variable zu verwenden wenn man diese mehrfach in der Hauptschleife mit einem neuen Wert befüllt- der dann nach der ersten Abfrage logischerweise meistens "0" ist.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Smily

BeitragMi, Sep 19, 2007 7:23
Antworten mit Zitat
Benutzer-Profile anzeigen
vlt solltest du mal versuchen, 2 verschiedene Tasten für die Verschiedenen Abfragen zu verwenden....

gruß,
Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

Markus2

BeitragMi, Sep 19, 2007 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
so wenn man die ebene wechseln möchte
zweimal Excape wäre dann Ende wenn man in der If bla Schleife steckt
Code: [AUSKLAPPEN]

repeat

  if bla then
    flushkeys
    repeat
      if keyhit(1)>0 then exit
      ;etwa so siehts aus, nur dass es 1000 zeilen mehr gibt
    forever
    flushkeys
  endif

  if keyhit(1)>0 then exit
forever


oder so , kommt halt drauf an was man vor hat , gibt viele Lösungen .
Code: [AUSKLAPPEN]

repeat

  ende=0
  if keyhit(1)>0 then ende=1
  if bla then
    repeat
      if keyhit(1)>0 then ende=1:exit
      ;etwa so siehts aus, nur dass es 1000 zeilen mehr gibt
    forever
  endif

  if ende then exit
forever
 

Dreamora

BeitragMi, Sep 19, 2007 12:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Die HIT Funktionen sind recht unpraktisch in den meisten Fällen.
Sie sagen euch, wie häufig die entsprechende Taste seit dem letzten Aufruf von KeyHit gedrückt wurden.

Sie sagt euch jedoch nicht ob die Taste jetzt gedrückt wird oder etwas in der Art.
Deswegen ist häufig Down die korrekte Funktion.
KeyHit wird nur gebraucht um zu sehen ob eine Taste überhaupt einmal gedrückt wurde, sei es um später das Spiel zu beenden wenn mans grad verpasst hat oder um Doppelklicks abzufangen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group