-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchoose.py
53 lines (47 loc) · 2.45 KB
/
choose.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import pygame
import button
class Choose:
def __init__(self, screen_width, screen_height):
self.screen_width = screen_width
self.screen_height = screen_height
self.characters = [
'images/shooter-resized.png',
'images/dragon-resized.png',
'images/gaudau-resized.png',
'images/sakura-resized.png',
'images/invader_3.png'
]
self.selected_character = 0 # Nhân vật mặc định
self.font = pygame.font.Font('fonts/SVN-Determination Sans.otf', 50)
def character_select(self, screen, menu_state):
background_img = pygame.image.load('images/background2.png').convert()
background_img = pygame.transform.scale(background_img, (self.screen_width, self.screen_height))
thoat_img = pygame.image.load('images/btn_thoat.png').convert_alpha()
thoat_button = button.Button(375, 500, thoat_img, 0.3)
choosing = True
while choosing:
screen.blit(background_img, (0, 0))
title = self.font.render("Chọn nhân vật của bạn", True, (255, 255, 255))
screen.blit(title, (130, 150))
for i, character in enumerate(self.characters):
char_image = pygame.image.load(character)
char_rect = char_image.get_rect(center=(self.screen_width // 2 - (len(self.characters) // 2 * 150) + i * 150, 300))
screen.blit(char_image, char_rect)
if i == self.selected_character:
pygame.draw.rect(screen, (176, 252, 248), char_rect.inflate(10, 10), 3)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
self.selected_character = max(0, self.selected_character - 1)
if event.key == pygame.K_RIGHT:
self.selected_character = min(len(self.characters) - 1, self.selected_character + 1)
if event.key == pygame.K_RETURN:
menu_state[0] = "level"
choosing = False # Người chơi đã chọn nhân vật
if thoat_button.draw(screen):
menu_state[0] = "main"
choosing = False
pygame.display.update()
return self.selected_character # Trả về chỉ số nhân vật đã chọn