def __init__(self, scene, name, x, y, **kwargs):
        super(Player, self).__init__(scene, name, x, y, **kwargs)
        self.sprite = components.AnimSprite(self, assets.getSpriteAnim("anims/player.json"), "stand_r", -16, -16)
        self.mapcollide = components.MapCollider(self, scene.tilemap.foreground, -5, -9, 11, 24)
        self.solidcollide = components.SolidSpriteCollider(self, self.obj_mgr.solid, -5, -9, 11, 24)
        self.collider = components.SpriteCollide(self, -5, -9, 11, 24)
        self.physics = components.Physics(self, self.mapcollide, self.solidcollide, 0.03)
        self.health = components.Health(self)

        self.sound_hurt = assets.getSound("sounds/hurt.wav")
        self.sound_die = assets.getSound("sounds/die.wav")
        self.sound_land = assets.getSound("sounds/land.wav")

        self.state = STATE_ALIVE
        self.anim_state = ANIM_STAND
        self.run_accel = 0.004
        self.air_accel = 0.00025
        self.max_air_speed = 0.2
        self.facing = RIGHT
        self.jump_timer = 0
        self.max_jump_timer = 150
        self.jump_speed = -0.17
        self.jump_thrust = -0.002
        self.hurt_timer = 0
        self.max_hurt_timer = 300
        self.scene.setPlayer(self)
 def __init__(self, scene, name, x, y, **kwargs):
     super(Explosion, self).__init__(scene, name, x, y, **kwargs)
     self.sprite = components.AnimSprite(self, assets.getSpriteAnim("anims/explosion.json"), "explode", -128, -128)
     try:
         assets.getSound("sounds/big_explosion.wav").play()
     except:
         'Could not get sound'
예제 #3
0
    def __init__(self, scene, name, x, y, **kwargs):
        super(TestObject, self).__init__(scene, name, x, y, **kwargs)

        # TODO: All of this should be put into a component, obviously
        #self.sprite = components.StaticSprite(self, assets.getImage("testing/test.png"))
        self.sprite = components.AnimSprite(self, assets.getSpriteAnim("graphics/player.json"), "stand_r", -16, -16)
        self.mapcollide = components.MapCollider(self, scene.tilemap.foreground, -5, -8, 11, 24)
        #self.mapcollide = components.MapCollider(self, scene.tilemap.foreground, 0, 0, 32, 32)
        self.physics = components.Physics(self, self.mapcollide, 0.03)
        self.timeout = 5000
        self.dir = 1
        self.running = False
예제 #4
0
 def __init__(self, scene, name, x, y, anim="", sequence="", spr_width=0, spr_height=0, spr_offset_x=1, spr_offset_y=1, facing="random", friction=0.03, air_resistance=0.0001, bounciness=0.0, gravity = 0.001, health=100, damage_amount=-10, **kwargs):
     super(Enemy, self).__init__(scene, name, x, y)
     if facing == "random":
         self.facing = random.choice((-1, 1))
     elif facing == "right":
         self.facing = 1
     else:
         self.facing = -1
     self.sprite = components.AnimSprite(self, assets.getSpriteAnim(anim), sequence, spr_offset_x, spr_offset_y)
     self.solidcollider = components.SolidCollider(self, scene.tilemap.foreground, scene.object_mgr.solid, 0, 0, spr_width, spr_height)
     self.spritecollider = components.SpriteCollide(self, 0, 0, spr_width, spr_height)
     self.physics = components.Physics(self, self.solidcollider, friction, air_resistance, bounciness, gravity)
     self.health = components.Health(self, health)
     self.damage_amount = damage_amount
     self.drop_rate = 0.1
예제 #5
0
 def __init__(self, scene, name, x, y, direction=0, **kwargs):
     super(Ship, self).__init__(scene, name, x, y, **kwargs)
     self.ship_sprite = components.StaticSprite(self, assets.getImage("graphics/ship.png"))
     self.jet_sprite = components.AnimSprite(self, assets.getSpriteAnim("anims/jet.json"), "jet", 16, 122)
     self.collider = components.SpriteCollide(self, 0, 0, self.ship_sprite.rect[2], self.ship_sprite.rect[3])
     self.sound = assets.getSound("sounds/jet.wav")
     self.speed = 0.1
     self.dest_y = y - self.ship_sprite.rect[3] + 17
     self.x = x - self.ship_sprite.rect[2] / 2 + 8
     self.delay = 0
     map = statevars.variables.get("map")
     # Determine if the ship should fly down or already be on the ground when it is created
     if map is not None and map.get("ship_landed") == True:
         self.y = self.dest_y
         self.jet_sprite.setVisibility(False)
     else:
         self.y = -256
         self.sound.play(-1)
     self.state = 0
예제 #6
0
 def __init__(self, scene, name, x, y, filename="", sequence="", layer=0, **kwargs):
     super(AnimImage, self).__init__(scene, name, x, y, **kwargs)
     self.sprite = components.AnimSprite(self, assets.getSpriteAnim(filename), sequence, 0, 0, layer)
예제 #7
0
 def getSequence(self, name):
     """Gets the specified animation sequence if it exists, else return broken animation animation"""
     seq = self.sequences.get(name)
     if seq:
         return seq
     return assets.getSpriteAnim("default/anim.json").getSequence("default")
예제 #8
0
 def __init__(self, scene, name, x, y, filename="", **kwargs):
     super(NPC, self).__init__(scene, name, x, y, **kwargs)
     self.sprite = AnimSprite(self, assets.getSpriteAnim("anims/npc.json"), "stand", offset_y = 11, layer=0)
     self.collider = SpriteCollide(self, -26, 20, 64+52, 76)
     self.filename = filename
"""
Tool for viewing animations
"""

import pygame
import sys
import assets
import animation
import metrics

pygame.init()

disp = pygame.display.set_mode((metrics.SCREEN_WIDTH, metrics.SCREEN_HEIGHT))
clock = pygame.time.Clock()

anim = assets.getSpriteAnim(sys.argv[1])
sequences = anim.sequences.keys()
current = 0
cursor = animation.SimpleCursor()
cursor.play(anim.getSequence(sequences[current]))

font = assets.getFont(None, 10)
anim_text = font.render(str(current) + ": " + sequences[current], False, (0,0,0))

keep_going = True
while keep_going:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            keep_going = False

        if event.type == pygame.KEYDOWN:
예제 #10
0
 def __init__(self, scene, name, x, y, **kwargs):
     super(Coin, self).__init__(scene, name, x, y)
     self.sprite = components.AnimSprite(self, assets.getSpriteAnim("anims/coin.json"), "spin")
     self.collider = components.SpriteCollide(self, 0, 0, 16, 16)
     self.sound = assets.getSound("sounds/coin.wav")
예제 #11
0
 def __init__(self, scene, name, x, y, **kwargs):
     super(Steam, self).__init__(scene, name, x, y, **kwargs)
     self.sprite = AnimSprite(self, assets.getSpriteAnim("anims/steam.json"), "steam", -32, -32)
     self.vx = (random.random() - 0.5) * 0.1
     self.vy = (random.random() - 0.5) * 0.1 - 0.1
예제 #12
0
 def __init__(self, scene, name, x, y, **kwargs):
     super(Explosion, self).__init__(scene, name, x, y, **kwargs)
     self.sprite = components.AnimSprite(self, assets.getSpriteAnim("anims/explosion.json"), "explode", -16, -16)
     assets.getSound("sounds/explosion.wav").play()