예제 #1
0
    def draw_opponent_pokemon(self):
        left, top = self.left_top_coords_of_box(9, 0.5)
        size = self.boxsize * 4
        # pygame.draw.rect(self.displaySurface, WHITE, (left, top, size, size))
        opponentImage = load_pokemon_sprite(self.opposingPokemon)
        opponentImage = pygame.transform.scale(opponentImage, (size, size))
        self.displaySurface.blit(opponentImage, (left, top))

        left, top = self.left_top_coords_of_box(0.75, 0.75)
        pygame.draw.rect(self.displaySurface, SILVER,
                         (left, top, self.boxsize * 6.125, self.boxsize * 1.5))
        pygame.draw.rect(self.displaySurface, BLACK,
                         (left, top, self.boxsize * 6.125, self.boxsize * 1.5),
                         self.halfLinewidth)

        left, top = self.left_top_coords_of_box(1, 1)
        opponentText = '{:10s}'.format(self.opposingPokemon.name)
        textSurf, textRect = make_text(opponentText,
                                       BLACK,
                                       SILVER,
                                       left,
                                       top,
                                       size=self.textSize)
        self.displaySurface.blit(textSurf, textRect)

        left, top = self.left_top_coords_of_box(4.75, 1)
        opponentText = 'lv.{:2d}'.format(self.opposingPokemon.level)
        textSurf, textRect = make_text(opponentText,
                                       BLACK,
                                       SILVER,
                                       left,
                                       top,
                                       size=self.textSize)
        self.displaySurface.blit(textSurf, textRect)
예제 #2
0
    def draw_opponent_pokemon(self):
        pygame.draw.rect(self.displaySurface, WHITE, (300, 50, 250, 250))
        opponentImage = load_pokemon_sprite(self.opposingPokemon)
        opponentImage = pygame.transform.scale(opponentImage, (250, 250))
        self.displaySurface.blit(opponentImage, (300, 50))

        opponentText = '{:11s}'.format(self.opposingPokemon.name)
        textSurf, textRect = make_text(opponentText, BLACK, WHITE, 50, 45)
        self.displaySurface.blit(textSurf, textRect)
        opponentText = 'lv.{:2d}'.format(self.opposingPokemon.level)
        textSurf, textRect = make_text(opponentText,
                                       BLACK,
                                       WHITE,
                                       50,
                                       70,
                                       size=18)
        self.displaySurface.blit(textSurf, textRect)
예제 #3
0
    def draw_player_pokemon(self):
        pygame.draw.rect(self.displaySurface, WHITE, (50, 300, 250, 250))
        playerImage = load_pokemon_sprite(self.playerPokemon, frontBack='back')
        playerImage = pygame.transform.scale(playerImage, (250, 250))
        # playerImage = pygame.transform.flip(playerImage, True, False)
        self.displaySurface.blit(playerImage, (50, 300))

        playerText = '{:11s}'.format(self.playerPokemon.name)
        textSurf, textRect = make_text(playerText, BLACK, WHITE, 350, 420)
        self.displaySurface.blit(textSurf, textRect)
        playerText = 'lv.{:2d}'.format(self.playerPokemon.level)
        textSurf, textRect = make_text(playerText,
                                       BLACK,
                                       WHITE,
                                       350,
                                       445,
                                       size=18)
        self.displaySurface.blit(textSurf, textRect)
        self.draw_exp_bar()
