ข้อมูลทั่วไป (Overview)¶
Pygame เป็นไลบรารี (library) สำหรับการพัฒนาเกม 2 มิติ ด้วยภาษา Python ช่วยให้นักพัฒนาสามารถสร้างเกมได้อย่างสะดวกและรวดเร็ว
การติดตั้ง¶
เปิดโปรแกรม vscode
สร้างและเปิด folder เพื่อเริ่มพัฒนา D:\OOP\pygame\
สร้างสภาพแวดล้อม pygameenv
ตรวจสอบ python ที่ใช้งานได้
python --version
python3 --version
* ใช้คำสั่ง python หรือ python3 ที่มีเพื่อสร้างสภาพแวดล้อมชื่อ `pygameenv`
python3 -m venv pygameenv
เปิดใช้งานสภาพแวดล้อม pygameenv
กรณีที่ที่ใช้ระบบปฏิบัติการ Windows และใช้งาน powershell หรือ command prompt
.\pygameenv\Scripts\activate
* กรณีที่ใช้ระบบปฏิบัติการ Linux หรือ MacOS terminal
source pygameenv/bin/activate
ติดตั้ง pygame
pip install pygame
download และ extract ไฟล์จากลิงค์ต่อไปนี้ใน folder ที่ทำงาน
โครงสร้างพื้นฐาน¶
Pygame ใช้ลูป (loop) ในการตรวจสอบเพื่อเปลี่ยนค่าของวัตถุต่าง ๆ ที่อยู่ในเกมจากเหตุการณ์ต่าง ๆ ที่ผู้ใช้สั่งเช่น การกดปุ่ม, การเลื่อนเม้าส์ เพื่อบังคับตัวละคร เป็นต้น
การแสดงผลบนหน้าจอจะเรียกใช้ pygame.display ซึ่งมีเมทอดต่าง ๆ เช่น set_mode() เพื่อกำหนดขนาดหน้าจอ, update() เพื่อปรับปรุงหน้าจอ
ตรวจสอบและจัดการกับเหตุการณ์ต่าง ๆ เช่น การกดปุ่ม, การคลิกเม้าส์ โดยใช้ pygame.event
การแสดงภาพเคลื่อนไหวใช้คลาส pygame.sprite.Sprite ร่วมกับ clock เพื่อกำหนดความเร็วของการเคลื่อนไหว
pygame.time.Clock ช่วยในการควบคุมการทำงานของเกมในแต่ละรอบของลูป, ทำให้เกมทำงานในอัตราเฟรมที่คงที่
มีเครื่องมือสำหรับจัดการรูปภาพ (pygame.image), เสียง (pygame.mixer), และตัวหนังสือ (pygame.font)

1import sys
2import pygame
3from pygame.locals import QUIT
4
5pygame.init()
6
7screen = pygame.display.set_mode([1200, 800])
8clock = pygame.time.Clock()
9bg = pygame.image.load('deserttileset/png/BG.png')
10bg_rect = bg.get_rect()
11game_over = False
12
13while not game_over:
14
15 for event in pygame.event.get():
16 if event.type == QUIT:
17 pygame.quit()
18 sys.exit()
19
20 screen.blit(bg, bg_rect)
21 pygame.display.update()
22 clock.tick(60)
23
Exercise¶
จากคำสั่งข้างบนใน
มีคำสั่งใดบ้าง เป็นคำสั่งสร้าง object
มีคำสั่งใดบ้าง เป็นคำสั่งเรียกดูข้อมูล (attribute) ของ object
มีคำสั่งใดบ้างสร้าง object ใช้ชื่อตัวแปรว่าอะไร
แต่ละ ตัวแปร ระบุประเภท (class) ของ object ที่อ้างอิงถึง
ทำความเข้าใจแต่ละคำสั่ง