Exemplo n.º 1
0
    def __animate_kickoff(self, dt):
        # animate ball
        obj = self.ids['kickoff_ball']
        x_current = obj.pos[0]
        x_target = obj.parent.x + (0.0 if GameData.get_kickoff_team() == 0 else obj.parent.width)
        y_high = obj.parent.y + 1.5 * obj.parent.height
        y_low = obj.parent.y + obj.parent.height / 2.0

        uptime_ratio = 0.3
        duration = 1.5
        duration_up = uptime_ratio * duration
        duration_down = (1.0 - uptime_ratio) * duration
        anim = Animation(x=x_current + uptime_ratio * (x_target - x_current), d=duration_up, t='linear') & Animation(y=y_high, d=duration_up, t='out_quad')
        anim += Animation(x=x_target, d=duration_down, t='out_quad') & Animation(y=y_low, d=duration_down, t='out_bounce')
        anim.start(obj)
        Clock.schedule_once(self.__animate_rotation, 0)
        Clock.schedule_once(lambda dt: Clock.unschedule(self.__animate_rotation), duration)
Exemplo n.º 2
0
 def __animate_rotation(self, dt):
     direction = 1.0 if GameData.get_kickoff_team() == 0 else -1.0
     self.kickoff_angle += 15.0 * direction
     Clock.schedule_once(self.__animate_rotation, 0.04)
Exemplo n.º 3
0
 def handle_kickoff(self, say_player):
     if not GameData.is_match_finished():
         delay = 1.0
         Clock.schedule_once(self.__animate_kickoff, delay)
         if say_player:
             SoundManager.play(Trigger.GAME_START, self.players[GameData.get_kickoff_team() * 2])