diff --git a/roc/anims.py b/roc/anims.py index 8c1f984..c7f1a05 100644 --- a/roc/anims.py +++ b/roc/anims.py @@ -19,6 +19,8 @@ class anim(object): while self.frame_timer <= 0: self.dirty = True self.frame += 1 + if len(self.frameset.frames) > 2: + print("Updating frame on %s to %s" % (self.frameset.frames[0].id, self.frame)) if self.frame >= len(self.frameset.frames): if self.repeats == None: "repeats == None means repeat forever" @@ -47,6 +49,7 @@ class anim(object): class anim_frameset(object): def __init__(self, first_img, delay): self.frames = [] + self.sprite = None self.load_frames(first_img) self.cached_surface = None @@ -60,6 +63,7 @@ class anim_frameset(object): self.frames = [] ifn = ifn[:-1] + fnpath, fnbase = os.path.split(ifn) padlen = 0 while ifn[-1] == '0': ifn = ifn[:-1] @@ -69,11 +73,16 @@ class anim_frameset(object): def padnum(n, l): return (("0" * max(0,l-len(str(n))+1)) + str(n)) while True: + fnnum = fnbase + padnum(i, padlen) iff = ifn + padnum(i, padlen) + ife if files.mgr.exists(iff): #LOAD - mdl = models.mgr.create_sprite(fnn, iff) + mdl = models.mgr.create_sprite(fnnum, iff) self.frames.append(mdl) + if self.sprite == None: + self.sprite = models.Model() + self.sprite.id = fnbase + self.sprite.add_sprite_layer(iff) #self.frames += [files.mgr.png(iff)] else: break @@ -82,6 +91,7 @@ class anim_frameset(object): #LOAD mdl = models.mgr.create_sprite(fnn, iff) self.frames.append(mdl) + self.sprite = mdl #self.frames = [files.mgr.png(ifn + ife)] if not self.frames: @@ -102,7 +112,8 @@ class anim_frameset(object): def draw(self, frame): - self.frames[frame].render() + self.sprite.layers[0].material = self.frames[frame].layers[0].material + self.sprite.render() """ def draw(self, scr, pos, frame): if scr != self.cached_surface: diff --git a/roc/models.py b/roc/models.py index 3753de9..ffd2fa6 100755 --- a/roc/models.py +++ b/roc/models.py @@ -37,6 +37,7 @@ class Model_Manager(object): model = Model() + model.id = name #model.layers = [rl] model.add_sprite_layer(path, centered, antialias) self.models[name] = model @@ -130,6 +131,7 @@ class Model_Manager(object): for modeldata in mdldata.model: model = Model() + model.id = modeldata['id'] model.load(modeldata) mgr.models[modeldata['id']] = model @@ -454,6 +456,7 @@ class ParticleLayer(RenderLayer): class Model(object): def __init__(self): self.layers = [] + self.id = None def get_size(self):