Example #1
0
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
Example #2
0
    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!'))
Example #3
0
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)
Example #4
0
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
Example #5
0
    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']
Example #6
0
 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()