python - Python速成课程外星人入侵问题
问题描述
这是关于“Python Crash Course 2nd Edition”一书的。
在完成第 12 章中的“将船绘制到屏幕上”部分后,我得到了一个黑屏,而不是灰屏,当我运行 alien_invasion.py 时,我没有看到船出现。我已尝试为该步骤运行 Matthes 的可下载资源文件,但仍然出现黑屏。我正在从 Sublime 文本运行这些 .py 文件,但尝试使用终端运行它们(我收到缩进错误)和 python IDLE 运行它们(给我一个 pygame 模块未找到错误,尽管我知道 pygame 已安装并找到由崇高)。
以下是游戏代码,如果您有船图像,则不应在屏幕底部显示灰色背景和船:
import sys
import pygame
from settings import Settings
from ship import Ship
class AlienInvasion:
"""Overall class to manage game assets and behavior."""
def __init__(self):
"""Initialize the game, and create game resources."""
pygame.init()
self.settings = Settings()
self.screen = pygame.display.set_mode(
(self.settings.screen_width, self.settings.screen_height))
pygame.display.set_caption("Alien Invasion")
self.ship = Ship(self)
def run_game(self):
"""Start the main loop for the game."""
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# Redraw the screen during each pass through the loop.
self.screen.fill(self.settings.bg_color)
self.ship.blitme()
# Make the most recently drawn screen visible.
pygame.display.flip()
if __name__ == '__main__':
# Make a game instance, and run the game.
ai = AlienInvasion()
ai.run_game()
我使用的是 Mac OS 版本 10.14.6。
这个问题的任何解决方案,或者我应该编写/运行这些游戏模块的更好的实践或程序?
任何拥有已成功安装 pygame 和/或已经让 alien_invasion 工作的 Mac 的人?
对我的 reddit 帖子的一个回复说他们在 Mac OS 上遇到了类似的问题,但是当他们在 linux 上尝试时它运行良好......
除了在单独的分区上安装 linux 或其他什么东西,Mac 用户还有其他选择吗?
谢谢你的帮助!
解决方案
在 Eric Matthes 的 github 上找到了解决方案。Uff da,pygame 在 python 3.8.2 上还不稳定......我需要安装 pygame 的开发版本才能在 python 3.8.2 上运行。
来自 Eric 的 github:
Pygame 的稳定版本尚未更新为与 Python 3.8 一起使用。但是,最近有一个适用于 Python 3.8 的开发版本。要安装它,请运行以下命令:
$ python -m pip install pygame==2.0.0.dev6
您应该使用与在系统上运行 Python 终端会话相同的命令,可能是 python、python3、py、python3.8 或其他。
如果您在 macOS 上运行 Pygame 时遇到任何问题,这个版本的 Pygame 也应该能解决这些问题。
推荐阅读
- rust - 在 Rust 中实现计算图
- sqlalchemy - 将气流的 sql_alchemy_conn_cmd(在气流.cfg 中)与 AWS IAM 数据库身份验证相结合
- react-native - 在 React Native(Expo)和 Amplify 中不活动后无法注销用户
- java - 通过命令行在终端中运行java程序
- bash - 如何重新启动所有 docker 容器并在每次重新启动之间暂停?
- servlets - web.xml 页面找不到主页欢迎文件
- java - Java 11`HttpClient`下载但没有?(负内容长度)
- python - 使用带有重新声明命名空间的 python ElementTree 从 xml 中查找命名空间
- linux - 在附加到 tee 的重定向中获取嵌套命令的退出状态
- python - 结束我的秘密文字游戏并在 Python 中输出用户猜测数