Wait Keyboard OR Click
BlitzPlus Forums/BlitzPlus Beginners Area/Wait Keyboard OR Click
| ||
| Any tips on how I can WaitKey and WaitClick at the same time? I have thought of the endless While Not.. or Repeat...Until but they stop everything so I can't update my graphics. Any suggestions or tips? |
| ||
| You talking about two different things. If you you use any Wait...() command, the execution will be stopped and graphics will not be updated. That is the sense of the Wait....() commands: If you want this, a combination of Key and Mouse is not difficult: Graphics 800,600
SetBuffer BackBuffer()
Cls
Text 100,100,MilliSecs()
Flip 0
action%=WaitKeyOrMouse()
Text 100,200,"and clicked too with action=" + action
Flip 0
WaitKeyOrMouse()
End
Function WaitKeyOrMouse%()
Repeat
If MouseHit(1) Then Return 1
If MouseHit(2) Then Return 2
If MouseHit(3) Then Return 3
For i%=0 To 255
If KeyHit(i) Return i
Next
Forever
End Function
If you want to wait for such an event and the program should continue, you could use it this way: Graphics 800,600
SetBuffer BackBuffer()
Global LastAction%
Repeat
Cls
Text 100,100,MilliSecs()
action% = WaitKeyOrMouse()
If action
LastAction=action
EndIf
Text 100,200,"and clicked too with action=" + LastAction
Flip 0
Forever
End
Function WaitKeyOrMouse%()
If MouseHit(1) Then Return 1
If MouseHit(2) Then Return 2
If MouseHit(3) Then Return 3
For i%=0 To 255
If KeyHit(i) Return i
Next
Return 0
End Function
As a third solution you could use the Event() system of BlitzPlus. |
| ||
| I ended up making a function that Returns 0 unless the specific key or mouse button has been clicked. I call the function repeatedly during my animation giving the graphics priority, but remembering any interaction from user to update game. My code looks really clunky and inefficient but it works very smoothly, a long string of If KeyHit(..) then keyed$=".." because the scancode has to be turned into ascii... Every key used needs its own If Then statement. Good job our computers can do it all in a flash nowadays. Thanks for your tips and example. |