今天學實作小遊戲吧!
先簡單介紹遊戲的玩法和功能
使用者控制一個角色(藍色方塊),可以使用鍵盤上的箭頭按鍵移動角色,目標是避免碰到隨機生成的紅色障礙物(紅色方塊),並在遊戲中存活,隨著時間的推移,障礙物將從右向左移動,而使用者必須避免碰撞,另外在遊戲視窗的左上角會顯示玩家的分數。分數隨著時間的推移增加。如果使用者的角色碰到障礙物,遊戲就會結束,並將分數將保持在遊戲視窗的左上角。
程式碼
import pygame
import random
# 初始化 Pygame
pygame.init()
# 設定遊戲視窗的大小
WIDTH, HEIGHT = 800, 600
win = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("2D 遊戲示例")
# 定義顏色
WHITE = (255, 255, 255)
# 定義角色的初始位置和速度
x, y = 50, 300
width, height = 40, 60
vel = 5
# 定義障礙物的初始位置和速度
obstacle_x = WIDTH
obstacle_width = 20
obstacle_height = random.randint(50, 400)
obstacle_vel = 5
# 設定分數
score = 0
# 遊戲主迴圈
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 檢測鍵盤輸入
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and x > vel:
x -= vel
if keys[pygame.K_RIGHT] and x < WIDTH - width - vel:
x += vel
if keys[pygame.K_UP] and y > vel:
y -= vel
if keys[pygame.K_DOWN] and y < HEIGHT - height - vel:
y += vel
# 移動障礙物
obstacle_x -= obstacle_vel
if obstacle_x < 0:
obstacle_x = WIDTH
obstacle_height = random.randint(50, 400)
# 檢查是否碰到障礙物
if (
x < obstacle_x + obstacle_width
and x + width > obstacle_x
and y < HEIGHT - obstacle_height
):
running = False
# 畫出視窗
win.fill(WHITE)
pygame.draw.rect(win, (0, 128, 255), (x, y, width, height))
pygame.draw.rect(
win,
(255, 0, 0),
(obstacle_x, HEIGHT - obstacle_height, obstacle_width, obstacle_height),
)
pygame.display.update()
# 關閉 Pygame
pygame.quit()
今天就先到這邊吧~~
目前進度:23/30···