【问题标题】:PyGame - Unattaching the FPS out of the programPyGame - 将 FPS 脱离程序
【发布时间】:2015-10-16 23:18:30
【问题描述】:

我想创建类似的东西,但没有 fps 的附件 clock.tick(30) 这是程序的其余部分

import pygame
st_X=180
clock=pygame.time.Clock()
st_Y=340
st_X_Change=0
pygame.init()
gameDisplay=pygame.display.set_mode((400,400))
pygame.display.set_caption("space_invaders")
gameExit=False
pygame.display.update()
while(gameExit==False):
    for event in pygame.event.get():
        print(event)    
        if event.type==pygame.QUIT:

            gameExit=True
        if event.type==pygame.KEYDOWN:
            if event.key==pygame.K_LEFT:
                st_X_Change=-10
            if event.key==pygame.K_RIGHT:
                st_X_Change=10
    st_X+=st_X_Change
    gameDisplay.fill((0,0,0))
    pygame.draw.rect(gameDisplay,(255,255,255),[st_X,st_Y,40,10])
    pygame.display.update()
    clock.tick(30)
pygame.quit()
quit()

【问题讨论】:

  • Clock.tick 有什么问题?
  • 我只是在不调用帧速率的情况下制作同样的东西
  • 为什么?你可以使用time.clock

标签: python pygame frame-rate


【解决方案1】:

基本方法是: - 存储上次更新的开始时间 - 更新结束时,获取当前时间 - 获得两次之间的差异 - 从每帧所需的时间中减去该差异(1/FPS-dx) - 让你的程序等待那个时间(比如 sleep() )

这将使您的程序以您的目标 FPS 运行。还有其他方法,但那是一种很好且简单的方法。

【讨论】:

    猜你喜欢
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多