diff options
author | echinelli <emilianochinelli@gmail.com> | 2010-09-20 15:45:35 (GMT) |
---|---|---|
committer | echinelli <emilianochinelli@gmail.com> | 2010-09-20 15:45:35 (GMT) |
commit | 5485c26c7cd6d4fc36aec8ef325993f345b32587 (patch) | |
tree | 46a4b348e480e2b662c4f059179121feb1229599 | |
parent | 1deef0940227bade12dc6a9df57ea5f7da51ad9f (diff) |
Arreglos:
*radious -> radius
*utf-8
*ahora el menu no utiliza display.update, retorna la lista de los rectangulos que cambiaron
*normalizaciĆ³n de los path al cargar las imagenes en los item
Agregados:
*Atributo center a la clase menu
-rwxr-xr-x | Saludame.activity/menu.py | 46 | ||||
-rwxr-xr-x | Saludame.activity/menucreator.py | 4 |
2 files changed, 32 insertions, 18 deletions
diff --git a/Saludame.activity/menu.py b/Saludame.activity/menu.py index 6b029bb..e10b16d 100755 --- a/Saludame.activity/menu.py +++ b/Saludame.activity/menu.py @@ -9,19 +9,21 @@ import pygame import os import math -from ibus.lang import __load_lang class Menu: - def __init__(self, frame_rate, item_list): - #self.rect = rect + def __init__(self, frame_rate, item_list, center, radius): + + self.center = center # center of the menu's circle + self.frame_rate = frame_rate self.item_list = item_list # item's list that going to be displayed - self.path = None # Path of items selected self.actual_selection = self.item_list #list of actual subitems selection + self.salir = Item(" ", "assets/icons/salir.png", " ", []) - self.salir.rect.center = (190, 140) - self.radious = 100 + self.salir.rect.center = center + + self.radius = radius self.on_compression = True #para mostrar la animaciĆ³n al iniciar self.on_expansion = False @@ -32,28 +34,34 @@ class Menu: """ def draw(self, screen): + """ + draw menu items + """ font = pygame.font.Font(None, 35) if(self.on_compression): - if(self.radious > 0): - self.radious -= 8 - self.__calculate_items_position((190, 140), self.radious, self.item_list) + if(self.radius > 0): + self.radius -= 5 + self.__calculate_items_position(self.center, self.radius, self.item_list) else: self.on_compression = False self.on_expansion = True if(self.on_expansion): - if(self.radious < 100): + if(self.radius < 90): item = self.item_list[2] self.actual_selection = item.subitems_list - self.radious += 5 - self.__calculate_items_position((190, 140), self.radious, self.actual_selection) + self.radius += 5 + self.__calculate_items_position(self.center, self.radius, self.actual_selection) else: self.on_expansion = False - + + changes = [] for item in self.actual_selection: item.draw_item(screen, font) + changes.append(item.rect) + self.salir.draw_item(screen, font) - pygame.display.update() - return [] + changes.append(self.salir.rect) + return changes def on_mouse_over(self, coord): for item in self.actual_selection: @@ -79,7 +87,7 @@ class Menu: """ Calculate the position for each menu's item """ - self.__calculate_items_position((170, 140), self.radious, self.item_list) + self.__calculate_items_position((170, 140), self.radius, self.item_list) def __calculate_items_position(self, center, radius, item_list): if(len(item_list) > 0): @@ -121,8 +129,9 @@ class Menu: class Item: def __init__(self, name, icon_path, tooltip, subitems_list): + path = os.path.normpath(icon_path) self.name = name - self.image = pygame.image.load(icon_path) + self.image = pygame.image.load(path) self.rect = self.image.get_rect() self.tooltip = tooltip self.subitems_list = subitems_list @@ -134,6 +143,9 @@ class Item: self.subitems_list.append(item) def draw_item(self, screen, font): + """ + draw the item in the screen + """ img_font = font.render(self.name, True, (0, 0, 0)) screen.blit(self.image, self.rect) screen.blit(img_font, self.rect.topright) diff --git a/Saludame.activity/menucreator.py b/Saludame.activity/menucreator.py index 1055e62..428a9db 100755 --- a/Saludame.activity/menucreator.py +++ b/Saludame.activity/menucreator.py @@ -1,3 +1,5 @@ +# -*- coding: utf-8 -*- + import menu example = [ @@ -22,7 +24,7 @@ def load_menu(): for item in example: an_item = create_item(item) item_list.append(an_item) - m = menu.Menu(1, item_list) + m = menu.Menu(1, item_list,(190,130),90) return m |