问题标签 [pygame-clock]

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 投票
0 回答
46 浏览

python-3.x - 为什么在物理计算中使用增量时间会产生比预期慢的代码?

我有一个使用 Pygame 构建的简单弹丸运动模拟。我将 FPS 限制为 60 并计算了每帧的增量时间。然后我使用这个增量时间来更新我的弹丸的位置。但是,问题是,更新似乎很慢。

根据我对给定弹丸轨迹的论文计算,弹丸应该在不到 5 秒的时间内完成它的路径。然而,在弹丸完成其路径之前已经过去了更多的时间。这是我的代码:

我希望球会在计算出的时间同时落地,但事实并非如此。我已经排除了这是一个 FPS 问题的可能性,因为打印dt总是给我一个一致的 0.017 秒(大约 1/60)。我错过了什么吗?

这是一个示例运行:

注意 - 较低的 y 值意味着“物理上”较高

使用方程式v_yf = v_yi + gt^2并求解t将给出大约 2 秒的时间。根据结果​​,该程序需要两倍的时间来完成此操作。

编辑:添加日志

0 投票
2 回答
327 浏览

python - 为什么我添加轮换后我的程序变得非常滞后,我该如何解决这个问题?

我正在使用 pygame 制作游戏,并且我有一个小行星类。当我在更新方法中添加旋转并运行程序时,小行星的移动非常缓慢和滞后,甚至它们的图像看起来也比以前更糟。

我不知道如何解决这个问题以及为什么会这样。这是课程:

在我添加旋转功能并在更新功能中添加“self.roatate()”之前,它很好,之后,它真的很卡。如何解决?

0 投票
1 回答
154 浏览

python - 鼠标上/下之间的秒表

我正在尝试通过在 while 循环中使用简单的秒表来测试鼠标按下和鼠标按下事件之间的时间。鼠标按下事件工作正常,但是当我释放鼠标以使鼠标向上时,秒数会继续上升并且不会停止。

我希望秒表在鼠标释放后结束。例如。如果只是单击鼠标,则秒数应为 1。如果按住鼠标 5 秒,则不应继续超过 5。

0 投票
1 回答
280 浏览

python - Python Pygame 超慢,窗口大小增加

硬件:配备 4.2GHz i7、40 GB DDR4 RAM 和 Radeon Pro 580 8192 MB 的 iMac

-> 奇怪的是,我在下面发布的更新代码在我的 iMac 上仅以 1.6 FPS 的速度运行

我开始在 pygame 中制作一个游戏,它变得异常缓慢。我发现拥有更大的窗口会显着降低 fps,即使没有显示任何内容。为了证明这一点,我创建了下面的简单程序。每次迭代,它都会略微增加窗口大小。

起初,游戏窗口(没有显示任何内容)在 100x100 像素下以大约 150 fps 的速度运行。当它增加到 1000x1000 像素时,它的运行速度仅为 2 fps。

我究竟做错了什么?如果fps这么低,我将不得不放弃制作我的游戏。谢谢您的帮助。

更新:我被告知每次迭代都更新显示尺寸会使这对性能进行不公平的测试。这就是为什么我更新了下面的代码。此代码将窗口大小初始化为 2000x2000,并不断将其更新为空白屏幕。但是,这仍然只能达到 6 FPS,甚至什么都没有。为什么是这样?

0 投票
1 回答
176 浏览

python - Pygame 生活游戏运行缓慢

我决定创建一个更简单的生命游戏版本,因为我无法真正使用我的旧版本。我现在有一GameOfLife堂课,但它运行得很慢。当我单击一个单元格时,它需要一些时间才能激活/停用等。有谁知道它为什么很慢?FPSCLOCK 是否有问题,或者我正在运行不应该运行的东西?

0 投票
1 回答
134 浏览

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

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

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

人.py

游戏功能.py

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

人.py

游戏功能.py

0 投票
2 回答
2967 浏览

python - 如何显示文本 5 秒然后消失并显示按钮?

我正在努力做到这一点,所以当你在我的琐事游戏中得到正确答案时,它会摆脱你看到的大问题并说“做得好” 5 秒钟,然后返回主菜单,那里有 4 个随机选定的问题。问题从 quizfile.csv 加载,包含:

它们是随机的,因为它们只是占位符并且仅用于测试目的。我想要暂停/显示 5 秒功能的地方在第一个文件的第 115 行。

我已经尝试过time.sleep(5)了,这只是冻结了程序并且在 5 秒内不显示它,就像不到一秒一样。我需要使用pygame.event.set_timer()吗?如果需要,如何使用?

这是我用来创建闪烁输入效果和功能的 pygame_textinput.py 文件。

任何帮助表示赞赏!

0 投票
1 回答
411 浏览

python - Python Pygame 文本每次叠加打印在自身之上

我目前想使用一段名为 python slideshow with time and weather (github) 的旧 Python 代码。我正在使用 Raspberry Pi,我已经完成了所有设置,并且它在横向(正常)模式下完美运行。这是一个幻灯片应用程序,它具有在 Pygame 上开发的天气和时间叠加层。

我想纵向使用该应用程序,但是当我使用 display_rotate=1(或 3)在 /boot/config.txt 中旋转我的屏幕并重新启动幻灯片时,一切似乎都正常,天气覆盖出现在左下角/它应该是正确的,但是一旦天气或时钟或日期的任何部分更新,它就会在自身上打印文本。

有没有人知道可能导致这种行为的原因?我在代码中看不到任何内容。这是下面来自 Git 的 python 文件,我附上了奇怪行为的屏幕截图[在这种情况下显示时钟中的文本覆盖问题的图像][1]github 上带有时间和天气的 Python 幻灯片

0 投票
1 回答
70 浏览

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

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

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

完整代码

0 投票
2 回答
707 浏览

python - Pygame - 是否可以根据时间更改背景图像?

我正在使用 pygame 来创建一种动画。我的想法是让一系列背景图像随着我开始游戏后的时间而变化。我想出了这个代码来做到这一点:

当我运行程序时收到的反馈是“'int' object is not iterable”,这让我觉得我可能无法做我想做的事情,因为我拥有的图像在 Pygame 中被归类为表面对象。我在想两件事:

-->是否可以通过某种方式转换表面对象的类型来创建一个可以重新上传与时间相关的图像的函数?

-->我的代码是否反映了我想要它做的事情?

请让我知道并与批评一起开火!我对编码很陌生,所以任何反馈都是有帮助的!