Помогите исправить код. Ошибка "enemy" object is not callable

#0.0.1v

import pygame
from os import path
import random

pygame.init()
win = pygame.display.set_mode((500,500))

pygame.display.set_caption('Cubes Game')

walkRight = [pygame.image.load('pygame_right_1.png'), pygame.image.load('pygame_right_2.png'), pygame.image.load('pygame_right_3.png'), pygame.image.load('pygame_right_4.png'), pygame.image.load('pygame_right_5.png'), pygame.image.load('pygame_right_6.png')]

walkLeft = [pygame.image.load('pygame_left_1.png'), pygame.image.load('pygame_left_2.png'), pygame.image.load('pygame_left_3.png'), pygame.image.load('pygame_left_4.png'), pygame.image.load('pygame_left_5.png'), pygame.image.load('pygame_left_6.png')]

bg = pygame.image.load('pygame_bg.jpg')
playerStand = pygame.image.load('pygame_idle.png')

clock = pygame.time.Clock()
x = 50
y = 425
widht = 60
height = 71
speed = 5
isJump = False
jumpCount = 10
lastMove = "right"
left = False
right = False
animCount = 0
x_enemy = 495
y_enemy = 495
speedy = 3
widht_enemy = 40
height_enemy = 60

class enemy(): #error enemy object is not callable
    def __init__(self, x_enemy, y_enemy, color_enemy, facing, widht_enemy, height_enemy):
        self.facing = facing
        self.x_enemy = x_enemy
        self.widht_enemy = widht_enemy
        self.y_enemy = y_enemy
        self.height_enemy = height_enemy

        self.speedy = 3
        self.color_enemy = color_enemy
    def draw(self, win, widht_enemy, height_enemy):
        pygame.draw.rect(win, self.color_enemy, (self.x_enemy, self.y_enemy, self.widht_enemy, self.height_enemy))



class snaryad():
    def __init__(self, x, y, radius, color, facing):
        self.x = x
        self.y = y 
        self.radius = radius
        self.color = color
        self.facing = facing
        self.vel = 8 * facing
    def draw(self, win):
        pygame.draw.circle(win, self.color, (self.x, self.y), self.radius)





pygame.mixer.music.load(path.join(r'D:\Python\sprites\dist', 'sound.mp3'))
pygame.mixer.music.set_volume(0.4)




