def __init__(self,pitch_name): """ define constructor of class Pitch. """ Logger.info("PITCH: Initializing pitch") self.i_min = 42 self.i_max = 762 self.j_min = 154 self.j_max = 562 self.i_border = 50 Logger.debug("PITCH: init i_min=%s i_max=%s j_min=%s j_max=%s i_border=%s", str(self.i_min), str(self.i_max), str(self.j_min), str(self.j_max), str(self.i_border)) goal_width = 150 j_middle = 0.5 * (self.j_min + self.j_max) self.goals = [Goal(self.i_min, j_middle, goal_width), Goal(self.i_max, j_middle, goal_width)] # drawable part # TODO better pitch image Logger.info("PITCH: loading image") # self._image = pygame.image.load("resources/graphics/pitch.png") self._image = pygame.image.load(pitch_name) self._pos = Vector(0, 0)
def __init__(self, player_id, pitch): """ initializes Player object and creates underlying Mallet :param player_id: defines which player are you creating :param pitch: pitch is needed to calculate borders for mallet :return: """ if player_id == Player.PLAYER_RED: Logger.info("PLAYER: initializing PLAYER_RED") self.playerColor = Player.PLAYER_RED self._borders = ((pitch.i_min, (pitch.i_min + pitch.i_max) / 2), (pitch.j_min, pitch.j_max)) self._center = (200, 300) self._goal_to_score = pitch.get_right_goal() # opponent's goal else: Logger.info("PLAYER: initializing PLAYER_BLUE") self.playerColor = Player.PLAYER_BLUE self._borders = (((pitch.i_min + pitch.i_max) / 2, pitch.i_max), (pitch.j_min, pitch.j_max)) self._center = (600, 300) self._goal_to_score = pitch.get_left_goal() self._points = 0 self._name = '' self._player_id = player_id self._mallet = Mallet(20.5, self._center[0], self._center[1], 100, self, self._borders)
def addPoint(self): """Should be called when player scores a goal.""" Logger.info("PLAYER: player %s scored a point", str(self.playerColor)) self._points += 1 if self._points >= self.MAX_POINTS: raise TooManyPointsException