Python 复制精灵
我在添加新精灵时遇到问题。我正在寻找以下线索:Python 复制精灵,python,pygame,Python,Pygame,我在添加新精灵时遇到问题。我正在寻找以下线索: def duplicate(sprites): for d in sprites: if d.energy >= d.max_energy * 0.9: d.energy = d.energy / 2 new_d = d.duplicate() 因此,如果一个精灵的“能量”超过其“最大能量”的90%,它的能量将减少一半,现在会有第二个精灵与第一个相同。但是我不知道如何实
def duplicate(sprites):
for d in sprites:
if d.energy >= d.max_energy * 0.9:
d.energy = d.energy / 2
new_d = d.duplicate()
因此,如果一个精灵的“能量”超过其“最大能量”的90%,它的能量将减少一半,现在会有第二个精灵与第一个相同。但是我不知道如何实现这一点。一般来说,您需要实现
复制
方法,并在该方法中构造Sprite对象的新实例
另一个解决方案是使用Python模块deepcopy
可以创建对象的深度副本。不幸的是,这不能用于对象,因为图像
属性是一个无法深入复制的属性。因此,精灵的deepcopy
将导致错误。除非您没有任何其他需要深入复制的属性,否则您可以对精灵进行浅复制。
rect
属性是一个对象。精灵的副本需要自己的矩形,因此必须生成一个新的矩形实例。幸运的是,pygame.Rect
对象可以通过以下方式复制:
new\u d=copy.copy(d)
new_d.rect=d.rect.copy()
import copy