def setup_player_animations(self): # Get player sprite sheet player_sheet = resourceLoader.get_image("characters\\stormTrooper.png") # Idle right idle_r = Animation() idle_r.frames.append(player_sheet[0]) idle_r.speed = 0 # Idle left idle_l = Animation() idle_l.frames.append(player_sheet[9]) idle_l.speed = 0 # Walk right walk_r = Animation() walk_r.frames = player_sheet[1:5] walk_r.speed = 0.15 # Walk left walk_l = Animation() walk_l.frames = player_sheet[5:9] walk_l.speed = 0.15 # Add animations self.add_animation("idle_r", idle_r) self.add_animation("idle_l", idle_l) self.add_animation("walk_r", walk_r) self.add_animation("walk_l", walk_l)
def create_animations(players, tiles, powerups): player_animations = dict() for i, colour in enumerate(["white", "blue", "black", "red"]): player_animations["colour"] = dict() walk = list() walking_delays = [300, 200, 300, 200] for j in range(4): j *= 3 sequence = [(j + 1, i), (j, i), (j + 2, i), (j, i)] animation = Animation(players, sequence, walking_delays) walk.append(animation) punch = list() for j in range(4): j += 19 animation = Animation(players, [(j, i)], 500, False) punch.append(animation) death = Animation(players, [(j, i) for j in range(12, 18)], 2000, False) player_animations[colour]["walk"] = walk player_animations[colour]["punch"] = punch player_animations[colour]["death"] = death return player_animations
def referenceAnimation(self, coordinates, tilelen): anim = Animation("NoResource", coordinates[2], coordinates[3], coordinates[0], coordinates[1], tilelen) self.animations.append(anim) newNode = Element("animation", attrib = {"name" : "", "path" : str(anim.path), "texturex" : str(anim.texturex), "texturey" : str(anim.texturey), "texturew" : str(anim.texturew), "textureh" : str(anim.textureh), "tilelen" : str(tilelen)}) self.xmlNode.append(newNode) anim.xmlNode = newNode return anim
def loadSprites(self, node): for elem in node.findall("sprite"): sprite = Sprite(elem.attrib["path"], elem.attrib["texturex"], elem.attrib["texturey"], elem.attrib["texturew"], elem.attrib["textureh"]) self.sprites.append(sprite) sprite.xmlNode = elem self.emit("sprite-added", sprite) for elem in node.findall("animation"): anim = Animation(elem.attrib["path"], elem.attrib["texturex"], elem.attrib["texturey"], elem.attrib["texturew"], elem.attrib["textureh"], elem.attrib["tilelen"]) self.animations.append(anim) anim.xmlNode = elem self.emit("sprite-added", anim)
def __init__(self, world, pos=(0, 0)): self.body = world.b2world.CreateDynamicBody( position=pos, allowSleep=False ) self.body.CreatePolygonFixture( box=(0.8, 1.6), density=1, friction=0.0, ) self.body.linearDamping = 0.0 self.body.angularDamping = 0.0 self.sensor = self.body.CreatePolygonFixture( box=(0.6, 0.2, (0, -1.6), 0), density=1, friction=0.0, isSensor = True ) self.stand_sprite = Sprite("data/art/stand.png") self.jump_sprite = Sprite("data/art/jump.png") self.fall_sprite = Sprite("data/art/fall.png") walksprite0 = self.stand_sprite walksprite1 = Sprite("data/art/walk1.png") walksprite2 = Sprite("data/art/walk2.png") self.walk_sprite = Animation(( walksprite0, walksprite1, walksprite1, walksprite0, walksprite2, walksprite2 )) self.sprite = self.stand_sprite