Beispiel #1
0
    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
Beispiel #2
0
    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
Beispiel #3
0
    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
Beispiel #4
0
    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