From ac0447963b446323b25e0a96576a9d98124d4531 Mon Sep 17 00:00:00 2001 From: Kevin Hockey Date: Thu, 05 Aug 2010 18:45:44 +0000 Subject: Fortune Hunter now incorporates the auto-removal of registered drawable objects --- diff --git a/MAFH2/BattleEngine.py b/MAFH2/BattleEngine.py index 195dc42..eb27f30 100644 --- a/MAFH2/BattleEngine.py +++ b/MAFH2/BattleEngine.py @@ -45,20 +45,20 @@ class BattleEngine(GameEngineElement): if e_index != '0': curE = get_enemy( e_index ) self.enemy_list.append( curE ) - self.game_engine.get_scene().addObject(curE.get_sprite()) + self.add_to_scene([curE.get_sprite()]) # Preload images self.__drawableObjects = {} for i in ['arrow_select']: self.__drawableObjects[i] = DrawableObject([pygame.image.load( HUD_PATH + i + ".gif" )], '') - self.game_engine.get_scene().addObject(self.__drawableObjects[i]) + self.add_to_scene([self.__drawableObjects[i]]) self.__drawableObjects['hp'] = DrawableObject(Spritesheet( HUD_PATH + "hp.gif" ).img_extract(11,1,100,100,[255,0,255]), '') self.__drawableObjects['bt'] = DrawableObject(Spritesheet( HUD_PATH + "bt.gif" ).img_extract(1,11,100,25, [255,0,255]), '', True) self.__drawableObjects['hp'].setColorKey((255,0,255)) self.__drawableObjects['bt'].setColorKey((255,0,255)) - self.game_engine.get_scene().addObject(self.__drawableObjects['hp']) - self.game_engine.get_scene().addObject(self.__drawableObjects['bt']) + self.add_to_scene([self.__drawableObjects['hp']]) + self.add_to_scene([self.__drawableObjects['bt']]) self.add_to_engine() self.game_engine.add_object('battlemenu', BattleMenuHolder( self.menu_callback ) ) @@ -370,8 +370,6 @@ class BattleEngine(GameEngineElement): #self terminate #print 'end battle called' self.remove_from_engine() - for key in self.__drawableObjects: - self.game_engine.get_scene().removeObject(self.__drawableObjects[key]) self.game_engine.get_object('battlemenu').remove_from_engine() self.game_engine.remove_object('battle') diff --git a/MAFH2/BattleMenu.py b/MAFH2/BattleMenu.py index 2846f56..2cf1aec 100644 --- a/MAFH2/BattleMenu.py +++ b/MAFH2/BattleMenu.py @@ -18,9 +18,9 @@ class BattleMenuHolder( GameEngineElement ): self.font = pygame.font.SysFont("cmr10",18,False,False) self.disp = DrawableFontObject("", self.font) self.sec_disp = DrawableFontObject("", self.font) - self.game_engine.get_scene().addObject(self.background) - self.game_engine.get_scene().addObject(self.disp) - self.game_engine.get_scene().addObject(self.sec_disp) + self.add_to_scene([self.background]) + self.add_to_scene([self.disp]) + self.add_to_scene([self.sec_disp]) def set_disp(self, msg): self.disp.changeText(msg, (0,0,0)) @@ -30,9 +30,6 @@ class BattleMenuHolder( GameEngineElement ): def remove_from_engine(self): super( BattleMenuHolder, self ).remove_from_engine() - self.game_engine.get_scene().removeObject(self.background) - self.game_engine.get_scene().removeObject(self.disp) - self.game_engine.get_scene().removeObject(self.sec_disp) self.clear_menu() def draw(self): @@ -177,7 +174,7 @@ class Menu(object): self.scene.addObjects(self.font_list) def draw(self): - self.scene.drawEntireScene(surface) + #self.scene.drawEntireScene(surface) """Draw the menu to the surface.""" i=0 # Row Spacing h=0 # Selection Spacing diff --git a/MAFH2/Dungeon.py b/MAFH2/Dungeon.py index e945fea..732c96a 100644 --- a/MAFH2/Dungeon.py +++ b/MAFH2/Dungeon.py @@ -17,7 +17,6 @@ from constants import ( from JournalIntegration import do_load, load_dungeon_by_id from fortuneengine.DrawableObject import DrawableObject from fortuneengine.DynamicDrawableObject import DynamicDrawableObject -from fortuneengine.Scene import Scene SEARCH_TIME = 2 COLOR_DELTA = 255/SEARCH_TIME @@ -48,7 +47,7 @@ class Dungeon(GameEngineElement): #for door in self.doorsList: door.makeTransparent(True) - self.game_engine.get_scene().addObjects(self.doorsList) + self.add_to_scene(self.doorsList) self.itemsList = [] @@ -62,7 +61,7 @@ class Dungeon(GameEngineElement): self.itemsList[1].setPosition(self.game_engine.art_scale(100, 1200, True),self.game_engine.art_scale(600, 900, False)) self.itemsList[2].setPosition(self.game_engine.art_scale(1100, 1200, True),self.game_engine.art_scale(600, 900, False)) self.itemsList[3].setPosition(self.game_engine.art_scale(900, 1200, True),self.game_engine.art_scale(330, 900, False)) - self.game_engine.get_scene().addObjects(self.itemsList) + self.add_to_scene(self.itemsList) self.add_to_engine() def add_to_engine(self): diff --git a/MAFH2/MafhGameMenu.py b/MAFH2/MafhGameMenu.py index 6ed0d46..0705b6d 100644 --- a/MAFH2/MafhGameMenu.py +++ b/MAFH2/MafhGameMenu.py @@ -9,12 +9,11 @@ class GameMenuHolder( GameEngineElement ): self.callback = callback self.background = DrawableObject([pygame.image.load(background).convert()], '') self.background.scale(width, height) - self.game_engine.get_scene().addObject(self.background) + self.add_to_scene([self.background]) self.width = width self.height = height def remove_from_engine(self): - self.game_engine.get_scene().removeObject(self.background) super( GameMenuHolder, self ).remove_from_engine() self.clear_menu() diff --git a/MAFH2/MagicMenu.py b/MAFH2/MagicMenu.py index 8e4ea56..4f30787 100644 --- a/MAFH2/MagicMenu.py +++ b/MAFH2/MagicMenu.py @@ -16,14 +16,14 @@ class MagicMenuHolder( GameEngineElement ): self.callback = callback self.background = DrawableObject([pygame.image.load( MENU_PATH + "battleMenubackground.gif")], '') self.background.setPosition(0,286) - self.game_engine.get_scene().addObject(self.background) + self.add_to_scene([self.background]) def remove_from_engine(self): - self.game_engine.get_scene().removeObject(self.background) + #self.game_engine.get_scene().removeObject(self.background) super( MagicMenuHolder, self ).remove_from_engine() self.clear_menu() - def draw(self,screen,time_delta): + def draw(self): pass def menu_called(self, id): @@ -102,8 +102,8 @@ class MagicMenu(GameEngineElement): def event_handler(self, event): return self.menu.update(event) - def draw(self,screen,time_delta): - self.menu.draw( screen ) + def draw(self): + self.menu.draw() def clear(self): self.menu.clear() @@ -223,7 +223,7 @@ class Menu(object): self.height = (len(self.options)*self.buttons[1].getYSize()) / self.cols - def draw(self, surface): + def draw(self): """Draw the menu to the surface.""" i=0 # Row Spacing h=0 # Selection Spacing @@ -240,7 +240,6 @@ class Menu(object): if h==self.option: self.selectRect.setPosition(newX, newY) self.buttons[index].setPosition(newX, newY) - #surface.blit(self.buttons[index], (newX, newY) ) j+=1 h+=1 @@ -252,7 +251,6 @@ class Menu(object): # Draw reference glyphs for i in range(4): if i in self.magic_list: - #surface.blit(self.glyphs[i], (800+((i%2) * 150), 350+(i/2 * 150))) self.reference[i].makeTransparent(False) self.reference[i].setPosition(800+((i%2) * 150), 350+(i/2 * 150)) diff --git a/MAFH2/Map.py b/MAFH2/Map.py index 2cecf66..d722efd 100644 --- a/MAFH2/Map.py +++ b/MAFH2/Map.py @@ -51,7 +51,7 @@ class Map(GameEngineElement): self.add_to_engine() #Adds itself and all callbacks to the engine self.myDrawableObject = DrawableObject([pygame.Surface((0,0))], '') - self.game_engine.get_scene().addObject(self.myDrawableObject) + self.add_to_scene([self.myDrawableObject]) def event_handler(self, event): if event.type == pygame.KEYDOWN: diff --git a/MAFH2/Profile.py b/MAFH2/Profile.py index 6e02a77..2494695 100644 --- a/MAFH2/Profile.py +++ b/MAFH2/Profile.py @@ -36,7 +36,7 @@ class Profile(GameEngineElement): bg = pygame.image.load(MENU_PATH+"mafh_splash.gif").convert() self.background = DrawableObject([bg], '') self.background.scale(self.game_engine.width, self.game_engine.height) - self.game_engine.get_scene().addObject(self.background) + self.add_to_scene([self.background]) #create background rect draw_width = self.game_engine.width/4 @@ -44,14 +44,14 @@ class Profile(GameEngineElement): surf = pygame.Surface((draw_width+60,draw_height+60)) surf.fill((150,150,255)) self.blueRect = DrawableObject([surf],"") - self.game_engine.get_scene().addObject(self.blueRect) + self.add_to_scene([self.blueRect]) font = pygame.font.Font(None, 16) self.text_list = [] self.text_list.append(DrawableFontObject("1", font)) self.text_list.append(DrawableFontObject("2", font)) self.text_list.append(DrawableFontObject("name",font)) - self.game_engine.get_scene().addObjects(self.text_list) + self.add_to_scene(self.text_list) if recall_string: @@ -114,11 +114,6 @@ class Profile(GameEngineElement): def remove_from_engine(self): super( Profile, self).remove_from_engine() - self.game_engine.get_scene().removeObject(self.background) - self.game_engine.get_scene().removeObject(self.blueRect) - - for dfo in self.text_list: - self.game_engine.get_scene().removeObject(dfo) def event_handler(self, event): """ diff --git a/MAFH2/TermBox.py b/MAFH2/TermBox.py index cb5c4f1..c0b6b9c 100644 --- a/MAFH2/TermBox.py +++ b/MAFH2/TermBox.py @@ -17,8 +17,8 @@ class TermBox(GameEngineElement): self.__lines = [] for i in range(lines): self.__lines.append(DrawableFontObject('', self.font)) - self.game_engine.get_scene().addObject(self.box) - self.game_engine.get_scene().addObjects(self.__lines) + self.add_to_scene([self.box]) + self.add_to_scene(self.__lines) self.add_to_engine() def add_line(self, line): diff --git a/MAFH2/fortuneengine/GameEngineElement.py b/MAFH2/fortuneengine/GameEngineElement.py index bdceae9..3f51f2f 100644 --- a/MAFH2/fortuneengine/GameEngineElement.py +++ b/MAFH2/fortuneengine/GameEngineElement.py @@ -14,9 +14,9 @@ # Author: Justin Lewis from fortuneengine.GameEngine import GameEngine -from fortuneengine.DrawableFontObject import DrawableFontObject -from fortuneengine.DrawableObject import DrawableObject -from fortuneengine.DynamicDrawableObject import DynamicDrawableObject +#from fortuneengine.DrawableFontObject import DrawableFontObject +#from fortuneengine.DrawableObject import DrawableObject +#from fortuneengine.DynamicDrawableObject import DynamicDrawableObject class GameEngineElement(object): @@ -86,7 +86,7 @@ class GameEngineElement(object): if not (self.__ddo_list == []): for object in self.__ddo_list: - self.game_engine.removeObject(object) + self.game_engine.get_scene().removeObject(object) def event_handler(self, event): -- cgit v0.9.1