gpt4 book ai didi

python - pyGame 在简单循环中的完整核心用法

转载 作者:行者123 更新时间:2023-12-01 22:17:48 27 4
gpt4 key购买 nike

编辑

这是一个open issue似乎与 alsa 音频有关。

解决方法是关闭音频混合器,或从源代码安装 pyGame。

pygame.init()
pygame.mixer.quit()
<小时/>

我刚刚开始使用 pyGame 进行开发,并发现我应该使用以下方法来控制 CPU 时间:

fps = 30
clock = pygame.time.Clock()

while True:
# Logic...
clock.tick(fps)

我似乎遇到的问题是,以 1 FPS 运行的最基本的绘制正方形程序会消耗整个 CPU 核心。

import pygame

pygame.init()

size = ( 16, 16 )
screen = pygame.display.set_mode(size)
pygame.display.set_caption("High CPU")

clock = pygame.time.Clock()

run=True
while run:

print("Rendering...")

for event in pygame.event.get():
if event.type == pygame.QUIT:
run=False

screen.fill((255,255,255))

# Render
pygame.display.flip()
clock.tick(1)

# When done
pygame.quit()

一旦我调用此脚本,我的机器的单个核心就会飙升至 100%,尽管消息仅以预期的 1 FPS 更新率打印到控制台。

$ ps aux | grep python
mclark 25867 97.4 0.1 652232 29088 pts/0 Sl+ 13:10 0:06 python highCPU.py

并运行最新的 pyGame

$ pip show pygame
Name: pygame
Version: 1.9.3
Summary: Python Game Development
Home-page: http://www.pygame.org
Author: Pete Shinners, Rene Dudfield, Marcus von Appen, Bob Pendleton, others...
Author-email: pygame@seul.org
License: LGPL
Location: /home/mclark/.local/lib/python2.7/site-packages
Requires:

这是否是最新版本 pyGame 中可能存在的错误?或者我对时间的管理不正确?

最佳答案

我们在 pygame 2 中修复了这个问题。在某些 Linux 系统上它不再占用 100% 的 CPU 核心。

python3 -m pip install pygame --upgrade

从 pygame 2.0.0 开始,在某些 Linux 系统上从源代码安装 pygame 可能会更好。

干杯,

关于python - pyGame 在简单循环中的完整核心用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46160971/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com