Я пишу небольшой Pygame сценарий, и мне нужно знать, если мышь оставил окно PygameDetect, если мышь оставил Pygame окно
Я не знаю, как еще объяснить. Это кажется простым, но я нигде не могу найти решение.
Я пишу небольшой Pygame сценарий, и мне нужно знать, если мышь оставил окно PygameDetect, если мышь оставил Pygame окно
Я не знаю, как еще объяснить. Это кажется простым, но я нигде не могу найти решение.
pygame.mouse.focus()
дает 0
, когда мышь покидает окно (по крайней мере, в Linux)
#!/usr/bin/env python3
import pygame
pygame.init()
screen = pygame.display.set_mode((800,600))
is_running = True
while is_running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
is_running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
is_running = False
print(pygame.mouse.get_focused())
pygame.quit()
Я сделал некоторые испытания ...
if not bool(game.mouse.get_focused()):
print("Mouse has left (Method 1)")
и ...
elif event.type == game.MOUSEMOTION:
checkFocus(event, self.canvas)
def checkFocus(e, display):
x, y = e.pos
MX, MY = display.get_size()
MX -= 1 # 0 - based
MY -= 1
if x <= 0 or y <= 0 or x >= MX or y >= MY:
print("Mouse has left (Method 2)")
и метод 1 работал все время, в то время как метод 2 работал большую часть времени (особенно вокруг max X и d Ys [MX & MY])
Вот фактический журнал меня качается мышь вокруг, как маньяк ...
Mouse has left (Method 1)
Mouse has left (Method 2)
Mouse has left (Method 1) <--
Mouse has left (Method 1) <--
Mouse has left (Method 2)
Mouse has left (Method 1)
Как вы можете видеть, в этот короткий промежуток выборки, метод 1 работает более часто, чем метод два.
Спасибо всем, кто помог!
Протестировано WIN10, кстати, так что это не просто вещь в Linux – AlgoRythm
вы попробовали событие 'pygame.MOUSEMOTION' с' event.pos'? – furas
@furas MOUSEMOTION не скажет мне, если его * вне * экрана (нагативные значения), но он всегда захватывает 0s, что означает, что он, вероятно, также ловит maxes ... если он достоверно сообщает о крайних краях, я мог бы использовать что – AlgoRythm