Seite 2 von 2

Verfasst: 26.09.2006 18:50
von mk-soft
Schon gesehen. :mrgreen:

Verfasst: 26.09.2006 18:56
von Alves
Yo, funzt gut, mit Ausnahme, das zweimal abgefragt wird, on zaehler kleiner als Zahl_min ist. Ist so falsch.

Habe aber auch voll die Blockade grade.

Edit: Merke grade, dass bei jeder eyabfrage der gleiche Code ist.

Ändere ihn grade, aber irgendwo hakts da.

Verfasst: 26.09.2006 19:00
von DarkDragon

Code: Alles auswählen

; Autor: DarkDragon

Dim StaticKeyboardReleasedOldState.b(256)

Procedure KeyboardReleasedEx(Key.l)
  Protected Result.l
  Shared StaticKeyboardReleasedOldState()
  
  ; Key+1 in der Struktur, weil #PB_Key_All = -1 ist
  Result = 0
  
  If KeyboardPushed(Key)
    StaticKeyboardReleasedOldState(Key+1) = 1
  Else
    If StaticKeyboardReleasedOldState(Key+1) = 1
      Result = 1
      StaticKeyboardReleasedOldState(Key+1) = 0
    EndIf
  EndIf
  
  ProcedureReturn Result
EndProcedure

InitSprite()
InitKeyboard()

OpenWindow(0, 0, 0, 640, 480, "Test", #PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0), 0, 0, 640, 480, 1, 0, 0)

Repeat
  ExamineKeyboard()
  Delay(1)
Until KeyboardReleasedEx(#PB_Key_Up) Or WindowEvent() = #PB_Event_CloseWindow
MessageRequester("OK", "OK")
End
Auch wenn ich ein wenig spät damit komm <)

Verfasst: 26.09.2006 19:03
von Kaeru Gaman
> Merke grade, dass bei jeder eyabfrage der gleiche Code ist.

:oops: yo, habbich verdaddelt..

...hatte rübergepatcht und nur das flag geändert.

habs jetzt oben korrigiert.

Verfasst: 26.09.2006 19:59
von tobe
@DarkDragon
ich glaub das letzte

Code: Alles auswählen

StaticKeyboardReleasedOldState(Key+1) = 1
müsste so:

Code: Alles auswählen

StaticKeyboardReleasedOldState(Key+1) = 0
sein, weil sonst ist die taste ja dauerhaft gedrückt.

Verfasst: 26.09.2006 20:15
von DarkDragon
tobe hat geschrieben:@DarkDragon
ich glaub das letzte

Code: Alles auswählen

StaticKeyboardReleasedOldState(Key+1) = 1
müsste so:

Code: Alles auswählen

StaticKeyboardReleasedOldState(Key+1) = 0
sein, weil sonst ist die taste ja dauerhaft gedrückt.
Stimmt...