Tham số
Thuộc phần Python trong cửa sổ trò chơi trong hành trình Pygame của Coddy. Bài học 22 trên 33.
Một hàm luôn vẽ tại tọa độ (320, 240) thì chẳng hữu ích lắm. Tham số (parameter) cho phép nơi gọi hàm chọn vị trí. Đặt tên cho chúng trong ngoặc của def và dùng chúng trong thân hàm như biến:
def draw_star(x, y):
pygame.draw.line(screen, (255, 240, 200), (x - 10, y), (x + 10, y), 2)
pygame.draw.line(screen, (255, 240, 200), (x, y - 10), (x, y + 10), 2)
pygame.draw.circle(screen, (255, 240, 200), (x, y), 4)Mỗi lần gọi hàm truyền các giá trị, tức đối số (argument), theo cùng thứ tự: draw_star(120, 100) chạy thân hàm với x là 120 và y là 100. draw_star(520, 90) chạy lại hàm với các giá trị khác. Một định nghĩa, vẽ được bao nhiêu ngôi sao tùy theo số lần bạn gọi hàm.
Các tham số chỉ tồn tại bên trong hàm khi hàm đang chạy. Ở bên ngoài, x và y không có ý nghĩa gì, hoặc mang giá trị mà bạn đã lưu dưới những tên đó.
Thử thách
Trung bìnhĐể bên gọi đặt ngôi sao.
- Thay đổi phần định nghĩa thành
def draw_star(x, y):. - Vẽ quanh (x, y): các đường từ
x - 10đếnx + 10và từy - 10đếny + 10, chấm tròn tại(x, y). - Gọi hàm ba lần: tại (120, 100), (320, 180) và (520, 90).
Nhấn Chơi: ba ngôi sao. Sau đó nhấn Kiểm tra.
Tự làm thử
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Thiết lập mọi thứ ở đây, trước vòng lặp trò chơi.
def draw_star():
pygame.draw.line(screen, (255, 240, 200), (310, 240), (330, 240), 2)
pygame.draw.line(screen, (255, 240, 200), (320, 230), (320, 250), 2)
pygame.draw.circle(screen, (255, 240, 200), (320, 240), 4)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Thay đổi mọi thứ ở đây, mỗi khung hình một lần.
screen.fill((20, 24, 48))
# Vẽ ở đây, sau khi tô nền.
draw_star()
pygame.display.flip()
clock.tick(60)
pygame.quit()
Tất cả bài học trong Python trong cửa sổ trò chơi
1Cửa sổ đầu tiên
Chương trình đầu tiên của bạnIn ra một thông điệpIn ra một sốMàu sắc dưới dạng sốVẽ mặt trăngTự luyện tập: Playground Pygame