我在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
我测试了它,因为它似乎有意义
正确?
答案 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>
我希望这会有所帮助