尝试编写游戏代码,但出现此错误。
AttributeError:“函数”对象没有属性“ 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:未定义名称“图像”
任何想法我可能做错了什么?谢谢
答案 0 :(得分:1)
您进行了from pygame import *
的操作,但不允许您致电例如自display.set_mode
和image.load
模块以来,也display
/ image
。
您的代码应如下所示:
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或类似的东西自动导入的。)