не работает код, TypeError: 'Tree' object is not callable
Хочу сделать так, чтобы объект класса Tree создавал подобного себе спрайта, но не вызывается функция Tree.plant
import random
import pygame
GREEN = (0, 255, 0)
Yellow = (239, 211, 52)
RED = (255, 0, 0)
widht = 11
height = 11
FPS = 40
# создание спрайтов
class Tree():
def __init__(self, x, y):
pygame.sprite.Sprite.__init__(self)
x = random.randrange(1, 1200)
y = random.randrange(1, 900)
self.image = pygame.Surface((widht, height))
self.image.fill(GREEN)
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y
self.G = random.randint(10, 100)
def draw(self, win):
pygame.draw.rect(win, self.color, (self.rect.x, self.rect.y, widht, self.height))
def update(self):
self.G += 100
def plant(self):
tree = Tree(self.rect.x + 1, self.rect.y + 1)
all_sprites.add(tree)
# Создаем игру и окно
pygame.init()
pygame.mixer.init()
win = pygame.display.set_mode((1200, 900))
pygame.display.set_caption("Evolucion")
clock = pygame.time.Clock()
all_sprites = pygame.sprite.Group()
trees = pygame.sprite.Group()
# создание команды, для генерации объектов класса Tree
def spawnt():
tree = Tree(random.randrange(1, 1200), random.randrange(1, 900))
all_sprites.add_internal(tree)
trees.add_internal(tree)
# создание цикла игры
run = True
while run:
pygame.time.delay(50)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
# генерация объектов Tree с помощью пробела
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE:
spawnt()
# генерация объектов Tree другими объектами Tree
for Tree in trees:
if Tree.G > 150:
Tree.plant()
elif Tree.G == 0:
Tree.pop(trees.index(Tree))
all_sprites.update()