diff options
author | echinelli <emilianochinelli@gmail.com> | 2010-11-23 22:22:04 (GMT) |
---|---|---|
committer | echinelli <emilianochinelli@gmail.com> | 2010-11-23 22:22:04 (GMT) |
commit | 7009794668f119a563758a1bc6d4bf9f97a320b8 (patch) | |
tree | 3e7a951a0d1aa1725ec7308795090d90836c704c | |
parent | 36244f088b12ef945db6ea5c0b5c745238a85efd (diff) |
*Character locations implementation
*weather implementations
*environment handling
*new menu items, actions and effects
*new classes Environment and LocationEffect
*add coments in previous implemented functions
*changes in a lot modules
*new backgrounds
33 files changed, 242 insertions, 82 deletions
diff --git a/Saludame.activity/actions.py b/Saludame.activity/actions.py index 857406d..591d091 100755 --- a/Saludame.activity/actions.py +++ b/Saludame.activity/actions.py @@ -2,7 +2,6 @@ import status_bars import events -import animation class Action: @@ -54,3 +53,4 @@ class Mood: + diff --git a/Saludame.activity/actions_creator.py b/Saludame.activity/actions_creator.py index 7db7184..3284088 100755 --- a/Saludame.activity/actions_creator.py +++ b/Saludame.activity/actions_creator.py @@ -18,13 +18,14 @@ CHEW_PATH = os.path.normpath("assets/kid/food/guiso") bar_dec_effect = effects.Effect(None, [("nutrition", BARS_DECREASE_RATE), ("spare_time", BARS_DECREASE_RATE), ("physica", BARS_DECREASE_RATE), ("hygiene", BARS_DECREASE_RATE)]) -### ANIMATIONS ### + #actions list tuple format: #[("action's id","icon_path","picture_path", appereance_probability, time_span, # kid_animation_frame_rate,kid_animation_loop_times, kid_animation_path, window_animation_frame_rate, # window_animation_loop_times, window_animation_path, sound_loop_times, sound_path, action's effect)] +### ACTIONS THAT AFFECT STATUS BARS actions_list = [ #id, icon, picture, appereance_probability, time_span, kid_animation_frame_rate, kid_animation_loop_times, kid_animation_path, window_animation_frame_rate, window_animation_loop_times, window_animation_path, sound_loop_times, sound_path, effect @@ -125,13 +126,26 @@ actions_list = [ ("BARS_DEC", None, None, 1.0, -1, 0, 0, None, 0, 0, None, 0, None, bar_dec_effect) ] +### ACTIONS THAT SET CHARACTER LOCATION + +locations_ac_list = [("goto_schoolyard", None, None, None, 1, None, None, None, None, None, None, None, None, effects.LocationEffect(None, "schoolyard")), + ("goto_country", None, None, None, 1, None, None, None, None, None, None, None, None, effects.LocationEffect(None, "country")), + ("goto_classroom", None, None, None, 1, None, None, None, None, None, None, None, None, effects.LocationEffect(None, "classroom")), + ("goto_square", None, None, None, 1, None, None, None, None, None, None, None, None, effects.LocationEffect(None, "square")), + ("goto_living", None, None, None, 1, None, None, None, None, None, None, None, None, effects.LocationEffect(None, "home")), + ("goto_bedroom", None, None, None, 1, None, None, None, None, None, None, None, None, effects.LocationEffect(None, "home")), + ("goto_kitchen", None, None, None, 1, None, None, None, None, None, None, None, None, effects.LocationEffect(None, "home")), + ("goto_bathroom", None, None, None, 1, None, None, None, None, None, None, None, None, effects.LocationEffect(None, "home")) + ] + class ActionsLoader: """ Crea las acciones (Action) y sus efectos (Effect y EffectStatus) asociados. """ - def __init__(self, bar_controller): + def __init__(self, bar_controller, game_manager): self.bar_controller = bar_controller + self.game_manager = game_manager self.actions_list = self.__load_actions() @@ -139,9 +153,17 @@ class ActionsLoader: return self.actions_list def __load_actions(self): - return [actions.Action(action[0], action[1], action[2], action[3], action[4], action[5], action[6], action[7], action[8], action[9], action[10], action[11], action[12], self.__set_bar_controller(action[13])) for action in actions_list] + status_actions = [actions.Action(action[0], action[1], action[2], action[3], action[4], action[5], action[6], action[7], action[8], action[9], action[10], action[11], action[12], self.__set_bar_controller(action[13])) for action in actions_list] + location_actions = [actions.Action(action[0], action[1], action[2], action[3], action[4], action[5], action[6], action[7], action[8], action[9], action[10], action[11], action[12], self.__set_game_manager(action[13])) for action in locations_ac_list] - def __set_bar_controller(self, effect_status): - effect_status.set_bar_controller(self.bar_controller) - return effect_status + return status_actions + location_actions + + def __set_bar_controller(self, effect): + effect.set_bar_controller(self.bar_controller) + return effect + + def __set_game_manager(self, location_effect): + location_effect.set_game_manager(self.game_manager) + return location_effect + diff --git a/Saludame.activity/animation.py b/Saludame.activity/animation.py index 37fcf8c..60b72a5 100755 --- a/Saludame.activity/animation.py +++ b/Saludame.activity/animation.py @@ -147,3 +147,4 @@ class FPS: text_surf = self.font.render(text, False, (255, 255, 255)) screen.blit(text_surf, self.rect) return [self.rect] + diff --git a/Saludame.activity/app_init.py b/Saludame.activity/app_init.py index edde027..3b5ba7c 100755 --- a/Saludame.activity/app_init.py +++ b/Saludame.activity/app_init.py @@ -15,11 +15,6 @@ class AppLoader: ### loaders self.bars_loader = status_bars_creator.BarsLoader() - actions_loader = actions_creator.ActionsLoader(self.bars_loader.get_bar_controller()) - - ### actions - self.actions_list = actions_loader.get_actions_list() - ### status bars self.status_bars_controller = self.bars_loader.get_bar_controller() self.character_bars = self.bars_loader.get_third_level_bars() #the third level status bars @@ -27,8 +22,8 @@ class AppLoader: ### events self.events_list = self.__load_events(self.status_bars_controller) ### places - character_loader = character_creator.CharacterLoader(self.actions_list, self.character_bars) - self.places_dictionary = character_loader.get_places_dictionary() + character_loader = character_creator.CharacterLoader() + self.places_dictionary = None ### character self.character = character_loader.get_character() @@ -36,7 +31,11 @@ class AppLoader: self.moods_list = self.__load_moods() ### game manager - self.game_man = game_manager.GameManager(self.character, self.status_bars_controller, self.actions_list, self.events_list, None, self.moods_list, windows_controller) + + self.game_man = game_manager.GameManager(self.character, self.status_bars_controller, None, self.events_list, None, character_loader.get_environments_dictionary(), self.moods_list, windows_controller) + actions_loader = actions_creator.ActionsLoader(self.bars_loader.get_bar_controller(), self.game_man) + self.actions_list = actions_loader.get_actions_list() + self.game_man.actions_list = self.actions_list self.game_man.add_background_action("BARS_DEC") #acción de decrementar las barras ### menu @@ -116,3 +115,4 @@ class AppLoader: + diff --git a/Saludame.activity/assets/background/classroom_cold.png b/Saludame.activity/assets/background/classroom_cold.png Binary files differnew file mode 100755 index 0000000..f14e00f --- /dev/null +++ b/Saludame.activity/assets/background/classroom_cold.png diff --git a/Saludame.activity/assets/background/classroom_normal.png b/Saludame.activity/assets/background/classroom_normal.png Binary files differnew file mode 100755 index 0000000..fdcaa88 --- /dev/null +++ b/Saludame.activity/assets/background/classroom_normal.png diff --git a/Saludame.activity/assets/background/classroom_rainy.png b/Saludame.activity/assets/background/classroom_rainy.png Binary files differnew file mode 100755 index 0000000..e914f1b --- /dev/null +++ b/Saludame.activity/assets/background/classroom_rainy.png diff --git a/Saludame.activity/assets/background/classroom_sunny.png b/Saludame.activity/assets/background/classroom_sunny.png Binary files differnew file mode 100755 index 0000000..42b96d7 --- /dev/null +++ b/Saludame.activity/assets/background/classroom_sunny.png diff --git a/Saludame.activity/assets/background/country_cold.png b/Saludame.activity/assets/background/country_cold.png Binary files differnew file mode 100755 index 0000000..6228daf --- /dev/null +++ b/Saludame.activity/assets/background/country_cold.png diff --git a/Saludame.activity/assets/background/country_normal.png b/Saludame.activity/assets/background/country_normal.png Binary files differnew file mode 100755 index 0000000..b7119be --- /dev/null +++ b/Saludame.activity/assets/background/country_normal.png diff --git a/Saludame.activity/assets/background/country_rainy.png b/Saludame.activity/assets/background/country_rainy.png Binary files differnew file mode 100755 index 0000000..b488023 --- /dev/null +++ b/Saludame.activity/assets/background/country_rainy.png diff --git a/Saludame.activity/assets/background/country_sunny.png b/Saludame.activity/assets/background/country_sunny.png Binary files differnew file mode 100755 index 0000000..f5c0329 --- /dev/null +++ b/Saludame.activity/assets/background/country_sunny.png diff --git a/Saludame.activity/assets/background/home_cold.png b/Saludame.activity/assets/background/home_cold.png Binary files differnew file mode 100755 index 0000000..36777ec --- /dev/null +++ b/Saludame.activity/assets/background/home_cold.png diff --git a/Saludame.activity/assets/background/home_normal.png b/Saludame.activity/assets/background/home_normal.png Binary files differnew file mode 100755 index 0000000..ad60445 --- /dev/null +++ b/Saludame.activity/assets/background/home_normal.png diff --git a/Saludame.activity/assets/background/home_rainy.png b/Saludame.activity/assets/background/home_rainy.png Binary files differnew file mode 100755 index 0000000..2b579d5 --- /dev/null +++ b/Saludame.activity/assets/background/home_rainy.png diff --git a/Saludame.activity/assets/background/home_sunny.png b/Saludame.activity/assets/background/home_sunny.png Binary files differnew file mode 100755 index 0000000..24a3ae2 --- /dev/null +++ b/Saludame.activity/assets/background/home_sunny.png diff --git a/Saludame.activity/assets/background/schoolyard_cold.png b/Saludame.activity/assets/background/schoolyard_cold.png Binary files differnew file mode 100755 index 0000000..317af5d --- /dev/null +++ b/Saludame.activity/assets/background/schoolyard_cold.png diff --git a/Saludame.activity/assets/background/schoolyard_normal.png b/Saludame.activity/assets/background/schoolyard_normal.png Binary files differnew file mode 100755 index 0000000..519d8ee --- /dev/null +++ b/Saludame.activity/assets/background/schoolyard_normal.png diff --git a/Saludame.activity/assets/background/schoolyard_rainy.png b/Saludame.activity/assets/background/schoolyard_rainy.png Binary files differnew file mode 100755 index 0000000..d9e2ee1 --- /dev/null +++ b/Saludame.activity/assets/background/schoolyard_rainy.png diff --git a/Saludame.activity/assets/background/square_cold.png b/Saludame.activity/assets/background/square_cold.png Binary files differnew file mode 100755 index 0000000..58e8a52 --- /dev/null +++ b/Saludame.activity/assets/background/square_cold.png diff --git a/Saludame.activity/assets/background/square_normal.png b/Saludame.activity/assets/background/square_normal.png Binary files differnew file mode 100755 index 0000000..66768cd --- /dev/null +++ b/Saludame.activity/assets/background/square_normal.png diff --git a/Saludame.activity/assets/background/square_rainy.png b/Saludame.activity/assets/background/square_rainy.png Binary files differnew file mode 100755 index 0000000..bb7d737 --- /dev/null +++ b/Saludame.activity/assets/background/square_rainy.png diff --git a/Saludame.activity/assets/background/square_sunny.png b/Saludame.activity/assets/background/square_sunny.png Binary files differnew file mode 100755 index 0000000..c1e7d28 --- /dev/null +++ b/Saludame.activity/assets/background/square_sunny.png diff --git a/Saludame.activity/character.py b/Saludame.activity/character.py index ec0d87a..428922e 100755 --- a/Saludame.activity/character.py +++ b/Saludame.activity/character.py @@ -1,12 +1,11 @@ # -*- coding: utf-8 -*- -import actions import pygame class Character: - def __init__(self, name, level, score, hair_color, socks_color, skin_color, shoes_color, status_bar_list, clothes): + def __init__(self, name, level, score, hair_color, socks_color, skin_color, shoes_color, clothes): self.name = name self.level = level self.score = score @@ -19,10 +18,7 @@ class Character: self.clothes = clothes self.actual_place = None - self.status_bar_list = status_bar_list #status bars - self.active_events_list = [] - self.mood_list = [] #Class Mood instance's list def set_clothes(self, clothes): self.clothes = clothes @@ -30,6 +26,18 @@ class Character: def set_place(self, place_id): self.actual_place = place_id +class Environment: + + def __init__(self, background_path, background_music): + self.background_path = background_path + self.background_music = background_music + + def get_background_path(self): + return self.background_path + + def get_background_music(self): + return self.background_music + class Place: def __init__(self, place_id, background_path, background_music): @@ -72,3 +80,4 @@ class Clothes: + diff --git a/Saludame.activity/character_creator.py b/Saludame.activity/character_creator.py index c6a2ec4..255b488 100755 --- a/Saludame.activity/character_creator.py +++ b/Saludame.activity/character_creator.py @@ -27,36 +27,63 @@ import pygame class CharacterLoader: - def __init__(self, actions_dictionary, status_bar_list): - self.actions_dictionary = actions_dictionary - self.status_bar_list = status_bar_list - self.places_dictionary = self.__load_places() + def __init__(self): self.clothes_list = self.__load_clothes() - self.character = self.__load_character(NAME, LEVEL, SCORE, self.actions_dictionary, self.places_dictionary, status_bar_list, self.clothes_list[0]) + self.character = self.__load_character(NAME, LEVEL, SCORE, self.clothes_list[0]) + self.environments_dictionary = self.__load_environments() def get_character(self): return self.character - - def get_places_dictionary(self): - return self.places_dictionary + + def get_environments_dictionary(self): + return self.environments_dictionary def __load_clothes(self): return ["a clothes"] - def __load_character(self, name, level, score, actions_dictionary, places_dictionary, status_bar_list, clothes): + def __load_character(self, name, level, score, clothes): hair_color = [pygame.Color(color) for color in HAIR_COLOR] skin_color = [pygame.Color(color) for color in SKIN_COLOR] socks_color = [pygame.Color(color) for color in SOCKS_COLOR] shoes_color = [pygame.Color(color) for color in SHOES_COLOR] - char = character.Character(name, level, score, hair_color, socks_color, skin_color, shoes_color, status_bar_list, clothes) + char = character.Character(name, level, score, hair_color, socks_color, skin_color, shoes_color, clothes) return char + + def __load_environments(self): + environments = {#schoolyard + "schoolyard_sunny" : character.Environment("assets/background/schoolyard_sunny.png", "music_path"), + "schoolyard_rainy" : character.Environment("assets/background/schoolyard_rainy.png", "music_path"), + "schoolyard_normal" : character.Environment("assets/background/schoolyard_normal.png", "music_path"), + "schoolyard_cold" : character.Environment("assets/background/schoolyard_cold.png", "music_path"), + #square + "square_sunny" : character.Environment("assets/background/square_sunny.png", "music_path"), + "square_rainy" : character.Environment("assets/background/square_rainy.png", "music_path"), + "square_normal" : character.Environment("assets/background/square_normal.png", "music_path"), + "square_cold" : character.Environment("assets/background/square_cold.png", "music_path"), + #classroom + "classroom_sunny" : character.Environment("assets/background/classroom_sunny.png", "music_path"), + "classroom_rainy" : character.Environment("assets/background/classroom_rainy.png", "music_path"), + "classroom_normal" : character.Environment("assets/background/classroom_normal.png", "music_path"), + "classroom_cold" : character.Environment("assets/background/classroom_cold.png", "music_path"), + #home + "home_sunny" : character.Environment("assets/background/home_sunny.png", "music_path"), + "home_rainy" : character.Environment("assets/background/home_rainy.png", "music_path"), + "home_normal" : character.Environment("assets/background/home_normal.png", "music_path"), + "home_cold" : character.Environment("assets/background/home_cold.png", "music_path"), + #country + "country_sunny" : character.Environment("assets/background/country_sunny.png", "music_path"), + "country_rainy" : character.Environment("assets/background/country_rainy.png", "music_path"), + "country_normal" : character.Environment("assets/background/country_normal.png", "music_path"), + "country_cold" : character.Environment("assets/background/country_cold.png", "music_path"), + } - def __load_places(self): - # school - - # home - None - + return environments + + + + + + diff --git a/Saludame.activity/effects.py b/Saludame.activity/effects.py index d6c3967..ec3b6de 100755 --- a/Saludame.activity/effects.py +++ b/Saludame.activity/effects.py @@ -1,6 +1,9 @@ # -*- coding: utf-8 -*- class Effect: + """ + Represents effects that affect directly on the status bars. + """ def __init__(self, bars_controller, effect_satatus_list): """ @@ -8,9 +11,6 @@ class Effect: """ self.bars_controller = bars_controller self.effect_status_list = effect_satatus_list #list of tuples (bar_id, increase_rate) - - def add_effect(self, effect_status): - self.effect_status_list.append(effect_status) def activate(self): for effect_status in self.effect_status_list: @@ -19,8 +19,22 @@ class Effect: def set_bar_controller(self, bars_controller): self.bars_controller = bars_controller +class LocationEffect: + """ + Represents effects that set the character location. + """ + + def __init__(self, game_manager, place_id): + self.game_manager = game_manager + self.place_id = place_id + + def activate(self): + self.game_manager.set_character_location(self.place_id) + + def set_game_manager(self, game_manager): + self.game_manager = game_manager - + diff --git a/Saludame.activity/game.py b/Saludame.activity/game.py index 61605fd..c57d8f6 100755 --- a/Saludame.activity/game.py +++ b/Saludame.activity/game.py @@ -132,3 +132,4 @@ class Main(): if __name__ == "__main__": Main().main(False) + diff --git a/Saludame.activity/game_manager.py b/Saludame.activity/game_manager.py index 07ae93b..40e2240 100755 --- a/Saludame.activity/game_manager.py +++ b/Saludame.activity/game_manager.py @@ -4,6 +4,8 @@ CONTROL_INTERVAL = 15 #cantidad de señales hasta que realiza un checkeo de las EVENTS_OCCURRENCE_INTERVAL = 5 #per control interval after an event import random +import effects +import character class GameManager: """ @@ -11,7 +13,7 @@ class GameManager: y los eventos del juego. """ - def __init__(self, character, bars_controller, actions_list, events_list, places_list, moods_list, windows_controller): + def __init__(self, character, bars_controller, actions_list, events_list, places_list, environments_dictionary, moods_list, windows_controller): """ Constructor de la clase """ @@ -43,28 +45,82 @@ class GameManager: self.probability_ranges = self.__calculate_ranges(self.events_list) self.events_interval = EVENTS_OCCURRENCE_INTERVAL + #environment + self.environments_dictionary = environments_dictionary + self.current_weather = "sunny" # default weather + self.current_place = "schoolyard" # default place + + #for testing + self.p_i = 0 + def pause_game(self): self.pause = True def continue_game(self): self.pause = False + + def signal(self): + """ + Increment signal, it means that an iteration has been completed + """ + if not self.pause: + self.count += 1 + if(self.count >= CONTROL_INTERVAL): + self.__control_active_actions() #handle active character actions + self.bars_controller.calculate_score() #calculates the score of the score_bar + self.__control_active_events() #handle active events + self.__check_active_mood() # check if the active character mood + + self.count = 0 + - def set_active_action(self, action_id): - #place = get_place(self.character.actual_place) - #if(place.allowed_action(action_id)): #continúa con la acción, solo si es permitida en el lugar - if(not self.active_char_action): #Si existe una accion activa no la interrumpe - if(True): #dont check char's place yet - action = self.get_action(action_id) - if(action): - action.perform() - self.windows_controller.show_action_animation(action) - self.active_char_action = action +## Environment handling + + def set_character_location(self, place_id): + print "character went to: ", place_id + weather = self.get_current_weather() + environment_id = place_id + "_" + weather + environment = self.environments_dictionary[environment_id] + + self.windows_controller.set_environment(environment) - def get_active_action(self): + def set_current_weather(self, weather): + self.current_weather = weather + + + def get_current_weather(self): + l = ["rainy", "sunny", "cold", "normal"] + i = random.randint(0, 3) + if i == self.p_i: + return self.get_current_weather() + else: + self.p_i = i + + print "se genero el clima: ", l[i] + + return l[i] + + def get_place(self, place_id): """ - Return the character active action + Returns the place asociated to the place_id """ - return self.active_char_action + for place in self.places_list: + if(place.id == place_id): + return place + +## Actions handling + + def execute_action(self, action_id): + action = self.get_action(action_id) + + if isinstance(action.effect, effects.Effect): #this action affects status bars + self.set_active_action(action_id) + elif isinstance(action.effect, effects.LocationEffect): #this action affects character location + if(self.active_char_action): + self.interrupt_active_action(None) + action.perform() + action.reset() + def interrupt_active_action(self, action_id): """ @@ -74,12 +130,13 @@ class GameManager: """ self.active_char_action.reset() self.active_char_action = None + self.windows_controller.stop_actual_action_animation() if(action_id): action = self.get_action(action_id) if(action): self.active_char_action = action - + def add_background_action(self, action_id): """ Add a background action. @@ -87,29 +144,27 @@ class GameManager: action = self.get_action(action_id) if(action): self.background_actions.append(action) - - def signal(self): + + def get_active_action(self): """ - Increment signal, it means that an iteration has been completed + Return the character active action """ - if not self.pause: - self.count += 1 - if(self.count >= CONTROL_INTERVAL): - self.__control_active_actions() #handle active character actions - self.bars_controller.calculate_score() #calculates the score of the score_bar - self.__control_active_events() #handle active events - self.__check_active_mood() # check if the active character mood - - self.count = 0 + return self.active_char_action - def get_place(self, id_place): + def set_active_action(self, action_id): """ - Returns the place asociated to the id_place + Set the active char actions """ - for place in self.places_list: - if(place.id == id_place): - return place - + #place = get_place(self.character.actual_place) + #if(place.allowed_action(action_id)): #continúa con la acción, solo si es permitida en el lugar + if(not self.active_char_action): #Si existe una accion activa no la interrumpe + if(True): #dont check char's place yet + action = self.get_action(action_id) + if(action): + action.perform() + self.windows_controller.show_action_animation(action) + self.active_char_action = action + def get_action(self, action_id): """ Returns the action asociated to the id_action @@ -117,9 +172,11 @@ class GameManager: for action in self.actions_list: if(action.id == action_id): return action - + def __control_active_actions(self): - + """ + Controls active game actions. + """ for action in self.background_actions: action.perform() action.time_span = 1 #that means background actions never stop @@ -132,7 +189,6 @@ class GameManager: self.active_char_action = None self.windows_controller.stop_actual_action_animation() - ## Moods handling def __check_active_mood(self): @@ -229,3 +285,4 @@ class GameManager: + diff --git a/Saludame.activity/kid_window.py b/Saludame.activity/kid_window.py index 0349156..2ecd451 100644 --- a/Saludame.activity/kid_window.py +++ b/Saludame.activity/kid_window.py @@ -32,6 +32,11 @@ class KidWindow(Window): self.last_repaint = False + ##### Environment ##### + def set_environment(self, environment): + self.set_bg_image(pygame.image.load(environment.background_path).convert()) + self.kid.set_bg_image(self.bg_image.subsurface(self.kid_rect)) + ##### Moods ##### def change_mood(self): self.kid.change_mood() @@ -115,4 +120,5 @@ class KidBalloon(Window): screen.blit(self.bg, self.rect) return [self.rect] -
\ No newline at end of file + + diff --git a/Saludame.activity/menu.py b/Saludame.activity/menu.py index 38aa97c..53f0be2 100755 --- a/Saludame.activity/menu.py +++ b/Saludame.activity/menu.py @@ -76,7 +76,8 @@ class Menu(Window): Send an action to the game_manager. The action was selected in one of the sub-items """ - self.game_manager.set_active_action(action_id) + #self.game_manager.execute_action(action_id) + self.game_manager.execute_action(action_id) def set_actual_selection(self, actual_selection): """ @@ -172,8 +173,8 @@ class Item(Widget): y_size = max([icon.get_size()[1], text.get_size()[1]]) surface = pygame.Surface((x_size, y_size)) - surface.blit(icon, (0,0)) - surface.blit(text, (icon.get_size()[0] + 2,0)) + surface.blit(icon, (0, 0)) + surface.blit(text, (icon.get_size()[0] + 2, 0)) rect = surface.get_rect() Widget.__init__(self, container, rect, frame_rate, surface) @@ -205,3 +206,4 @@ class Item(Widget): self.menu.close() if(self.action_id != None): self.menu.send_action(self.action_id) + diff --git a/Saludame.activity/menu_creator.py b/Saludame.activity/menu_creator.py index a6214b3..aa61005 100755 --- a/Saludame.activity/menu_creator.py +++ b/Saludame.activity/menu_creator.py @@ -59,7 +59,20 @@ example = [ (_("Talk with a friend"), "assets/icons/icon.png", "talk_talk", None), (_("Do homework"), "assets/icons/icon.png", "study_study", None), (_("Clean up the bedroom"), "assets/icons/icon.png", "clean_clean", None) - ]) + ]), + + (_("ir a..."), "assets/icons/icon_parent.png", None, [ + (_("Schoolyard"), "assets/icons/icon.png", "goto_schoolyard", None), + (_("Country"), "assets/icons/icon.png", "goto_country", None), + (_("Classroom"), "assets/icons/icon.png", "goto_classroom", None), + (_("Square"), "assets/icons/icon.png", "goto_square", None), + (_("Home"), "assets/icons/icon_parent.png", None, [ + (_("Living room"), "assets/icons/icon.png", "goto_living", None), + (_("Bedroom"), "assets/icons/icon.png", "goto_bedroom", None), + (_("Kitchen"), "assets/icons/icon.png", "goto_kitchen", None), + (_("Bathroom"), "assets/icons/icon.png", "goto_bathroom", None) + ]) + ]) ] MENU_FRAME_RATE = 1 @@ -82,3 +95,4 @@ def create_item(item_tuple, a_menu, container, font): subitems = [] return menu.Item(container, MENU_FRAME_RATE, item_tuple[0], item_tuple[1], item_tuple[2], subitems, a_menu, font) + diff --git a/Saludame.activity/window.py b/Saludame.activity/window.py index d814e2c..911fe0d 100755 --- a/Saludame.activity/window.py +++ b/Saludame.activity/window.py @@ -155,3 +155,4 @@ class Window: def get_background(self): return self.get_background_and_owner()[0] + diff --git a/Saludame.activity/windows_controller.py b/Saludame.activity/windows_controller.py index e86baa6..51304e6 100755 --- a/Saludame.activity/windows_controller.py +++ b/Saludame.activity/windows_controller.py @@ -83,7 +83,12 @@ class WindowsController: W = [] for win in window.windows: W.append(win.register_id) - print(" (%s)" % (W)) + print(" (%s)" % (W)) + + ##### BACKGROUND ##### + + def set_environment(self, environment): + self.windows["kid"].set_environment(environment) ##### Actions ##### def show_action_animation(self, action): @@ -229,3 +234,4 @@ class ScaledGame: + |