Python 2.7 Pygame事件未随时间响应。时间()

Python 2.7 Pygame事件未随时间响应。时间(),python-2.7,time,pygame,Python 2.7,Time,Pygame,使用Python2.7.11时,time.time()函数会给pygame带来麻烦。我有检查pygame事件和响应它们的功能 def check_按键(事件): 全局点 “”“检查已按下的键”“” 全球运行 如果event.key==pygame.K_空间: 打印“嗨” elif event.key==pygame.K_q: 运行=错误 elif event.key==pygame.K_RIGHT: 点数+=1 def检查密钥(事件): 全局点 “”“检查已释放的密钥”“” 如果event.ke

使用Python2.7.11时,
time.time()
函数会给pygame带来麻烦。我有检查pygame事件和响应它们的功能

def check_按键(事件):
全局点
“”“检查已按下的键”“”
全球运行
如果event.key==pygame.K_空间:
打印“嗨”
elif event.key==pygame.K_q:
运行=错误
elif event.key==pygame.K_RIGHT:
点数+=1
def检查密钥(事件):
全局点
“”“检查已释放的密钥”“”
如果event.key==pygame.K_空间:
打印“再见”
elif event.key==pygame.K_RIGHT:
点数+=1
def check_事件():
“”“检查来自用户的事件类型”“”
全球运行
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
elif event.type==pygame.KEYDOWN:
检查按键(事件)
elif event.type==pygame.KEYUP:
检查密钥(事件)
我的主要问题是
time.time()
似乎没有响应
time.time()-t0==1

t0=time.time()
#游戏的主循环
运行时:
更新(灰色、x、y、点)#更新文本并重新绘制屏幕
检查事件()#检查按键
如果time.time()-t0==1:
点数+=1
t0=时间。时间()
我希望屏幕上的文本每秒增加1。但是问题是变量
points
保持为零(这就是变量的初始化方式-任何其他数字
points
都不会改变。此外,
points
变量是
int
。我也试着打印
points
的值,但同样,0是输出

我不太懂python,所以请尽量简化答案(最好有一个解释)


谢谢

您的问题是,您正在使用非常详细的浮点数,将它们相减,并希望它等于整数

这几乎是不可能的

相反,使用一个简单的不等式检查是否已过1秒

t0 = time.time()
# The main loop for the game
while running:

    update(GRAY, x, y, points)  # Updates the text and redraws the screen
    check_events()  # Checks key presses

    if time.time() - t0 > 1:
        points += 1
        t0 = time.time()
与其检查两个浮点数相减时是否正好等于1,不如检查差值是否大于1


我希望这个答案对您有所帮助,如果您还有其他问题,请随时在下面发表评论。

我用您的想法解决了这个问题,效果很好。我也理解您的理由,为什么我以前的选择不起作用。这非常有帮助。谢谢!很高兴我能提供帮助;D