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'
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
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
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
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)
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")
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:
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")
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
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()