Fixed animations not displaying frames
This commit is contained in:
parent
d9ed8274f6
commit
ec300f13b3
2 changed files with 16 additions and 2 deletions
15
roc/anims.py
15
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:
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Add table
Reference in a new issue