Ich möchte die draw
und move
Methoden für jeden Artikel von my_list
aufrufen. Ich versuchte my_objects.draw()
und my_objects.move()
anstelle von i.draw()
und i.move()
, aber ich bekomme immer den gleichen Fehler. Hier ist mein Code:Python - Pygame AttributeError: int Objekt hat kein Attribut 'zeichnen'
import pygame
import random
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)
class Rectangle():
def __init__(self):
self.x = random.randrange(0, 700)
self.y = random.randrange(0, 500)
self.height = random.randrange(20, 70)
self.width = random.randrange(20, 70)
self.change_x = random.randrange(-3, 3)
self.change_y = random.randrange(-3, 3)
def move(self):
self.x += self.change_x
self.y += self.change_y
def draw(self):
pygame.draw.rect(screen, GREEN, [self.x, self.y, self.width, self.height])
my_list = []
for number in range(10):
my_object = Rectangle()
my_list.append(my_object)
pygame.init()
screen = pygame.display.set_mode((700, 500))
done = False
clock = pygame.time.Clock()
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
screen.fill(BLACK)
for i in range(len(my_list)):
number.draw()
number.move()
pygame.display.flip()
clock.tick(60)
pygame.quit()
Hier wird der Fehler:
Traceback (most recent call last):
line 53, in <module>
number.draw()
AttributeError: 'int' object has no attribute 'draw'
Überprüfen Sie die Einbuchtung bitte, aber ich scheint, dass 'number' erstellt, wenn Sie tun' für Nummer in range' und dies erklärt den Fehler als Zahl ein int ist, indem Sie diese – Y0da