def draw(self, position: Point, selected: bool = False) -> None: draw_text( position.offset( self._get_position(GuiPosition.LEVEL_ITEM_TITLE_POS)), f"LEVEL {self.level_num}", self.text_style) if not self.level_unlocked: self._get_sprite(GuiSprite.LOCKED_ICON).draw( position.offset( self._get_position(GuiPosition.LEVEL_LOCKED_ICON_POS))) else: self._draw_level_thumbnail( position.offset( self._get_position(GuiPosition.LEVEL_THUMBNAIL_POS))) if self.level_completed: self._get_sprite(GuiSprite.CHECKED_ICON).draw( position.offset( self._get_position(GuiPosition.LEVEL_COMPLETED_ICON_POS))) if selected: self._draw_level_score( self._get_position(GuiPosition.LEVEL_SCORE_POS)) self._draw_frame(position, selected)
def draw(self, position: Point, selected: bool = False) -> None: if self.disabled: style = MENU_TEXT_DISABLED elif selected: style = MENU_TEXT_SELECTED else: style = MENU_TEXT_NORMAL draw_text(position, self._get_item_text(selected), style)
def _draw_level_score(self, position: Point) -> None: level_score = self.player_profile.levels_scores[self.level_num] if self.level_completed: text = f"TIME: {level_score.time} " \ f"PUSHES: {level_score.pushes: >4} " \ f"STEPS: {level_score.steps: >4}" else: text = "LEVEL NOT COMPLETED" if self.level_unlocked else "LEVEL LOCKED" draw_text(position, text, self._get_text_style(GuiColor.LEVEL_SELECTED_COLOR))
def _draw_level_statistics(self) -> None: new_record = "(NEW RECORD)" time_beaten = self.level_score.time_in_ms < self.prev_level_score.time_in_ms pushes_beaten = self.level_score.pushes < self.prev_level_score.pushes steps_beaten = self.level_score.steps < self.prev_level_score.steps first_completion = not self.prev_level_score.completed draw_text( LEVEL_TIME_POS, "#0{:>7s} #8{:s}".format( self.level_score.time, new_record if time_beaten or first_completion else "")) draw_text( LEVEL_PUSHES_POS, "#0{:>7d} #8{:s}".format( self.level_score.pushes, new_record if pushes_beaten or first_completion else "")) draw_text( LEVEL_STEPS_POS, "#0{:>7d} #8{:s}".format( self.level_score.steps, new_record if steps_beaten or first_completion else ""))
def draw(self, draw_as_secondary: bool = False) -> None: super().draw(draw_as_secondary) draw_text(Point(79, 240), "(c) 2020 KRZYSZTOF FURTAK", TextStyle(color=7, shadow_color=1)) draw_text(Point(11, 240), f"v{__version__}", TextStyle(color=1))
def _draw_frame(self) -> None: pyxel.rectb(self.frame_rect.x, self.frame_rect.y, self.frame_rect.w, self.frame_rect.h, 8) pyxel.rect(self.frame_rect.x + 1, self.frame_rect.y + 1, self.frame_rect.w - 2, self.frame_rect.h - 2, 2) draw_text(self.frame_rect.position.offset(PADDING), self.error_message)
def draw(self) -> None: """Draw screen element at its defined position.""" if self.sprite: self.sprite.draw(self.position) elif self.text: draw_text(self.position, self.text)