def drawWindow():
    global animCount
    win.blit(bg, (0, 0))

    if animCount + 1 >= 30:
        animCount = 0
    if left:
        win.blit(walkLeft[animCount // 5], (x, y))
        animCount+=1
    elif right:
        win.blit(walkRight[animCount // 5], (x, y))
        animCount+=1
    else:
        win.blit(playerStand, (x, y))
    for bullet in bullets:
        bullet.draw(win)
    for enemy in enemies:
        enemy.draw(win, 40, 60)


    pygame.display.update()

run = True
bullets = []
enemies = []
pygame.mixer.music.play(loops=-1)
while run:

    clock.tick(30)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    for enemy in enemies:
        if x_enemy < 500 and x_enemy > 0:
            x_enemy -= speedy
        else:
            enemies.pop(enemies.index(enemy))

    if lastMove == "right":
        facing = 1
    else:
        facing = -1

    if len(enemies) < 5:
        enemies.append(enemy(round(495), round(495),(255, 0, 0),facing , widht_enemy, height_enemy)) #что-то здесь не так



    for bullet in bullets:
        if bullet.x < 500 and bullet.x > 0:
            bullet.x += bullet.vel
        else:
            bullets.pop(bullets.index(bullet))

    keys = pygame.key.get_pressed()



    if keys[pygame.K_w]:
        if lastMove == "right":
            facing = 1
        else:
            facing = -1

        if len(bullets) < 5:
            bullets.append(snaryad(round(x + widht // 2), round(y + height // 2), 5, (255, 0, 0), facing))



    if keys[pygame.K_a] and x > 5:
        x -= speed
        left = True
        right = False
        lastMove = "left"
    elif keys[pygame.K_d] and x < 500 - widht - 5:
        x += speed
        left = False
        right = True
        lastMove = "right"
    else:
        left = False
        right = False
        animCount = 0
    if not(isJump):
        if keys[pygame.K_SPACE]:
            isJump = True
    else:
        if jumpCount >= -10:
            if jumpCount < 0:
                y += (jumpCount ** 2) / 2
            else:
                y -= (jumpCount ** 2) / 2
            jumpCount -= 1
        else:
            isJump = False
            jumpCount = 10
    drawWindow()



pygame.quit()

Ответы (2 шт):

Автор решения: Victor VosMottor thanks Monica
# 0.0.1v

import pygame
from os import path
import random

pygame.init()
win = pygame.display.set_mode((500, 500))

pygame.display.set_caption('Cubes Game')

walkRight = [pygame.image.load('pygame_right_1.png'), pygame.image.load('pygame_right_2.png'), pygame.image.load(
    'pygame_right_3.png'), pygame.image.load('pygame_right_4.png'), pygame.image.load('pygame_right_5.png'), pygame.image.load('pygame_right_6.png')]

walkLeft = [pygame.image.load('pygame_left_1.png'), pygame.image.load('pygame_left_2.png'), pygame.image.load(
    'pygame_left_3.png'), pygame.image.load('pygame_left_4.png'), pygame.image.load('pygame_left_5.png'), pygame.image.load('pygame_left_6.png')]

bg = pygame.image.load('pygame_bg.jpg')
playerStand = pygame.image.load('pygame_idle.png')

clock = pygame.time.Clock()
x = 50
y = 425
widht = 60
height = 71
speed = 5
isJump = False
jumpCount = 10
lastMove = "right"
left = False
right = False
animCount = 0
x_enemy = 495
y_enemy = 495
speedy = 3
widht_enemy = 40
height_enemy = 60


class Enemy():
    def __init__(self, x_enemy, y_enemy, color_enemy, facing, widht_enemy, height_enemy):
        self.facing = facing
        self.x_enemy = x_enemy
        self.widht_enemy = widht_enemy
        self.y_enemy = y_enemy
        self.height_enemy = height_enemy

        self.speedy = 3
        self.color_enemy = color_enemy

    def draw(self, win, widht_enemy, height_enemy):
        pygame.draw.rect(win, self.color_enemy, (self.x_enemy,
                                                 self.y_enemy, self.widht_enemy, self.height_enemy))


class snaryad():
    def __init__(self, x, y, radius, color, facing):
        self.x = x
        self.y = y
        self.radius = radius
        self.color = color
        self.facing = facing
        self.vel = 8 * facing

    def draw(self, win):
        pygame.draw.circle(win, self.color, (self.x, self.y), self.radius)


pygame.mixer.music.load(path.join(r'D:\Python\sprites\dist', 'sound.mp3'))
pygame.mixer.music.set_volume(0.4)


def drawWindow():
    global animCount
    win.blit(bg, (0, 0))

    if animCount + 1 >= 30:
        animCount = 0
    if left:
        win.blit(walkLeft[animCount // 5], (x, y))
        animCount += 1
    elif right:
        win.blit(walkRight[animCount // 5], (x, y))
        animCount += 1
    else:
        win.blit(playerStand, (x, y))
    for bullet in bullets:
        bullet.draw(win)
    for enemy in enemies:
        enemy.draw(win, 40, 60)

    pygame.display.update()


run = True
bullets = []
enemies = []
pygame.mixer.music.play(loops=-1)
while run:

    clock.tick(30)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    for enemy in enemies:
        if x_enemy < 500 and x_enemy > 0:
            x_enemy -= speedy
        else:
            enemies.pop(enemies.index(enemy))

    if lastMove == "right":
        facing = 1
    else:
        facing = -1

    if len(enemies) < 5:
        enemies.append(Enemy(round(495), round(495), (255, 0, 0),
                             facing, widht_enemy, height_enemy))

    for bullet in bullets:
        if bullet.x < 500 and bullet.x > 0:
            bullet.x += bullet.vel
        else:
            bullets.pop(bullets.index(bullet))

    keys = pygame.key.get_pressed()

    if keys[pygame.K_w]:
        if lastMove == "right":
            facing = 1
        else:
            facing = -1

        if len(bullets) < 5:
            bullets.append(snaryad(round(x + widht // 2),
                                   round(y + height // 2), 5, (255, 0, 0), facing))

    if keys[pygame.K_a] and x > 5:
        x -= speed
        left = True
        right = False
        lastMove = "left"
    elif keys[pygame.K_d] and x < 500 - widht - 5:
        x += speed
        left = False
        right = True
        lastMove = "right"
    else:
        left = False
        right = False
        animCount = 0
    if not(isJump):
        if keys[pygame.K_SPACE]:
            isJump = True
    else:
        if jumpCount >= -10:
            if jumpCount < 0:
                y += (jumpCount ** 2) / 2
            else:
                y -= (jumpCount ** 2) / 2
            jumpCount -= 1
        else:
            isJump = False
            jumpCount = 10
    drawWindow()


pygame.quit()

→ Ссылка
Автор решения: vad13irt

Так как ты не создал экземпляр класса Enemy.

enemy = Enemy(*args, **kwargs)
→ Ссылка