python - AttributeError: 'function' 对象没有属性 'set_mode'
问题描述
尝试编写游戏代码但收到此错误。
AttributeError: 'function' 对象没有属性 'set_mode'
from pygame import *
import sys
from os.path import abspath, dirname
from random import randint, choice
from IPython.core.display import display
SCREEN = display.set_mode((800, 600))
FONT = FONT_PATH + 'space_invaders.ttf'
IMG_NAMES = ['ship', 'mystery',
'enemy1_1', 'enemy1_2',
'enemy2_1', 'enemy2_2',
'enemy3_1', 'enemy3_2',
'explosionblue', 'explosiongreen', 'explosionpurple',
'laser', 'enemylaser']
IMAGES = {name: image.load(IMAGE_PATH + '{}.png'.format(name)).convert_alpha()
for name in IMG_NAMES}
还,
NameError:名称“图像”未定义
有什么想法我可能做错了吗?谢谢
解决方案
您这样做from pygame import *
了,但这也不允许您调用 eg display.set_mode
/ image.load
sincedisplay
和image
modules。
您的代码应如下所示:
import pygame
import sys
from os.path import abspath, dirname
from random import randint, choice
SCREEN = pygame.display.set_mode((800, 600))
FONT = FONT_PATH + 'space_invaders.ttf'
IMG_NAMES = ['ship', 'mystery',
'enemy1_1', 'enemy1_2',
'enemy2_1', 'enemy2_2',
'enemy3_1', 'enemy3_2',
'explosionblue', 'explosiongreen', 'explosionpurple',
'laser', 'enemylaser']
IMAGES = {name: pygame.image.load(IMAGE_PATH + '{}.png'.format(name)).convert_alpha()
for name in IMG_NAMES}
一般来说,你应该避免像from pygame import *
.
(我猜from IPython.core.display import display
是从您的 IDE 自动导入或类似的东西)。
推荐阅读
- javascript - Axios / Nuxt“证书已过期”仅在直接打开页面时,而不是来自另一个页面的链接
- c# - 用于 Web API 的 AzureAD 身份提供程序身份验证,以通过初始请求重定向回 API
- flutter - 导入 js.dart 和 html.dart 用于混合 Web/移动端 Flutter 项目
- java - IntelliJ:无法更改 Java 版本
- reactjs - 为什么我的 React 项目在不再存在的文件中报告错误?
- python - Cassandra Json在python中解析
- single-sign-on - SAML2 中的“不安全网站”错误从 SP 重定向到 IdP。仅在 MS Edge 中
- android - 强制一些照片进入画廊供用户选择
- git - R Studio 1.3.959 上的 Github 2.15。推送到存储库时出现错误消息。麦克大苏尔 11.6
- vim - 为新的编程语言创建语法检查器 vim 插件