Esempio n. 1
0
class Game:
    def __init__(self, width, height, bg_color):
        pygame.init()
        self.displaySurface = pygame.display.set_mode((width, height))
        self.bgColor = bg_color
        pygame.display.set_caption("GOKU")

        self.tilemap = tmx.load("test.tmx", self.displaySurface.get_size())
        self.players = tmx.SpriteLayer()
        self.enemies = tmx.SpriteLayer()
        self.blasts = tmx.SpriteLayer()
        self.hud = tmx.SpriteLayer()
        self.dragonball = tmx.SpriteLayer()
        self.checkpoints = Checkpoint()
        #self.bg = pygame.image.load('res/Map/dbz_background.jpg')
        player_cell = self.tilemap.layers["triggers"].find("player")[0]
        enemy_cells = self.tilemap.layers["triggers"].find("enemy")
        checkpoint_cells = self.tilemap.layers["triggers"].find("checkpoint")
        finish = self.tilemap.layers["triggers"].find("finish")[0]

        for cell in enemy_cells:
            self.enemies.add(Henchmen2((cell.left, cell.bottom)))

        for checkpoint in checkpoint_cells:
            self.checkpoints.add_checkpoint((checkpoint.px, checkpoint.py))

        self.goku = Goku((player_cell.px, player_cell.py))
        #  self.vegeta = Vegeta((400, 200))
        self.players.add(self.goku)
        self.hud.add(Hud(self.goku))
        self.dragonball.add(Dragonball((finish.px, finish.py)))
        # self.players.add(self.vegeta)
        self.fpsClock = pygame.time.Clock()
        self.tilemap.layers.append(self.players)
        self.tilemap.layers.append(self.enemies)
        self.tilemap.layers.append(self.blasts)
        self.tilemap.layers.append(self.hud)
        self.tilemap.layers.append(self.dragonball)

    def main(self):
        while True:  # Main Game Loop
            dt = self.fpsClock.tick(30)
            for event in pygame.event.get():
                if event.type == QUIT:
                    pygame.quit()
                    sys.exit()

            self.displaySurface.fill(self.bgColor)
            #self.displaySurface.blit(self.bg, (0,0))
            # self.tilemap.set_focus(self.goku.rect.x, self.goku.rect.y)
            self.tilemap.update(dt / 1000, self)
            self.tilemap.draw(self.displaySurface)
            pygame.display.update()