问题标签 [pygame-tick]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
72968 浏览

python - pygame clock.tick() vs 游戏主循环中的帧率

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

根据api get_ticks()

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

但是clock.tick()

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

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

我有点疑惑,是不是说clock.tick()直接影响到游戏开始后经过了多少毫秒?

那么clock.tick(40)意味着我每秒“发出” 40 帧,而 while 循环每秒运行 40 次?

我没有看到 fps 和滴答声之间的关系。

更新:我实际上只是对其进行了测试,并且get_ticks()无论您给tick() - 0.1or 30or的 fps 是多少,它仍然以 mls 为单位返回实时时间60

因此,它似乎clock.tick()只是设置了游戏应该运行多快或者while 循环应该多久更新一次,通过自身运行

但是我仍然有点困惑,欢迎其他答案。

0 投票
1 回答
543 浏览

python - Pygame - 仅运行一次 3 秒的事件

我对 PyGame 还很陌生,我正在创建一个太空射击游戏。这个游戏的一部分是通电,当玩家拾取特定的通电时,我希望玩家在 3 秒内不能射击。射击是通过鼠标点击完成的。

我可以捡起道具,我知道玩家上次捡到的道具是什么,但我正在为这个事件而苦苦挣扎。我正在考虑的实施方式是:

  1. Can't Shoot power up 被拾取 -> 完成了
  2. 阻止鼠标按钮
  3. 等待 3 秒,而游戏的其余部分仍在运行
  4. 取消阻止鼠标按钮。

我知道 Python 函数(例如 wait)无济于事。

有什么想法/建议吗?谢谢

0 投票
1 回答
193 浏览

python - 无法让我的暂停功能在 Pygame 3.4 中工作

我正在制作一个乒乓球游戏,但无论我尝试什么,我都无法实现一个暂停系统,当按下 CTRL + C 时它会停止。

我试过了:

和:

和:

如何让我的游戏暂停直到按下 CTRL + C?

0 投票
1 回答
270 浏览

python - 与pygame不一致的运动

我遇到了一个问题,我每次执行程序时都试图让一个圆圈去同一个地方。但是每次我运行代码时,点并不总是排成一行。我在同一个地方有一个测试圈来比较运行。红色圆圈应该完美地覆盖白色圆圈,但每次我运行程序时它都会改变。我正在重置内核,因为我正在使用 pygame.time.get_ticks() 来计时一切。

0 投票
1 回答
1210 浏览

python - 如何在pygame中通过光标移动移动Sprite图像?

现在在下面我所做的只是简单地创建了一个如图所示的精灵.. 为了做一些有趣的事情,考虑到线程我添加了一个线程来检查光标位置,因此更新全局 x 和 y 导致精灵位置的变化由display.update 我是新手,所以我可能在很多方面都错了……所以请多多包涵……非常感谢

***以下是我的最新代码---------根据答案更新***请检查

0 投票
0 回答
127 浏览

python - 在更新循环内绘制循环(每秒)

我的代码简化了:

它应该做的是每秒应该有一些更新等于 UPS 值。每次更新后,绘制的帧数将等于 FPU。这确实意味着 FPS 是 UPS*FPU。

我的问题是如何将其设置为流畅,流畅。平滑度是这个问题的关键问题。

我需要让每个game.draw()人(在时间上)彼此距离相等。

Clock = pygame.clock然后Clock.tick(UPS*FPU)不起作用,因为更新发生的次数与 draw * FPU 一样多。

我应该在时钟内使用时钟吗?那行得通吗?(我试过了,但我不确定结果——它是否适用于所有极端情况。)

或者也许只是在时钟内?那行得通吗?

pygame.Clock我正在考虑使用tick.tick_busy_loop()但这是实验的问题 - 与这个问题无关。

如果您愿意,可以查看我将在哪个项目中使用它。(特别是那里)。

0 投票
0 回答
33 浏览

python-3.x - pygame 在有限的 for 循环中冻结

pygame 在循环 150 左右冻结在此循环中。循环继续,但 pygame 停止更新这是我的代码:

所以这段代码应该做的是在一个文件夹中播放一系列图像。但 pygame 冻结,循环继续。这是一个for循环。这是我的更新方法吗?有没有办法来解决这个问题?

另外,如果我将帧速率降低到 10 左右,同样的事情也会发生在同一帧。有限制pygame.display.update()吗?

0 投票
2 回答
362 浏览

python - 在执行 pygame 时提高性能?

我的 pygame 运行得太慢了。不使用类 oop 它运行完美,但现在使用 oop 非常慢。

我已经测试过将那个单独的类文件也放在主文件中,但结果是一样的。

另一个文件:导入 pygame

0 投票
1 回答
134 浏览

python - Pygame在添加一点代码后突然卡顿了,为什么呢?

我有一个用 Pygame 制作的游戏,我添加了一个“小”更新,当按下空格键时,一个精灵会在 80 毫秒内变为另一个精灵,这会使整个游戏滞后(不仅仅是在按下空格键时,而是一直)。任何人都可以帮忙吗?:)

这是“更新”之前的一些代码:

人.py

游戏功能.py

这是“更新”之后的相同代码:

人.py

游戏功能.py

0 投票
1 回答
70 浏览

python - 试图控制我的 Pong 循环速度

我试图让我的乒乓球游戏以特定的 fps 运行循环,但我尝试了几件事,但没有奏效,我没有被教导如何使用 pygame 速度/时钟,所以我必须弄清楚我自己出去

我正在尝试使循环以一定的速度运行以使其看起来更平滑,因为如果我编辑 dx 或更改它时它所处的位置,它看起来很厚实,所以而不是桨 10 x 向下(看起来矮胖)我想将它向下移动 1 倍,所以它向下移动的速度与 10 倍一样快,但更平滑

完整代码