ich habe folgendes Problem: eine Box soll sich nach einem Cursor-rechts-Klick nach rechts bewegen. Das tut sie auch. Leider wird die entsprechende if-Abfrage mehrmals durchlaufen, auch wenn es nur einen Tastendruck gibt. Das würde zwar besser mit KeyboardReleased funktionieren. Allerdings hat das den Nachteil, dass das Programm nicht so schnell auf das Releasen reagiert wie auf das Pushen. Gibt es eine Möglichkeit, die "unnötigen" Cursor-right-events unschädlich zu machen?
Code: Alles auswählen
Screen_Width = GetSystemMetrics_(#SM_CXSCREEN)
Screen_Height = GetSystemMetrics_(#SM_CYSCREEN)
Define Resolution.DEVMODE
Resolution.DEVMODE\dmSize = SizeOf(DEVMODE)
If EnumDisplaySettings_(0, #ENUM_REGISTRY_SETTINGS, @Resolution)
col_depth = Resolution\dmBitsPerPel
EndIf
#sprite = 1
InitSprite()
InitKeyboard()
OpenScreen(Screen_Width, Screen_Height, col_depth, "Sprite-Example")
CreateSprite(#sprite, 50, 50)
StartDrawing( SpriteOutput(#sprite) )
Box(0, 0, 50, 50, #Red)
StopDrawing()
x=0
Repeat
ClearScreen(RGB(0,0,0))
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Right)
x = x + 50
Debug Str(x)
EndIf
DisplaySprite(#sprite, 100 + x, 250)
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)