Не понимаю, как достичь положения мыши, кроме как при прослушивании событий, но в том случае, когда очередь событий пуста, как это достигается?Как получить положение мыши с помощью PySDL2?
Документация pysdl for pygamers предлагает использовать sdl2.mouse.SDL_GetMouseState()
(doc here), но эта функция actially требует х, у координаты курсора вы хотите спросить. Между тем, вызов 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]