Question

I can call my class only one time. My code is:

class fish:
    def __init__(self, x, y, image, speed):
        self.x = x
        self.y = y
        self.image = image
        self.speed = speed
    def be(self):
        screen.blit(self.image, (self.x, self.y))
        self.x -= self.speed
        if boot.x+36 > self.x and boot.x < self.x+5:
            if boot.y+34 > self.y and boot.y < self.y+5:
                boot.live -= 1
                boot.x = 100
                boot.y = 460
fishes = []
fishes.append(fish(900, 300, fish_1, 1))

And when I call 'fish' object inside or outside the game loop(fishes.append(fish(900, 300, fish_1, 1)) I got Error:

TypeError: 'fish' object is not callable
Was it helpful?

Solution

My first guess is that you have a fish variable somewhere down in your code. Rename the class to Fish as well as the constructor call to Fish(900, 300, fish_1, 1) and it should be fine.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top