def main(): pygame.init() pygame.time.Clock pygame.mixer.music.load(data.filepath('title.wav')) pygame.mixer.music.play(-1) pygame.mouse.set_visible(1) pygame.display.set_caption('Super Mario Bros.') screen = pygame.display.set_mode((640,460)) spritesheet = Spritesheet('mario.png') level = Level() Level.tiles = spritesheet.imgsat([(48,336,15,15), (0, 0, 15, 15), (144,144,15,15)]) Level.hills = spritesheet.imgsat([(128,128,15,15), (128,128,15,30), (144,141,15,18), (160,128,15,31), (160,128,15,15)],-1) level.makebg(0) screen.blit(level.background,(0,0)) while 1: pygame.display.flip() for event in pygame.event.get(): if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE): return
def __init__(self, dgn): GameEngineElement.__init__(self, has_draw=True, has_event=True) self.dgn = dgn self.current_room = dgn.get_current_room() self.font = pygame.font.SysFont("cmr10", 18, False, False) self.enemy_list = [] #Holds the list of enemies self.magic_list = [] #Holds list of magic used? self.spellType = 0 #0 = non, 1-4 are spells in order, 5 is special self.isMagic = False self.correct = False self.state = PLAYER_WAIT self.player_input = '0' self.active_target = 1 self.battleTimer = -1.0 self.tIndex = 0 for i in range(0, 4): e_index = self.current_room.get_enemy(i) if e_index != '0': curE = get_enemy(e_index) self.enemy_list.append(curE) 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.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.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)) self.game_engine.get_object('battlemenu').show_menu('selection') self.game_engine.get_object('mesg').add_line( _('Enemies present, prepare to fight!'))
def initialize(): rows = ('ABCDEFGHIJKLM', 'NOPQRSTUVWXYZ', '0123456789', '-.,!\'& ') ss = Spritesheet(bmpres('text.bmp')) global TEXT TEXT = {} for j in range(len(rows)): row = rows[j] for i in range(len(row)): l = row[i] TEXT[l] = ss.image_at((i*8,j*8,8,8), colorkey=BLACK)
def main(): pygame.init() pygame.time.Clock pygame.mixer.music.load(data.filepath("title.wav")) pygame.mixer.music.play(-1) pygame.mouse.set_visible(1) pygame.display.set_caption("Super Mario Bros.") screen = pygame.display.set_mode((640, 460)) spritesheet = Spritesheet("mario.png") level = Level() Level.tiles = spritesheet.imgsat([(48, 336, 15, 15), (0, 0, 15, 15), (144, 144, 15, 15)]) Level.hills = spritesheet.imgsat( [(128, 128, 15, 15), (128, 128, 15, 30), (144, 141, 15, 18), (160, 128, 15, 31), (160, 128, 15, 15)], -1 ) level.makebg(0) screen.blit(level.background, (0, 0)) while 1: pygame.display.flip() for event in pygame.event.get(): if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE): return
def __init__(self, id): Actor.__init__(self) #id = 'a' self.weakness = None self.eqItems_Ar = [] #equipped items self.attacks_Ar = [ ] #associated array for attack string names and attack power values self.eqItem_Ar = [] self.inv_Ar = [] self.attacks_Ar = [] col, row, width, height = ENEMY[id]['sprite'] self.sprite = DynamicDrawableObject( Spritesheet(CHAR_PATH + ENEMY[id]['img']).img_extract( col, row, width, height), "", 24) self.place = 0 self.alive = True #load image based on type later self.name = ENEMY[id]['name'] #self.sprite.image=pygame.image.load(CHAR_PATH + ENEMY[id]['img']) self.HP = ENEMY[id]['hp'] self.MHP = ENEMY[id]['hp'] self.ATT = ENEMY[id]['att'] self.weakness = ENEMY[id]['weak']
def __init__(self): self._cache = [] self._deathanims = [] self._debugging = False if '-aabbdebug' in sys.argv: self._debugging = True self._startmap = 'ow8-8.map' if '-startm' in sys.argv: self._startmap = sys.argv[sys.argv.index('-startm')+1] self._starthearts = 3 if '-hearts' in sys.argv: self._starthearts = int(sys.argv[sys.argv.index('-hearts')+1]) random.seed() self._SCREENW=256 self._SCREENH=240 self._MAPW=256 self._MAPH=176 self._OFFSET=self._SCREENH-self._MAPH self._UBOUND = pygame.Rect(0, 0, self._MAPW, 8) self._RBOUND = pygame.Rect(self._MAPW, 0, 8, self._MAPH) self._BBOUND = pygame.Rect(0, self._MAPH, self._MAPW, 8) self._LBOUND = pygame.Rect(-8, 0, 8, self._MAPH) self._TEXTSPEED=4 self._sword = None self._haabb = pygame.Rect(0, Tile.HALF, Tile.SIZE, Tile.HALF) self._vaabb = pygame.Rect(2, Tile.HALF, Tile.SIZE-4, Tile.HALF) self._spelunking = 0 self._zoning = None self._zoom = 2 pygame.init() size = width, height = self._SCREENW*self._zoom, self._SCREENH*self._zoom self._screen = pygame.display.set_mode(size) linkpalette = (((0,0,0),(0,0,0)),((128,128,128),(200,76,12)),((192,192,192),(128,208,16)),((255,255,255),(252,152,56))) wss = Spritesheet(bmpres('weapons.bmp')) self._swordsprite = colorReplace(wss.image_at((0,0,8,16), colorkey=(0,0,0)), linkpalette) ssprite = self._swordsprite lssprite = pygame.transform.rotate(ssprite,90) self._swordsprites = {x:y for x,y in zip(DIRECTIONS, (ssprite, pygame.transform.flip(ssprite,False,True), lssprite, pygame.transform.flip(lssprite,True,False)))} self._lifetxt = Text.get('-LIFE-', (216,40,0)) self._btxt = Text.get('Z')[0] self._atxt = Text.get('X')[0] iss = Spritesheet(bmpres('icons.bmp')) heart = iss.image_at((0,0,8,8), colorkey=(0,0,0)) self._fullheart = colorReplace(heart, (((128,128,128), (216,40,0)),)) self._halfheart = colorReplace(iss.image_at((8,0,8,8), colorkey=(0,0,0)), (((128,128,128),(216,40,0)),((255,255,255),(255,227,171)))) self._emptyheart = colorReplace(heart, (((128,128,128),(255,227,171)),)) self._uibox = {} self._uibox['ul'] = colorReplace(iss.image_at((0,8,8,8), colorkey=(0,0,0)), (((128,128,128),(0,89,250)),)) self._uibox['v'] = colorReplace(iss.image_at((8,8,8,8), colorkey=(0,0,0)), (((128,128,128),(0,89,250)),)) self._uibox['h'] = pygame.transform.rotate(self._uibox['v'], 90) self._uibox['ur'] = pygame.transform.flip(self._uibox['ul'], True, False) self._uibox['br'] = pygame.transform.flip(self._uibox['ur'], False, True) self._uibox['bl'] = pygame.transform.flip(self._uibox['ul'], False, True) self._uirupee, self._uikey, self._uibomb = iss.images_at(((0,16,8,8), (8,16,8,8), (16,16,8,8)), colorkey=(0,0,0)) self._uirupee = colorReplace(self._uirupee, (((128,128,128),(255,161,68)),((255,255,255),(255,227,171)))) self._uikey = colorReplace(self._uikey, (((128,128,128),(255,161,68)),)) self._uibomb = colorReplace(self._uibomb, (((192,192,192),(0,89,250)),)) ss = Spritesheet(bmpres('link.bmp')) s = {} s[Direction.UP] = [colorReplace(sp, (((0,0,0),(0,0,0)),((128,128,128),(200,76,12)),((192,192,192),(128,208,16)),((255,255,255),(252,152,56)))) for sp in ss.images_at(((16,0,16,16),(16,16,16,16)), colorkey=(0,0,0))] s[Direction.DOWN] = [colorReplace(sp, (((0,0,0),(0,0,0)),((128,128,128),(200,76,12)),((192,192,192),(128,208,16)),((255,255,255),(252,152,56)))) for sp in ss.images_at(((0,0,16,16),(0,16,16,16)), colorkey=(0,0,0))] s[Direction.LEFT] = [colorReplace(sp, (((0,0,0),(0,0,0)),((128,128,128),(200,76,12)),((192,192,192),(128,208,16)),((255,255,255),(252,152,56)))) for sp in ss.images_at(((32,0,16,16),(32,16,16,16)), colorkey=(0,0,0))] atks = {} atks[Direction.UP] = colorReplace(ss.image_at((16,32,16,16), colorkey=(0,0,0)), linkpalette) atks[Direction.DOWN] = colorReplace(ss.image_at((0,32,16,16), colorkey=(0,0,0)), linkpalette) atks[Direction.LEFT] = colorReplace(ss.image_at((32,32,16,16), colorkey=(0,0,0)), linkpalette) self._pc = Actor(15*8,11*8,2,self._starthearts*16,8,self._vaabb,True,s,atksprites=atks) self._pc.sethitaabb(pygame.Rect(0,0,16,16)) self._pc.addtriumphs((colorReplace(ss.image_at((48,0,16,16), colorkey=(0,0,0)), linkpalette),colorReplace(ss.image_at((48,16,16,16), colorkey=(0,0,0)), linkpalette))) self._pcweapons = [] self._temps = [] self._startport = Portal(self._startmap, 15*8, 10*8, PortalType.Magic) self._start()