예제 #4
0
    def draw_player_pokemon(self):
        left, top = self.left_top_coords_of_box(2, 3)
        size = self.boxsize * 4
        # pygame.draw.rect(self.displaySurface, WHITE, (left, top, size, size))
        playerImage = load_pokemon_sprite(self.playerPokemon, frontBack='back')
        playerImage = pygame.transform.scale(playerImage, (size, size))
        # playerImage = pygame.transform.flip(playerImage, True, False)
        self.displaySurface.blit(playerImage, (left, top))

        left, top = self.left_top_coords_of_box(7.75, 4.75)
        pygame.draw.rect(self.displaySurface, SILVER,
                         (left, top, self.boxsize * 6.125, self.boxsize * 2.5))
        pygame.draw.rect(self.displaySurface, BLACK,
                         (left, top, self.boxsize * 6.125, self.boxsize * 2.5),
                         self.halfLinewidth)

        left, top = self.left_top_coords_of_box(8, 5)
        playerText = '{:10s}'.format(self.playerPokemon.name)
        textSurf, textRect = make_text(playerText,
                                       BLACK,
                                       SILVER,
                                       left,
                                       top,
                                       size=8 * (self.scale - 1))
        self.displaySurface.blit(textSurf, textRect)

        left, top = self.left_top_coords_of_box(11.75, 5)
        playerText = 'lv.{:2d}'.format(self.playerPokemon.level)
        textSurf, textRect = make_text(playerText,
                                       BLACK,
                                       SILVER,
                                       left,
                                       top,
                                       size=8 * (self.scale - 1))
        self.displaySurface.blit(textSurf, textRect)
        self.draw_exp_bar()
예제 #5
0
    def choose_battler_from_party(self):
        self.displaySurface.fill(WHITE)
        pygame.draw.rect(self.displaySurface, BLACK, (25, 25, 550, 650), 5)
        pygame.draw.rect(self.displaySurface, BLACK, (25, 555, 550, 120), 5)
        pygame.display.update()

        pokeCoords = [(40, 250), (300, 50), (300, 145), (300, 240), (300, 335),
                      (300, 430)]
        rects = []
        # draw boxes
        for i in range(6):
            left, top = pokeCoords[i]
            rect = pygame.draw.rect(self.displaySurface, BLACK,
                                    (left, top, 250, 90), 4)
            rects.append(rect)

        for i, pokemon in enumerate(self.player.party):
            left, top = pokeCoords[i]
            # pokemon image
            image = load_pokemon_sprite(pokemon)
            image = pygame.transform.scale(image, (85, 85))
            self.displaySurface.blit(image, (left + 4, top + 3))
            # pokemon name, status
            surf, rect = make_text('{:12}'.format(pokemon.name),
                                   BLACK,
                                   WHITE,
                                   left + 115,
                                   top + 6,
                                   size=18)
            self.displaySurface.blit(surf, rect)
            surf, rect = make_text('lv. %i' % pokemon.level,
                                   BLACK,
                                   WHITE,
                                   left + 115,
                                   top + 24,
                                   size=16)
            self.displaySurface.blit(surf, rect)
            # pokemon hp
            hpPct, color = pokemon.hp_bar()
            pygame.draw.rect(self.displaySurface, BLACK,
                             (left + 115, top + 45, 130, 20), 2)
            if pokemon.hp != 0:
                pygame.draw.rect(self.displaySurface, color,
                                 (left + 117, top + 47, 127 * hpPct, 17))

            statusText = pokemon.status.displayText.center(5)
            surf, rect = make_text(statusText,
                                   BLACK,
                                   pokemon.status.displayColor,
                                   left + 190,
                                   top + 24,
                                   size=16)
            self.displaySurface.blit(surf, rect)

            if pokemon.fainted:
                statusText = 'FNT'.center(5)
                surf, rect = make_text(statusText,
                                       BLACK,
                                       GRAY,
                                       left + 190,
                                       top + 24,
                                       size=16)
                self.displaySurface.blit(surf, rect)

        pygame.display.update()

        selected = False

        while not selected:
            messages = []

            for event in pygame.event.get():
                if event.type == QUIT or (event.type == KEYUP
                                          and event.key == K_ESCAPE):
                    pygame.quit()
                    sys.exit()
                elif event.type == KEYUP:
                    if event.key == K_q:
                        return None

                elif event.type == MOUSEBUTTONDOWN:
                    mousex, mousey = event.pos
                    for i in range(len(self.player.party)):
                        if rects[i].collidepoint(mousex, mousey):
                            if i == 0:
                                messages.append('%s is already in battle!' %
                                                self.player.party[0].name)
                                break
                            pokeNumber = i
                            selected, messages = self.player.party[i].select()

            if messages:
                self.draw_messages(messages)
                pygame.draw.rect(self.displaySurface, WHITE,
                                 (40, 575, 250, 90))
                pygame.display.update()

        return pokeNumber