2
除了聽事件之外,完全不瞭解如何獲得鼠標的位置,但是在事件隊列爲空的情況下,這是如何實現的?如何使用PySDL2獲取鼠標位置?
爲pysdl for pygamers文檔建議使用sdl2.mouse.SDL_GetMouseState()
(doc here),但此功能actially 需要的X,你要問關於光標的y座標。同時,調用sdl2.mouse.SDL_GetCursor()
會返回一個遊標對象,但是我無法找到它的座標(即它只是包裝一個C對象,因此它有一個空的.__dict__
屬性)。
我一直在嘗試我能想到的一切,但我從來沒有在C編程過。我想產生簡單的包裝函數就是:
def mouse_pos(self):
# ideally, just return <some.path.to.mouse_x_y>
event_queue = sdl2.SDL_PumpEvents()
state = sdl2.mouse.SDL_GetMouseState(None, None) # just returns 0, so I tried the next few lines
print state
for event in event_queue:
if event.type == sdl2.SDL_MOUSEMOTION:
# this works, except if the mouse hasn't moved yet, in which case it's none
return [event.x, event.y]