Ошибка "local variable referenced before assigment"
Возникла проблема с кодом. Пожалуйста, укажите на ошибки, если таковые имеются.
import pygame
pygame.init()
display_w = 800
display_h = 600
display = pygame.display.set_mode((display_w, display_h))
pygame.display.set_caption('softgame')
logo = pygame.image.load('icon.png')
pygame.display.set_icon(logo)
class Enemy:
def _init_(self, x, y, width, height, speed):
self.x = x
self.y = y
self.width = width
self.height = height
self.speed = speed
def move(self):
if self.x >= -self.width:
pygame.draw.rect(display, (150,20,200), (self.x, self.y,self.width, self.height))
self.x -= self.speed
else:
self.x = display_w - 50
pers_width = 60
pers_height = 100
enemy_width = 20
enemy_height = 70
make_jump = False
dy = 20
pers_x = display_w // 4
pers_y = display_h - 100 - pers_height
enemy_x = display_w - 20
enemy_y = display_h - enemy_height - 100
run = False
xd = 20
def rungame():
global make_jump, make_up
game = True
enemies = []
create_enemies(enemies)
def create_enemies(enemies):
enemies.append(Enemy(display_w + 50, display_h - 170, 20, 70, 4))
def draw_enemies(enemies):
for x in enemies:
x.move()
global make_jump
def jump():
global pers_y, make_jump, dy
if dy >= -20:
pers_y -= dy
dy -= 1
else:
dy = 20
make_jump = False
game = True
while game:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit
quit()
keys = pygame.key.get_pressed()
if keys[pygame.K_SPACE]:
make_jump = True
if make_jump:
jump()
display.fill((245,245,245))
draw_enemies(enemies)
pygame.draw.rect(display,(251,186,0),(pers_x, pers_y, pers_width, pers_height))
pygame.draw.rect(display,(36,0,255),(enemy_x, enemy_y, enemy_width, enemy_height))
pygame.display.update()
pygame.time.Clock().tick(60)
rungame()
Ответы (1 шт):
Автор решения: Danis
→ Ссылка
в rungame вы вызываете create_enemies и только потом создаёте её. Чтобы исправить это поменяйте местами вызов и создание функции
Создать объект Enemy не получится, потому что надо писать __init__, а не _init_.