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)
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)
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()
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()
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