def draw_skill_bar(self, frame, x, y): resman.get("game.skill_bar_surf").draw(frame.surface, Vec2D(x + 10, y + 85)) MIN_Y = y MAX_Y = y + 7 * 21 + 12 pointer_y = geo.lin_ipol(self.skill_value, MAX_Y + 7, MIN_Y + 17, 0.3, 1.0) pointer_y = max(min(pointer_y, MAX_Y), MIN_Y) # pointer_y = MAX_Y resman.get("game.skill_pointer_surf").draw(frame.surface, Vec2D(x + 10, pointer_y)) self.font_tiny_white.draw("%d" % int(self.skill_value * 100), frame.surface, (x + 13, pointer_y + 2), align=gfx.Font.CENTER, valign=gfx.Font.MIDDLE) for skill_name in settings.SkillLevel.NAMES: if skill_name == self.game_data.skill_level.name: self.font_tiny_red.draw(skill_name, frame.surface, (x + 40, y)) else: self.font_tiny.draw(skill_name, frame.surface, (x + 40, y)) y += 21
def get_pos( self, frame ): self.pos = None if self.model.container is None or not hasattr( self.model.container, "views" ): return None self.pos = self.model.container.views[0].get_pickup_pos( frame ) if self.model.jump_cnt is not None: if self.jump_pos is None: self.jump_pos = self.pos x = geo.lin_ipol( self.model.jump_cnt, self.jump_pos.x, self.pos.x ) y = geo.lin_ipol( self.model.jump_cnt, self.jump_pos.y, self.pos.y ) height = self.model.jump_cnt if self.model.jump_cnt > 0.5: height = 1.0 - self.model.jump_cnt self.pos = Vec2D( x, y - 30 * height) else: self.jump_pos = None return self.pos
def get_pos(self, frame): self.pos = None if self.model.container is None or not hasattr(self.model.container, "views"): return None self.pos = self.model.container.views[0].get_pickup_pos(frame) if self.model.jump_cnt is not None: if self.jump_pos is None: self.jump_pos = self.pos x = geo.lin_ipol(self.model.jump_cnt, self.jump_pos.x, self.pos.x) y = geo.lin_ipol(self.model.jump_cnt, self.jump_pos.y, self.pos.y) height = self.model.jump_cnt if self.model.jump_cnt > 0.5: height = 1.0 - self.model.jump_cnt self.pos = Vec2D(x, y - 30 * height) else: self.jump_pos = None return self.pos
def draw_skill_bar( self, frame, x, y ): resman.get("game.skill_bar_surf").draw( frame.surface, Vec2D(x+10,y+85) ) MIN_Y = y MAX_Y = y + 7 * 21 + 12 pointer_y = geo.lin_ipol( self.skill_value, MAX_Y + 7, MIN_Y + 17, 0.3, 1.0 ) pointer_y = max( min( pointer_y, MAX_Y ), MIN_Y ) # pointer_y = MAX_Y resman.get("game.skill_pointer_surf").draw( frame.surface, Vec2D(x+10, pointer_y) ) self.font_tiny_white.draw("%d" % int(self.skill_value * 100), frame.surface, (x+13, pointer_y+2), align=gfx.Font.CENTER, valign=gfx.Font.MIDDLE ) for skill_name in settings.SkillLevel.NAMES: if skill_name == self.game_data.skill_level.name: self.font_tiny_red.draw( skill_name, frame.surface, (x+40, y) ) else: self.font_tiny.draw( skill_name, frame.surface, (x+40, y) ) y += 21