Python Forum
spawning enemies in pygame
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
spawning enemies in pygame
#1
Hi, im making a simple game in pygame and i would like to spawn some enemies, but when i do that i get an error: 'TypeError: 'Group' object is not callable'. Could anyone please help me with this, i've been sitting on this quite a while and couldnt's find an answer, hopefully someone here will help. Here is my code:

import pygame
pygame.init()
win = pygame.display.set_mode((1000, 800))
pygame.display.set_caption("czapla-smolen studios")
pepe1 = pygame.image.load('PEPE.jpg')
tlo = pygame.image.load('tlo1.jpg')


x = 100
y = 120
kirszx = 90
kirszy = 90
pressed_right = 0
pressed_left = 0
pressed_up = 0
pressed_down = 0
width = 100
height = 120
vel = 3
screenwidth = 1000
screenheight = 800
kirszvel = 5


def player():
    win.blit(pepe1, (x, y))

class Enemy(pygame.sprite.Sprite):
    kirsz1 = pygame.image.load('kirsz.jpg')
    def __init__(self, x, y, img):
     pygame.sprite.Sprite.__init__(self)
     self.kirszx = kirszx
     self.kirszy = kirszy
     self.kirszvel = kirszvel


enemy_list = pygame.sprite.Group()
enemy  = Enemy(90,90,'kirsz.jpg')
Enemy = enemy_list
enemy_list.add(enemy)





run = True
while run:
    pygame.time.delay(0)

    win.fill ((0,0,0))
    win.blit(tlo,(0,0))


    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        keys = pygame.key.get_pressed()


        if keys[pygame.K_LEFT]:
            pressed_left = 1
            pressed_right = 2
            pressed_up = 2
            pressed_down = 2


        if keys[pygame.K_RIGHT]:
            pressed_right = 1
            pressed_up = 2
            pressed_down = 2
            pressed_left = 2

        if keys[pygame.K_UP]:
            pressed_up = 1
            pressed_down = 2
            pressed_left = 2
            pressed_right = 2

        if keys[pygame.K_DOWN]:
            pressed_down = 1
            pressed_left = 2
            pressed_right = 2
            pressed_up = 2

    if pressed_left == 1:
        x -= vel
    if pressed_right == 1:
        x += vel
    if pressed_up == 1:
        y -= vel
    if pressed_down == 1:
        y += vel

    if x <= 0:
        x = 0
    if x >= screenwidth - width:
        x = screenwidth - width
    if y <= 0:
        y = 0
    if y>= screenheight - height:
        y = screenheight - height

    player()
    Enemy()
    pygame.display.update()


pygame.quit()
Reply
#2
You have Enemy defined as enemy_list which is your sprite group, and so you can't spawn a group.

try something like this:
kirsz1 = pygame.image.load('kirsz.jpg')


class Enemy(pygame.sprite.Sprite):
    def __init__(self, x, y):
     pygame.sprite.Sprite.__init__(self)
     self.image = kirsz1
     self.image.get_rect()
    
enemy_list = pygame.sprite.Group()

enemy = Enemy()
enemy_list.add(enemy)
You can move it by changing the sprite's rect.x and rect.y.
Reply
#3
Also you can do this and fix code.
Sprite = pygame.sprite.Sprite
class Enemy(Sprite):
    def __init__(self, image, x, y, *groups):
        Sprite.__init__(self, *groups)
        self.image = image
        self.rect = image.get_rect(x=x, y=y)

images = {}
images['kirsz'] = pygame.image.load('kirsz.jpg').convert_alpha()
enemies = pygame.sprite.Group()
Enemy(images['kirsz'], 90, 90, enemies)
or
Sprite = pygame.sprite.Sprite
class Enemy(Sprite):
    def __init__(self, image, x, y):
        Sprite.__init__(self)
        self.image = image
        self.rect = image.get_rect(x=x, y=y)

images = {}
images['kirsz'] = pygame.image.load('kirsz.jpg').convert_alpha()
enemies = pygame.sprite.Group()
enemies.add(Enemy(images['kirsz'], 90, 90))
Then in main loop.
enemies.draw(win)
99 percent of computer problems exists between chair and keyboard.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  [PyGame] Timing the spawning enemies MichaelEssey 2 4,676 Aug-22-2020, 05:51 AM
Last Post: SheeppOSU
  [PyGame] Spawning platforms that don't touch michael1789 15 6,110 Jan-26-2020, 04:02 AM
Last Post: metulburr

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020