我的游戏发射了一颗子弹,但问题是你不能射出比你投入的数量更多的子弹(imageA、imageB、imageC 等......)所以,我必须写大约 30 次“blit blah blah imageA”为每一位玩家的每一把枪。这很烦人。
有没有办法根据角色射出多少子弹来产生代码,然后产生一个代码来对它进行blit?然后,当它离开屏幕时,我可以删除该新代码。(我只是想知道如何删除,而不是当它离开屏幕时如何让它这样做,我知道。)
我相信您以错误的方式解决问题。假设你有一个玩家,他有一把枪。所以我们的玩家类部分看起来像这样:
class Player
def __init__(self):
self.position = [0,0]
self.bullets = []
我们还需要一个子弹类,它也会有一个位置。现在,例如,每次玩家按空格键时,您都会在列表中添加一个新项目符号。
def shoot(self):
self.bullets += Bullet(self.position)
然后,在 while 循环中,在您绘制玩家的地方,您还需要执行一次 foreach 来绘制子弹。无需为每个子弹命名,甚至可以拥有自己的图片。