Nun versuche ich die Abfrage mit GetAsyncKeyState_ ( Siehe Beispiel )
Das ganze funktioniert eigentlich wunderbar, nur wenn man vorher auf irgendwo dem Screen (nicht auf dem Button) die Linke Maustaste drückt und danach über den Button fährt , die aktion ausgeführt wird.
Wüsste jemand eine möglichkeit wie ich das ganze so ändern könnte das es richtig funktioniert ?
Code: Alles auswählen
InitSprite()
OpenWindow(0,100,100,160,70,"Klick Test")
OpenWindowedScreen(WindowID(0),0,0,160,700,0,0,0)
ColR = Random( 95 ) + 32 : ColG = Random( 95 ) + 32 : ColB = Random( 95 ) + 32
button_start = CreateSprite(#PB_Any, 100, 30)
StartDrawing(SpriteOutput(button_start))
DrawingMode( #PB_2DDrawing_Transparent )
Box( 0, 0, 100,30, RGB(ColR,ColG,ColB) )
Box( 4, 4, 92,22, RGB(ColR*2,ColG*2,ColB*2) )
DrawText(33, 7, "Start", RGB(ColR,ColG,ColB) )
StopDrawing()
button_start_over = CreateSprite(#PB_Any, 100, 30)
StartDrawing(SpriteOutput(button_start_over))
DrawingMode( #PB_2DDrawing_Transparent )
Box( 0, 0, 100,30, RGB(ColR*2,ColG*2,ColB*2) )
Box( 4, 4, 92,22, RGB(ColR,ColG,ColB) )
DrawText(33, 7, "Start",RGB(ColR*2,ColG*2,ColB*2) )
StopDrawing()
Pixel = CreateSprite(#PB_Any, 1, 1)
Repeat
Event = WindowEvent()
ClearScreen($000000)
If SpriteCollision(button_start,30,30,Pixel,WindowMouseX(0), WindowMouseY(0))
If GetAsyncKeyState_(#VK_LBUTTON) And ElapsedMilliseconds()-Left_Mouse_Push_Timer>200
Debug "Pushed"
Left_Mouse_Push_Timer = ElapsedMilliseconds()
EndIf
DisplaySprite(button_start_over,30,30)
Else
DisplaySprite(button_start,30,30)
EndIf
FlipBuffers()
Delay(1)
Until event = #PB_Event_CloseWindow