def update_cue_displacement(self, mouse_pos, initial_mouse_dist): displacement = physics.point_distance(mouse_pos, self.target_ball.all.pos) - initial_mouse_dist + config.ball_radius if displacement > config.cue_max_displacement: self.displacement = config.cue_max_displacement elif displacement < config.ball_radius: self.displacement = config.ball_radius else: self.displacement = displacement
def cue_is_active(self, game_state, events): initial_mouse_pos = events["mouse_pos"] initial_mouse_dist = physics.point_distance(initialinitial_mouse_pos, self.target_ball.ball.pos) while events["clicked"]: events = event.events() self.update_cue(game_state,initial_mouse_dist, events) self.draw_lines(game_state, self.target_ball, self.angle+math.pi, config.table_color) if self.displacement > config.ball_radius + config.cue_safe_displacement: self.ball_hit()
def cue_is_active(self, game_state, events, pos): initial_mouse_pos = events["mouse_pos"] initial_mouse_dist = physics.point_distance(initial_mouse_pos, self.target_ball.ball.pos) while events["clicked"]: events = event.events() self.update_cue(game_state, initial_mouse_dist, events) # undraw leftover aiming lines self.draw_lines(game_state, self.target_ball, self.angle + math.pi, config.table_color) # if self.displacement > config.ball_radius+config.cue_safe_displacement: k = np.array([pos[0], pos[1]]) self.ball_hit(k)