在pygame中声明一个空的表面变量?

时间:2016-09-04 15:54:56

标签: python variables pygame surface

我试图制作一个pygame zelda_like,它可以设置随机房间和敌人。 首先,我为每个房间打了相同的Enemy_Class,但发现它修改了整个敌人。所以我调用了函数copy.deepcopy()。因为我在Enemy_Class中声明了精灵,所以它不会起作用,所以我尝试了这个:

class Enemy(pygame.sprite.Sprite):

def __init__(self, img_list):

    self.animation = 0
    self.img_ref = 'img_list'

    self.animation_list =  []
    self.img = []
    self.ig = []
    self.rect = []
    self.mask = []

这样复制:

room_number[i].enemy1 = copy.deepcopy(enemy_list[n])
lazy_loading(room_number[i].enemy1)

Enemy_list [x]从Enemy_Class返回一个孩子。 然后lazy_loading函数应该填满所有:

def lazy_loading(sprite):
    sprite.animation_list = get_lazy_loading(sprite)
    sprite.img = sprite.animation_list[sprite.animation]
    sprite.ig = pygame.transform.scale(sprite.img, (x, y))
    sprite.rect = sprite.ig.get_rect()
    sprite.mask = pygame.mask.from_surface(sprite.ig, 127)

get_lazy_loading返回曲面列表。 问题是self.img被认为是NoneType而python并不真的希望它成为一个表面...

所以问题是,在我进一步徒劳之前:有没有办法让它接受表面,或者我应该找到一种更好的方式以懒惰的方式加载它?非常感谢你。

编辑*:我得到的错误如下:

sprite.img = sprite.animation_list[sprite.animation]
TypeError: 'NoneType' object is not subscriptable

0 个答案:

没有答案