def draw_inv_text(self): #Box around the text here PERCENT_UP = 0.95 #How far up is the text? FONT = GLUT_BITMAP_9_BY_15 LOADING_WIDTH = 40 LOADING_HEIGHT = 10 TEXT_LOADINGBAR_GAP = 10 text_top = PERCENT_UP * SCREEN_SIZE[1] #Text starts from here GLComponents.glEnable2D() max_length = 0 for item_num in range(len(self.inventory.inventory)): #Longest sentence key = self.inventory.inventory.keys()[item_num] cap = ReadFile.read_caps()[item_num] if cap: message = "{0}: {1:.2f}%".format(key, self.inventory.inventory[key]/cap * 100.0) else: message = "{0}: {1:.2f}".format(key, self.inventory.inventory[key]) width = self.str_width(message, FONT) if width > max_length: max_length = width GLComponents.write_str(message, 0, text_top - item_num * 15, FONT) if cap: #Only capped values get loading bars GLComponents.loading_bar(max_length + TEXT_LOADINGBAR_GAP, text_top - 15 * item_num, self.inventory.inventory[key]/cap * 100, LOADING_WIDTH, LOADING_HEIGHT) GLComponents.draw_rect(0, max_length + LOADING_WIDTH + TEXT_LOADINGBAR_GAP + 2, text_top + 15, text_top - len(self.inventory.inventory) * 15) GLComponents.glDisable2D()
def draw_inv_text(self): #Box around the text here PERCENT_UP = 0.95 #How far up is the text? FONT = GLUT_BITMAP_9_BY_15 text_top = PERCENT_UP * self.camera.display[1] #Text starts from here GLComponents.glEnable2D() max_length = 0 for item_num in range(len(self.inventory.inventory)): key = self.inventory.inventory.keys()[item_num] message = key + ': ' + str(self.inventory.inventory[key]) width = self.str_width(message, FONT) if width > max_length: max_length = width GLComponents.write_str(message, 0, text_top - item_num * 15, FONT) GLComponents.draw_rect(0, max_length, text_top + 15, text_top - len(self.inventory.inventory) * 15) GLComponents.glDisable2D()
def draw_centred(self, message, side_padding = 1, up_padding = 1): GLComponents.glEnable2D() if up_padding == 1 and side_padding == 1: #Might as well clear all glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) glDisable(GL_DEPTH_TEST) FONT = GLUT_BITMAP_HELVETICA_18 width = self.str_width(message, FONT) #For centering #Centered text GLComponents.write_str(message, SCREEN_SIZE[0]/2 - width/2, SCREEN_SIZE[1]/2, FONT) if up_padding != 1 or side_padding != 1: GLComponents.draw_rect(SCREEN_SIZE[0]/2 * (1 - side_padding), SCREEN_SIZE[0]/2 * (1 + side_padding), SCREEN_SIZE[1]/2 * (1 - up_padding), SCREEN_SIZE[1]/2 * (1 + up_padding)) self.draw_inv_text() GLComponents.glDisable2D() pygame.display.flip() glEnable(GL_DEPTH_TEST)