Fixed animations not displaying frames

This commit is contained in:
cecilkorik 2017-09-21 17:44:44 -04:00
parent d9ed8274f6
commit ec300f13b3
2 changed files with 16 additions and 2 deletions

View file

@ -19,6 +19,8 @@ class anim(object):
while self.frame_timer <= 0: while self.frame_timer <= 0:
self.dirty = True self.dirty = True
self.frame += 1 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.frame >= len(self.frameset.frames):
if self.repeats == None: if self.repeats == None:
"repeats == None means repeat forever" "repeats == None means repeat forever"
@ -47,6 +49,7 @@ class anim(object):
class anim_frameset(object): class anim_frameset(object):
def __init__(self, first_img, delay): def __init__(self, first_img, delay):
self.frames = [] self.frames = []
self.sprite = None
self.load_frames(first_img) self.load_frames(first_img)
self.cached_surface = None self.cached_surface = None
@ -60,6 +63,7 @@ class anim_frameset(object):
self.frames = [] self.frames = []
ifn = ifn[:-1] ifn = ifn[:-1]
fnpath, fnbase = os.path.split(ifn)
padlen = 0 padlen = 0
while ifn[-1] == '0': while ifn[-1] == '0':
ifn = ifn[:-1] ifn = ifn[:-1]
@ -69,11 +73,16 @@ class anim_frameset(object):
def padnum(n, l): def padnum(n, l):
return (("0" * max(0,l-len(str(n))+1)) + str(n)) return (("0" * max(0,l-len(str(n))+1)) + str(n))
while True: while True:
fnnum = fnbase + padnum(i, padlen)
iff = ifn + padnum(i, padlen) + ife iff = ifn + padnum(i, padlen) + ife
if files.mgr.exists(iff): if files.mgr.exists(iff):
#LOAD #LOAD
mdl = models.mgr.create_sprite(fnn, iff) mdl = models.mgr.create_sprite(fnnum, iff)
self.frames.append(mdl) 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)] #self.frames += [files.mgr.png(iff)]
else: else:
break break
@ -82,6 +91,7 @@ class anim_frameset(object):
#LOAD #LOAD
mdl = models.mgr.create_sprite(fnn, iff) mdl = models.mgr.create_sprite(fnn, iff)
self.frames.append(mdl) self.frames.append(mdl)
self.sprite = mdl
#self.frames = [files.mgr.png(ifn + ife)] #self.frames = [files.mgr.png(ifn + ife)]
if not self.frames: if not self.frames:
@ -102,7 +112,8 @@ class anim_frameset(object):
def draw(self, frame): 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): def draw(self, scr, pos, frame):
if scr != self.cached_surface: if scr != self.cached_surface:

View file

@ -37,6 +37,7 @@ class Model_Manager(object):
model = Model() model = Model()
model.id = name
#model.layers = [rl] #model.layers = [rl]
model.add_sprite_layer(path, centered, antialias) model.add_sprite_layer(path, centered, antialias)
self.models[name] = model self.models[name] = model
@ -130,6 +131,7 @@ class Model_Manager(object):
for modeldata in mdldata.model: for modeldata in mdldata.model:
model = Model() model = Model()
model.id = modeldata['id']
model.load(modeldata) model.load(modeldata)
mgr.models[modeldata['id']] = model mgr.models[modeldata['id']] = model
@ -454,6 +456,7 @@ class ParticleLayer(RenderLayer):
class Model(object): class Model(object):
def __init__(self): def __init__(self):
self.layers = [] self.layers = []
self.id = None
def get_size(self): def get_size(self):