def main():
screen = pygame.display.set_mode((675, 480))
pygame.display.set_caption("Space Invaders")
background = pygame.Surface(screen.get_size())
background.fill((0, 0, 0))
allSprites = pygame.sprite.Group()
for j in range(0, 5):
for i in range(0, 10):
invader1 = Invader1(screen, (0, 0))
invader1.x += 75
invader1.add(allSprites)
invader1.y += 75
我正在尝试为一个项目创建一个太空入侵者游戏,但我对for循环有点麻烦,我想创建10个敌人的实例,而不必输入每个,我知道for循环是答案,我只是不知道如何初始化它。我想在(0,0)处开始第一个敌人,并在x轴上移动每个敌人75个空格,在创建10个敌人后,在y轴上向下移动75个空格并重复该过程。有谁知道我会如何实现这一目标?提前致谢
答案 0 :(得分:6)
使用带有step
参数的范围。
In [4]: range(0, 75 * 5, 75)
Out[4]: [0, 75, 150, 225, 300]
allSprites = pygame.sprite.Group()
for y in range(0, 75 * 5, 75):
for x in range(0, 75 * 10, 75):
Invader1(screen, (x, y)).add(allSprites)
答案 1 :(得分:0)
如果您使用嵌套列表理解
,您可以在一行中获得Pavel的答案invaders = [ Invader1(screen, (x, y)) for x in range(0, 750, 75) for y in range(0, 325, 75) ]
答案 2 :(得分:0)
将您的代码更改为:
def main():
screen = pygame.display.set_mode((675, 480))
pygame.display.set_caption("Space Invaders")
background = pygame.Surface(screen.get_size())
background.fill((0, 0, 0))
allSprites = pygame.sprite.Group()
for j in range(0, 5):
for i in range(0, 10):
invader1 = Invader1(screen, (75*i,75*j ))
invader1.add(allSprites)
答案 3 :(得分:0)
invader_list = []
for y in range(n):
for x in range(10):
invader_list.append(Invader(x * w, y * h))
1)创建一个列表来存储对象
2)进行一次for循环迭代n次(行数)
3)使嵌套for循环迭代10次(colums数)
4)在两个for循环中,使用x * w和y * h
创建Invader对象