พัฒนาเกมใน Python ด้วย PyGame
สามารถพัฒนาเกมใน Python ได้โดยใช้ PyGame ซึ่งเป็น Module สำหรับพัฒนาเกม รวม Computer Graphics และ Sound Libraries ที่ใช้ในการพัฒนา Video Game
ขั้นตอนที่ 1: ติดตั้ง PyGame
ก่อนติดตั้ง PyGame ควรมี Python และ pip ติดตั้งไว้ในระบบแล้ว
เปิด Terminal แล้วรันคำสั่ง:
py -m pip install -U pygame --user
ขั้นตอนที่ 2: Import PyGame และสร้างหน้าต่างพื้นฐาน
โค้ดพื้นฐานสำหรับเปิดหน้าต่าง PyGame พร้อมปิดได้ปกติ:
import pygame
# เริ่มต้น PyGame
pygame.init()
# สร้างหน้าต่างขนาด 400x500
screen = pygame.display.set_mode((400, 500))
pygame.display.set_caption("My Game Window")
# Game Loop หลัก
running = True
while running:
# Event Handling
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Update Display
pygame.display.flip()
# ปิด PyGame
pygame.quit()
ผลลัพธ์
จะได้หน้าต่าง PyGame ขนาด 400x500 พร้อมปุ่ม Minimize/Close/Maximize ตามปกติของ OS
โครงสร้าง Game Loop แบบสมบูรณ์
import pygame
import sys
pygame.init()
# Constants
WIDTH, HEIGHT = 800, 600
FPS = 60
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Complete Game Template")
clock = pygame.time.Clock()
# Game Objects
player_x, player_y = WIDTH // 2, HEIGHT // 2
player_speed = 5
running = True
while running:
# 1. Event Handling
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
running = False
# 2. Input Handling (Continuous)
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
player_x -= player_speed
if keys[pygame.K_RIGHT]:
player_x += player_speed
if keys[pygame.K_UP]:
player_y -= player_speed
if keys[pygame.K_DOWN]:
player_y += player_speed
# 3. Game Logic Update
# ... collision detection, AI, physics, etc.
# 4. Rendering
screen.fill(WHITE)
pygame.draw.rect(screen, BLACK, (player_x, player_y, 50, 50))
pygame.display.flip()
# 5. Control FPS
clock.tick(FPS)
pygame.quit()
sys.exit()
แนวทางเรียนรู้ PyGame
- เรียนรู้ Game Loop และ Event Handling
- ฝึกวาดรูปทรงพื้นฐาน (Rect, Circle, Line)
- เรียนรู้ Sprite และ Sprite Groups
- เพิ่ม Sound และ Music
- ทำ Collision Detection
- สร้างเกมง่ายๆ เช่น Pong, Snake, Platformer