AttributeError: у объекта 'function' нет атрибута 'set_mode' - PullRequest
0 голосов
/ 17 декабря 2018

Попытка кодировать игру, но получить эту ошибку.

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: имя 'image' не определено

Есть идеи, что я могу делать не так?Спасибо

1 Ответ

0 голосов
/ 17 декабря 2018

Вы делаете 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 или что-то вроде этого).

...