PyGame如何同时移动多个精灵?

2024-04-30 03:11:28 发布

您现在位置:Python中文网/ 问答频道 /正文

使用PyGame,我在太空入侵者风格的游戏中为外星人创建了一个精灵小组。在

我的问题是如何让外星人同时移动?外星人的每个实例都存储在一个列表中。在


Tags: 实例游戏列表风格小组太空pygame精灵
2条回答

好吧,假设你有外星人在列表中的位置,你可以使用map函数:

aliens = [[0,0],[5,9],[5,2]] # Three aliens in list, these are their X,Y coords.

def move_alien_right(alien):
    alien[0] += 1
    return alien

aliens = list(map(move_alien_right,aliens))

print(aliens)

map函数非常快,因此如果你有大量的外星人,它应该可以很好地工作。在

谢谢:)

用小步移动列表中的每一个外星人。从那以后你从头开始。如果你将在循环(主循环)中重复它,那么看起来就像所有外星人同时移动一样。在

# mainloop

while True:

   # events
   # ....

   # updates

   for aline in aliens_group:
       alien.rect.x += 1 # small move
       # or 
       alien.update() # function have to do small move

   # draws
   # ...

顺便说一句:如果外星人有update()的功能,而你将外星人保存在pygame.sprite.Group中,那么你只需要group.update()

^{pr2}$

相关问题 更多 >