0

我正在为我将在学校做的演示创建一个简单的横向滚动空间游戏。我决定我应该学习如何使用操纵杆输入作为挑战。真的很酷,几乎完成了,但我注意到,在我玩的时候,如果我不时不时地移动鼠标,显示器就会变暗,看起来像是要进入省电模式。有什么办法可以避免这种情况吗?

4

2 回答 2

0
import pygame
x,y = pygame.mouse.get_pos()
pygame.mouse.set_pos([x+1,y+1])
pygame.mouse.set_pos([x,y])

这不是最简洁的解决方案,但这将模拟鼠标移动。您可能可以调用或使用 Python信号库的 API。但是根据您的平台,解决方案可能会有很大差异。

或者如果您需要在窗口不活动时移动光标?

import win32api, win32con
def move(x,y,press=False):
    win32api.SetCursorPos((x,y))
    if press:
        click(x,y)
def click(x,y):
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)
move(10,10,True)
于 2013-08-19T11:57:06.310 回答
0

pygame.event.pump()

我猜你是pygame.joystick从而不是从pygame.event. 如果是这样,您也许可以通过调用pygame.event.pump().

如果没有调用其他函数,则应调用此pygame.event函数,因此可能会在后台发生这些情况,并且系统不会将已处理的错误误认为是无响应的。 pygame.event.get()如果您还想要活动,这也是一个可行的解决方案。

我在 OSX (10.13.3) 上对此进行了测试,但我知道它pump()在不同操作系统上的作用不同,因此您的结果可能会有所不同(请发表评论)。

还值得注意的是,pygame.mouse.set_pos()它对我不起作用,因为它目前在 MacOS 上似乎没有任何作用(pygame:1.9.4.dev0)。

于 2018-07-03T16:58:53.020 回答