我想爲my_list
的每個項目調用draw
和move
方法。我試過my_objects.draw()
和my_objects.move()
而不是i.draw()
和i.move()
,但我總是得到相同的錯誤。這裏是我的代碼:Python - Pygame AttributeError:int object has no attribute'draw'
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()
以下是錯誤:
Traceback (most recent call last):
line 53, in <module>
number.draw()
AttributeError: 'int' object has no attribute 'draw'
檢查壓痕請,但我看來,'當你在做range'爲'數number'創建和數量是這樣 – Y0da