为什么我的程序在启动后不起作用?
Why my program doesn't work after launch?
我想添加无尽的云,但是我的程序不能运行,怎么回事?
class Cloud(pygame.sprite.Sprite):
def __init__(self):
super(Cloud, self).__init__()
self.image = clouds_jpg
self.image.set_colorkey(WHITE1)
self.rect = self.image.get_rect()
self.rect.centerx = random.randint(0, WIDTH)
self.rect.centery = random.randint(HEIGHT - 550, HEIGHT)
def update(self):
self.rect.move_ip(-2, 0)
if self.rect.right <= 0:
self.rect.left = screen.get_width()
all_sprites = pygame.sprite.Group()
player = Player()
cloud = Cloud()
all_sprites.add(player, cloud)
...
elif event.type == ADDCLOUD:
new_cloud = Cloud()
cloud.add(new_cloud)
all_sprites.add(new_cloud)
错误:
Traceback (most recent call last): File "C:\Users\дом\My
project1.py", line 117, in
cloud.add(new_cloud) File "C:\Users\дом\AppData\Local\Programs\Python\Python36\lib\site-packages\pygame\sprite.py",
line 133, in add
self.add(*group) TypeError: add() argument after * must be an iterable, not Cloud
cloud
是一个 pygame.sprite.Sprite
. You only can add a pygame.sprite.Sprite
object toto a pygame.sprite_Group
:
clouds = pygame.sprite.Group()
elif event.type == ADDCLOUD:
new_cloud = Cloud()
# cloud.add(new_cloud)
clouds.add(new_cloud)
all_sprites.add(new_cloud)
我想添加无尽的云,但是我的程序不能运行,怎么回事?
class Cloud(pygame.sprite.Sprite):
def __init__(self):
super(Cloud, self).__init__()
self.image = clouds_jpg
self.image.set_colorkey(WHITE1)
self.rect = self.image.get_rect()
self.rect.centerx = random.randint(0, WIDTH)
self.rect.centery = random.randint(HEIGHT - 550, HEIGHT)
def update(self):
self.rect.move_ip(-2, 0)
if self.rect.right <= 0:
self.rect.left = screen.get_width()
all_sprites = pygame.sprite.Group()
player = Player()
cloud = Cloud()
all_sprites.add(player, cloud)
...
elif event.type == ADDCLOUD:
new_cloud = Cloud()
cloud.add(new_cloud)
all_sprites.add(new_cloud)
错误:
Traceback (most recent call last): File "C:\Users\дом\My project1.py", line 117, in cloud.add(new_cloud) File "C:\Users\дом\AppData\Local\Programs\Python\Python36\lib\site-packages\pygame\sprite.py", line 133, in add self.add(*group) TypeError: add() argument after * must be an iterable, not Cloud
cloud
是一个 pygame.sprite.Sprite
. You only can add a pygame.sprite.Sprite
object toto a pygame.sprite_Group
:
clouds = pygame.sprite.Group()
elif event.type == ADDCLOUD:
new_cloud = Cloud()
# cloud.add(new_cloud)
clouds.add(new_cloud)
all_sprites.add(new_cloud)