编辑
这是一个未解决的问题,似乎与alsa音频有关。
一种解决方法是关闭音频混合器,或从源代码安装pyGame。
pygame.init()
pygame.mixer.quit()
Run Code Online (Sandbox Code Playgroud)
我刚刚开始使用pyGame进行开发,并且发现应该使用以下方法来控制CPU时间:
fps = 30
clock = pygame.time.Clock()
while True:
# Logic...
clock.tick(fps)
Run Code Online (Sandbox Code Playgroud)
我似乎遇到的问题是,最基本的以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()
Run Code Online (Sandbox Code Playgroud)
一旦调用此脚本,我的计算机的单个核心就会达到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
Run Code Online (Sandbox Code Playgroud)
并运行最新的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:
Run Code Online (Sandbox Code Playgroud)
这是最新版pyGame中可能的错误吗?还是我管理时间不正确?
我们在 pygame 2 中修复了这个问题。在某些 linux 系统上它不再需要 100% 的 CPU 内核。
python3 -m pip install pygame --upgrade
从 pygame 2.0.0 开始,在某些 linux 系统上从源代码安装 pygame 可能会更好。
干杯,
| 归档时间: |
|
| 查看次数: |
1301 次 |
| 最近记录: |