标签: pygame-tick

游戏主循环中的pygame clock.tick()vs framerate

每个pygame都有一个如下所示的游戏循环:

while running:
    for event in pygame.event.get():        
        if event.type == pygame.QUIT:
            running = False   
    pygame.display.flip()
    print("tick " + str(pygame.time.get_ticks()))
    clock.tick(1)
Run Code Online (Sandbox Code Playgroud)

根据api get_ticks():

返回自调用pygame.init()以来的毫秒数.在pygame初始化之前,这将始终为0.

但是clock.tick():

应该每帧调用一次此方法.它将计算多少.自上一次调用以来已经过了几毫秒.

如果传递可选的帧率参数,该函数将延迟以使游戏运行速度低于每秒给定的滴答数.这可以用于帮助限制游戏的运行时速度.通过每帧调用一次Clock.tick(40),程序将永远不会超过每秒40帧.

我有点困惑,这是否意味着clock.tick()直接影响自游戏开始以来经过了多少毫秒?

所以clock.tick(40)意味着我"发出"每秒40帧,而while循环每秒运行40次?

我没有看到fps和ticks之间的关系.

更新:我实际上只是测试了它,并且get_ticks()仍然以mls返回实际时间,无论你给予什么fps tick() - 0.1或者30或者60.

所以它似乎clock.tick()只是设置了游戏应该运行的速度,以及循环应该自我更新的频率.

不过我还是有点困惑,欢迎其他答案.

python pygame frame-rate pygame-clock pygame-tick

9
推荐指数
2
解决办法
3万
查看次数

如何一次停止发射 1 颗以上的子弹?

import pygame
pygame.init()

red = 255,0,0
blue = 0,0,255
black = 0,0,0

screenWidth = 800
screenHeight = 600

gameDisplay = pygame.display.set_mode((screenWidth,screenHeight))        ## screen width and height
pygame.display.set_caption('JUST SOME BLOCKS')       ## set my title of the window

clock = pygame.time.Clock()

class player():       ## has all of my attributes for player 1
    def __init__(self,x,y,width,height):
        self.x = x
        self.y = y
        self.height = height
        self.width = width
        self.vel = 5
        self.left = False
        self.right = False
        self.up = False
        self.down = False

class …
Run Code Online (Sandbox Code Playgroud)

python pygame pygame-tick

3
推荐指数
1
解决办法
383
查看次数

帧率影响游戏速度

我正在pygame上练习,我想知道如何才能使帧速率不影响游戏的执行速度

我希望FPS 不被锁定,并且游戏始终以相同的速度运行

到目前为止,我一直在使用该pygame.time.Clock.tick功能,但角色的速度会根据 FPS 的数量而变化,这是我不想要的。

python pygame pygame-clock pygame-tick

2
推荐指数
1
解决办法
1162
查看次数

标签 统计

pygame ×3

pygame-tick ×3

python ×3

pygame-clock ×2

frame-rate ×1