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(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 spawn(self, spawn_type=None):
     if spawn_type == "door":
         self.state = STATE_SPAWN
         self.anim_state = ANIM_SPAWN
         self.sprite.play("door_exit")
     elif spawn_type == "left":
         self.state = STATE_TRAVEL
         self.anim_state = ANIM_WAIT
         self.sprite.play("run_r")
         self.physics.vx = 0.2
         self.travel_time = 550
         self.facing = RIGHT
     elif spawn_type == "right":
         self.state = STATE_TRAVEL
         self.anim_state = ANIM_WAIT
         self.sprite.play("run_l")
         self.physics.vx = -0.2
         self.travel_time = 550
         self.facing = LEFT
     else:
         self.state = STATE_SPAWN
         self.anim_state = ANIM_SPAWN
         self.sprite.play("spawn")
         assets.getSound("sounds/spawn.wav").play()
     self.health.health = statevars.variables["health"]
예제 #4
0
 def __init__(self, scene, name, x, y, **kwargs):
     super(EMT, self).__init__(scene, name, x, y, **kwargs)
     self.sprite = components.StaticSprite(self, assets.getImage("graphics/emt.png"), -32, -14)
     self.glow = components.StaticSprite(self, assets.getImage("graphics/emt_glow.png"), -32, -14)
     self.glow.setVisibility(False)
     # This collider is used to make the EMT solid so the player can stand on it.
     self.collider = components.SpriteCollide(self, -24, 1, 48, 16)
     # Save collider is the area that needs to be touched to activate the EMT
     self.save_collider = components.SpriteCollide(self, -16, -15, 32, 16)
     self.sound = assets.getSound("sounds/save.wav")
     # Don't allow saving until five seconds after the first save or loading
     self.save_delay = 5000
     self.save_timer = self.save_delay
예제 #5
0
 def __init__(self, scene, name, x, y, direction=0, **kwargs):
     super(PlayerLaser, self).__init__(scene, name, x, y, **kwargs)
     if direction == -1:
         self.sprite = components.StaticSprite(self, assets.getImage("graphics/laser_l.png"), -4, -3)
         self.speed = -0.5
     else:
         self.sprite = components.StaticSprite(self, assets.getImage("graphics/laser_r.png"), -4, -3)
         self.speed = 0.5
     self.collider = components.SpriteCollide(self, -4, -3, 8, 5)
     self.mapcollider = components.MapCollider(self, scene.tilemap.foreground, -4, -1, 8, 1)
     self.damage_amount = -10
     self.sound = assets.getSound("sounds/laser.wav")
     self.sound.play()
예제 #6
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
 def spawn(self):
     self.state = STATE_SPAWN
     self.anim_state = ANIM_SPAWN
     self.sprite.play("spawn")
     assets.getSound("sounds/spawn.wav").play()
예제 #8
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")
예제 #9
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()
예제 #10
0
 def __init__(self, scene, name, x, y, **kwargs):
     super(Energy, self).__init__(scene, name, x, y, **kwargs)
     self.sprite = components.StaticSprite(self, assets.getImage("graphics/fish.png"))
     self.collider = components.SpriteCollide(self, 0, 0, 16, 16)
     self.health_amount = 25
     self.sound = assets.getSound("sounds/energy.wav")