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. |