From f9e189279b3b38d2ec59c5728ecbbf27c44d66f6 Mon Sep 17 00:00:00 2001 From: Kevin Hockey Date: Wed, 04 Aug 2010 20:29:58 +0000 Subject: fix for fps and hp bars --- (limited to 'MAFH2') diff --git a/MAFH2/BattleEngine.py b/MAFH2/BattleEngine.py index b9e2b1a..b3d38b0 100644 --- a/MAFH2/BattleEngine.py +++ b/MAFH2/BattleEngine.py @@ -51,8 +51,9 @@ class BattleEngine(GameEngineElement): self.__drawableObjects[i] = DrawableObject([pygame.image.load( HUD_PATH + i + ".gif" )], '') self.game_engine.get_scene().addObject(self.__drawableObjects[i]) - self.__drawableObjects['hp'] = DrawableObject(Spritesheet( HUD_PATH + "hp.gif" ).img_extract(11,1,100,100), '') + 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), '', True) + self.__drawableObjects['hp'].setColorKey((255,0,255)) self.game_engine.get_scene().addObject(self.__drawableObjects['hp']) self.game_engine.get_scene().addObject(self.__drawableObjects['bt']) @@ -352,8 +353,8 @@ class BattleEngine(GameEngineElement): #self terminate #print 'end battle called' self.remove_from_engine() - for object in self.__drawableObjects: - self.game_engine.get_scene().removeObject(object) + 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') @@ -401,6 +402,6 @@ class BattleEngine(GameEngineElement): # Player Health health = 10 - profile.hero.healthLevel() - self.__drawableObjects['hp'].goToAnim(health) + self.__drawableObjects['hp'].goToFrame(health) self.__drawableObjects['hp'].setPosition(25,25) diff --git a/MAFH2/BattleMenu.py b/MAFH2/BattleMenu.py index 4387fb6..bdd0919 100644 --- a/MAFH2/BattleMenu.py +++ b/MAFH2/BattleMenu.py @@ -30,9 +30,9 @@ class BattleMenuHolder( GameEngineElement ): def remove_from_engine(self): super( BattleMenuHolder, self ).remove_from_engine() - self.game_engine.removeObject(self.background) - self.game_engine.removeObject(self.disp) - self.game_engine.removeObject(self.sec_disp) + 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,screen,time_delta): @@ -40,7 +40,6 @@ class BattleMenuHolder( GameEngineElement ): self.disp.setPosition(250,340) self.sec_disp.setPosition(237, 375) - def menu_called(self, id): self.callback(id, self) @@ -82,8 +81,6 @@ class BattleMenuHolder( GameEngineElement ): [_("C"), lambda: self.menu_called('clear'),44,1], ['0', lambda: self.menu_called('0'),44,1], [_("E"), lambda: self.menu_called('enter'),44,1], - #[_("Clear"), lambda: self.menu_called('clear'),89,2], - #[_("Enter"), lambda: self.menu_called('enter'),134,3], ] elif id == "special": diff --git a/MAFH2/Profile.py b/MAFH2/Profile.py index b80c725..c2af1c7 100644 --- a/MAFH2/Profile.py +++ b/MAFH2/Profile.py @@ -125,15 +125,6 @@ class Profile(GameEngineElement): draw_width = width/4 draw_height = height/4 - - #font = pygame.font.Font(None, 16) - #text=font.render(self.name,True,(0,0,0)) - #textRect=(draw_width+60,draw_height+60,text.get_width(),text.get_height()) - #screen.blit(self.background_img,(0,0,width,height)) - #screen.fill((150,150,255),(draw_width,draw_height,2*draw_width,2*draw_height)) - #screen.blit(font.render(_("Enter name:"),True,(0,0,0)),(draw_width,draw_height)) - #screen.blit(font.render(_("Return to continue"),True,(0,0,0)),(draw_width+20,draw_height+20,20,20)) - #screen.blit(text, textRect) self.background.setPosition(0,0) self.blueRect.setPosition(draw_width, draw_height) diff --git a/MAFH2/assets/image/hud/hp.gif b/MAFH2/assets/image/hud/hp.gif index aa9bb7d..809f842 100644 --- a/MAFH2/assets/image/hud/hp.gif +++ b/MAFH2/assets/image/hud/hp.gif Binary files differ diff --git a/MAFH2/drawableobject/Spritesheet.py b/MAFH2/drawableobject/Spritesheet.py index 9fac747..bce2db5 100755 --- a/MAFH2/drawableobject/Spritesheet.py +++ b/MAFH2/drawableobject/Spritesheet.py @@ -4,7 +4,7 @@ class Spritesheet: """ Class from http://www.scriptedfun.com/transcript-2-using-sprite-sheets-and-drawing-the-background/ - This class can be used to seporate images from the sprite sheet + This class can be used to seperate images from the sprite sheet """ def __init__(self, filename): self.sheet = pygame.image.load(filename).convert_alpha() @@ -13,7 +13,8 @@ class Spritesheet: def imgat(self, rect, myColorKey = None): rect = pygame.Rect(rect) image = pygame.Surface(rect.size).convert_alpha() - if myColorKey == None: myColorKey = (255,0,255) + if myColorKey == None: + myColorKey = (255,0,255) image.set_colorkey(myColorKey) image.blit(self.sheet, (0, 0), rect) return image @@ -28,5 +29,5 @@ class Spritesheet: rect_list = [] for y in range(0, rows): for x in range(0, cols): - rect_list.append( (width*x, height*y, width, height,) ) + rect_list.append((width*x, height*y, width, height)) return self.imgsat( rect_list, myColorKey) diff --git a/MAFH2/fortuneengine/GameEngine.py b/MAFH2/fortuneengine/GameEngine.py index 54f8116..2560612 100644 --- a/MAFH2/fortuneengine/GameEngine.py +++ b/MAFH2/fortuneengine/GameEngine.py @@ -19,6 +19,7 @@ from GameEngineConsole import GameEngineConsole from GameInspect import GameInspect from DrawableObject import DrawableObject from DynamicDrawableObject import DynamicDrawableObject +from DrawableFontObject import DrawableFontObject from Scene import Scene @@ -52,7 +53,8 @@ class GameEngine(object): self.height = height size = width, height self.screen = pygame.display.set_mode(size) - self.__scene = Scene( DrawableObject([pygame.Surface((1,1))], '' )) + self.__fps = DrawableFontObject("", pygame.font.Font(None, 17)) + self.__scene = Scene(self.__fps) # Engine Internal Variables self.__fps_cap = fps_cap @@ -216,10 +218,10 @@ class GameEngine(object): self.__draw_calls[str(fnc)] += 1 # Print Frame Rate if self.__showfps: - text = self.__font.render('FPS: %d' % self.clock.get_fps(), - False, (255, 255, 255), (159, 182, 205)) - screen.blit(text, (0, 0)) - #pygame.display.flip() + self.__fps.changeText('FPS: %d' % self.clock.get_fps(), (255,255,255)) + self.__fps.setPosition(0,0) + else: + self.__fps.changeText('') self.__scene.update(tick_time) pygame.display.update(self.__scene.draw(screen)) diff --git a/MAFH2/fortuneengine/Scene.py b/MAFH2/fortuneengine/Scene.py index 13827d3..2cc0717 100644 --- a/MAFH2/fortuneengine/Scene.py +++ b/MAFH2/fortuneengine/Scene.py @@ -5,8 +5,8 @@ class Scene(pygame.sprite.RenderUpdates): def __init__(self, sprites): - self._spritelist = [] - self._spritelist.append([sprites, sprites.getXPos(), sprites.getYPos()]) + self._spritelist = [[sprites, sprites.getXPos(), sprites.getYPos()]] + #self._spritelist.append([sprites, sprites.getXPos(), sprites.getYPos()]) RenderUpdates.__init__(self, sprites) self.xPos = 0 @@ -48,12 +48,12 @@ class Scene(pygame.sprite.RenderUpdates): def addObject(self, newDrawableObject): RenderUpdates.add_internal(self, newDrawableObject) - self._spritelist.append([newDrawableObject, newDrawableObject.getXPos(), newDrawableObject.getYPos()]) + self._spritelist.insert(len(self._spritelist) - 1, [newDrawableObject, newDrawableObject.getXPos(), newDrawableObject.getYPos()]) def addObjects(self, newDrawableObjects): for sprite in newDrawableObjects: RenderUpdates.add_internal(self, sprite) - self._spritelist.append([sprite, sprite.getXPos(), sprite.getYPos()]) + self._spritelist.insert(len(self._spritelist) - 1, [sprite, sprite.getXPos(), sprite.getYPos()]) def setRelativePositions(self): -- cgit v0.9.1