Tạo Menu Bắt đầu trong Pygame

Category: Pygame

Pygame là một thư viện Python chuyên dụng để thiết kế và xây dựng trò chơi. Pygame chỉ hỗ trợ các trò chơi 2D được xây dựng bằng các hình dạng hoặc sprite khác nhau. Pygame không có thiết kế bố cục tích hợp hay bất kỳ hệ thống giao diện người dùng (UI) nào, nghĩa là không có cách nào dễ dàng để tạo giao diện người dùng (UI) hoặc màn chơi cho trò chơi. Cách duy nhất để tạo màn chơi hoặc các menu khác nhau trong Pygame là sử dụng các hàm.

Sử dụng các hàm như menu

Các hàm trong Pygame là một cách để chứa các menu hoặc cấp độ khác nhau bằng cách xác định loại sự kiện trong mỗi hàm, sau đó gọi các hàm từ hàm chứa tương ứng. 

Ví dụ, hàm trò chơi sẽ được gọi nếu người chơi nhấn nút "Play" trên menu Bắt đầu. Vì vậy, hàm menu Bắt đầu sẽ trở thành hàm chứa cho hàm trò chơi. Điều quan trọng cần lưu ý là hàm bắt đầu không thể được gọi trực tiếp từ hàm trò chơi. Nếu trò chơi có nhiều cấp độ mở khóa khác nhau, thì cấp độ trước đó sẽ trở thành hàm chứa cho cấp độ tiếp theo.

Mã mẫu cho trò chơi có chứa menu bắt đầu

Chương trình Python để minh họa Menu và Cấp độ

import pygame 
import sys 

# khởi tạo pygame
pygame.init() 

# độ phân giải màn hình 
res = (720,720) 

# mở cửa sổ game 
screen = pygame.display.set_mode(res) 

# màu trắng 
color = (255,255,255) 

# màu sáng của nút 
color_light = (170,170,170) 

# màu tối của nút 
color_dark = (100,100,100) 

# lưu chiều rộng của màn hình vào biến 
width = screen.get_width() 

# lưu chiều cao của màn hình vào biến 
height = screen.get_height() 

# định nghĩa font chữ 
smallfont = pygame.font.SysFont('Corbel',35) 

# tạo text hiển thị với font đã định nghĩa 
text = smallfont.render('quit' , True , color) 

while True: 
    
    for ev in pygame.event.get(): 
        
        if ev.type == pygame.QUIT: 
            pygame.quit() 
            
        # kiểm tra nếu chuột được nhấn 
        if ev.type == pygame.MOUSEBUTTONDOWN: 
            
            # nếu chuột nhấn vào nút thì thoát game 
            if width/2 <= mouse[0] <= width/2+140 and height/2 <= mouse[1] <= height/2+40: 
                pygame.quit() 
                
    # tô màu nền cho màn hình 
    screen.fill((60,25,60)) 
    
    # lấy tọa độ chuột và lưu vào biến dưới dạng tuple 
    mouse = pygame.mouse.get_pos() 
    
    # nếu chuột di chuyển vào nút thì đổi sang màu sáng hơn 
    if width/2 <= mouse[0] <= width/2+140 and height/2 <= mouse[1] <= height/2+40: 
        pygame.draw.rect(screen,color_light,[width/2,height/2,140,40]) 
        
    else: 
        pygame.draw.rect(screen,color_dark,[width/2,height/2,140,40]) 
    
    # vẽ chữ lên trên nút 
    screen.blit(text , (width/2+50,height/2)) 
    
    # cập nhật khung hình trò chơi 
    pygame.display.update() 

Đầu ra:

Published on Jul 28, 2025

Related Posts