Pygame-每秒帧数

时间:2016-11-05 13:55:27

标签: python pygame

我在pygame教程中观看了

以下是example code

以下是示例

的一部分
lead_x = 300
lead_y = 300
lead_x_change = 0
while not gameExit:
    for event in pygame.event.get():
    if event.type == pygame.QUIT:
        gameExit = True
    if event.type == pygame.KEYDOWN:
        if event.key == pygame.K_LEFT:
            lead_x_change = -10
        if event.key == pygame.K_RIGHT:
            lead_x_change = 10

    lead_x += lead_x_change   

我不确定它是如何运作的?

我的理解是按下K_LEFT

并且lead_x_change = -10

然后退出事件循环

然后lead_x减去10

这个动作叫做一帧

因此,如果每秒帧数= 30

lead_x减去30次,以便每秒移动300个单位?

但显示宽度仅为800

我测试了它,因为它似乎有意义

正确?

1 个答案:

答案 0 :(得分:0)

如果我理解正确的话。你想知道代码做了什么以及为什么它做它做的事情。

让我们想象一下,我们有一款试图避免碰到阻挡的汽车游戏(这实际上是我在YouTube上的pygame教程上制作的真实游戏,如果你感兴趣,这里是Github页面:https://github.com/m41kdev3lops/RacerZ

lead_x 是您汽车的X位置(PIXELS屏幕边缘的最左侧)。您想要通过 N (在这种情况下为10)更改您的汽车的 X位置以及您的代码所做的事情!它会根据 lead_x_change 值更改 lead_x 值。这实际上是根据值中的减去左右移动您的汽车(如果值负值则向左移动,如果值正向则向右移动

为什么会这样?

因为我不明白为什么不应该这样做!如果你的意思是它应该移动 N *帧率然后不,它只移动 N像素。 FPS只是在第二个实际显示的帧数, lead_x DOES NOT 与FPS相关(它不会像您猜到的那样改变每帧的值)。 / p>

我希望这会有所帮助