Pygame Zero:无需重复定义Actor对象,如何绘制多个实例?
解决方案
当然可以,核心思路是用列表来管理所有炸弹实例,不用给每个炸弹单独定义变量名,每次新增炸弹就创建一个新的Actor("bomb")实例并加入列表即可。
具体做法如下:
- 先初始化一个空列表,用来存放所有炸弹实例:
bombs = [] # 先添加第一个炸弹到列表里 bombs.append(Actor("bomb", pos=(100, 100))) # pos可自定义初始位置
- 在绘制函数里,遍历列表逐个绘制每个炸弹:
def draw(): screen.clear() # 遍历所有炸弹实例,调用draw方法 for bomb in bombs: bomb.draw()
- 当需要新增炸弹时(比如按下空格键触发),直接创建新的Actor实例并加入列表:
def on_key_down(key): if key == keys.SPACE: # 比如在当前鼠标位置生成新炸弹 bombs.append(Actor("bomb", pos=mouse.pos))
这样就不用反复定义类似bomb1、bomb2这种单独变量,所有炸弹都在列表里统一管理,屏幕上能同时显示多个独立的炸弹实例,新增的时候也不会影响已有的炸弹。
内容的提问来源于stack exchange,提问作者Mate Salanki
相关产品推荐
相关产品推荐

