Пример #1
0
 def fade(self):
     if not self.can_fade:
         return
     self._speed_modifier = 10
     self.fading = True
     self.invulnerable = True
     self.set_timer('fade', 15, end_event=self._end_fade)
     am.play_sound('fade.ogg')
Пример #2
0
 def hurt(self, damage):
     if self.invulnerable:
         return
     if self.health - damage > 0:
         am.play_sound('damage.ogg')
         self.health -= damage
     else:
         self.health = 0
Пример #3
0
 def swing(self):
     if self.swinging:
         return
     am.play_sound('sword_swing_%s.ogg' % randint(1, 2))
     self.animation_state = self.PlayerStates.SWINGING
     self.swinging = True
     self.set_timer('swing', 10, self._reset_swing)
     if not self.flip_horizontal:
         self.position.x -= 25
Пример #4
0
 def shoot(self):
     if self.can_shoot:
         self.children.append(
             Arrow(self.position.x + 6.5, self.position.y + 20,
                   self.flip_horizontal, self))
         self.can_shoot = False
         self.set_timer('reset-shoot', 10, self._reset_shoot)
         am.play_sound('arrow.ogg', volume=0.5)
         self.animation_state = self.PlayerStates.SHOOTING
Пример #5
0
 def animate(self):
     if self.health == 0:
         am.play_sound('death.ogg', volume=0.2)
         self._change_sprite(Sprite('player_dead.png', Point2D(44, 13)))
     elif self.animation_state == self.PlayerStates.SWINGING:
         self._change_sprite(
             AnimatedSprite('player_swing.png',
                            Point2D(50, 43),
                            5,
                            speed=0.5))
     elif self.animation_state == self.PlayerStates.SWING_RUNNING:
         self._change_sprite(
             AnimatedSprite('player_swing_running.png',
                            Point2D(50, 44),
                            5,
                            speed=0.5))
     elif self.animation_state == self.PlayerStates.SHOOTING:
         self._change_sprite(
             AnimatedSprite('player_shoot.png',
                            Point2D(25, 44),
                            5,
                            speed=0.5))
     elif self.force.y_mag != 0:
         self._change_sprite(Sprite('player_midair.png', Point2D(25, 44)))
         am.stop_sound('running_on_grass.ogg')
     elif self.animation_state == self.PlayerStates.RUNNING:
         self._change_sprite(
             AnimatedSprite('player_running.png', Point2D(25, 44), 7))
         am.play_sound('running_on_grass.ogg')
         self.animation_state = self.PlayerStates.IDLE
     else:
         self._change_sprite(
             AnimatedSprite('player_idle.png',
                            Point2D(25, 44),
                            3,
                            speed=0.25))
         am.stop_sound('running_on_grass.ogg')
Пример #6
0
 def _teleport(self, player_pos):
     am.play_sound('death_field.ogg', volume=0.2)
     self._can_teleport = False
     self.children.append(DeathField(self.position.x))
     self._teleported += 1
     self.set_timer('set-respawn', 50, lambda: self._move(player_pos))
Пример #7
0
 def jump(self):
     if self.force.y_mag == 0:
         self.force.effect(self.force.x_mag, 10 + self._speed_modifier)
         am.play_sound('jump_%d.ogg' % randint(1, 2))