PyGame Moniter在比赛期间变暗

时间:2013-08-19 05:58:01

标签: python pygame monitor

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

2 个答案:

答案 0 :(得分:0)

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

这不是最好的解决方案,但这将模拟鼠标移动。 可能有API可以调用或使用Pythons signal库。 但是根据您的平台,解决方案可能会有很大不同。

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

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)

答案 1 :(得分: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)。