Tính điểm ngọc
Thuộc phần Vòng lặp trò chơi trong hành trình Pygame của Coddy. Bài học 15 trên 35.
Trò chơi cần có điểm số. Hãy lưu điểm số trong một biến được tạo trước vòng lặp, score = 0, rồi tăng thêm 1 bằng score += 1 mỗi khi người chơi bắt được một viên ngọc.
Trò chơi này hiển thị điểm số dưới dạng một hàng gồm các ô vuông nhỏ, mỗi ô tương ứng với một điểm. Vòng lặp for vẽ một hàng gồm bất kỳ thứ gì: ở đây là ba hình tròn cách nhau 30 pixel.
for i in range(3):
pygame.draw.circle(screen, (255, 200, 0), (20 + 30 * i, 20), 10)Ở lần lặp đầu tiên, i bằng 0, sau đó là 1 rồi 2, nên mỗi hình tròn nằm xa hơn về bên phải 30 pixel. Với range(score), hàng này dài thêm một ô mỗi khi điểm số tăng.
Thử thách
DễĐếm số viên ngọc và hiển thị số đếm ở phía trên.
- Thêm
score = 0trước vòng lặp, rồi tăng giá trị này lên 1 khi cú nhấp chuột trúng viên ngọc. - Sau khi vẽ viên ngọc, với mỗi
itrongrange(score), hãy vẽ một hình chữ nhật màu hồng(240, 110, 180)tại(10 + 10 * i, 14, 8, 8).
Nhấn Chơi và bắt ba viên ngọc: ba dấu màu hồng sẽ xếp thành hàng ở góc trên bên trái. Sau đó nhấn Kiểm tra.
Tự làm thử
import random
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Gem Hunt")
clock = pygame.time.Clock()
gx, gy = 225, 165
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEBUTTONDOWN:
x, y = event.pos
if gx <= x <= gx + 30 and gy <= y <= gy + 30:
gx = random.randint(15, 435)
gy = random.randint(55, 315)
screen.fill((30, 30, 46))
gem_points = [(gx + 15, gy), (gx + 30, gy + 15), (gx + 15, gy + 30), (gx, gy + 15)]
pygame.draw.polygon(screen, (80, 220, 255), gem_points)
mouse_x, mouse_y = pygame.mouse.get_pos()
pygame.draw.circle(screen, (240, 240, 240), (mouse_x, mouse_y), 10, 2)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Tất cả bài học trong Vòng lặp trò chơi
1Di chuyển hình vuông
Mở cửa sổTô nền4Di chuyển theo thời gian
Thời gian deltaPixel mỗi giâyVector2Gia tốc và ma sátDi chuyển vòng quanh màn hìnhTự luyện tập: Playground Pygame