ข้อมูลทั่วไป (Overview)

Pygame เป็นไลบรารี (library) สำหรับการพัฒนาเกม 2 มิติ ด้วยภาษา Python ช่วยให้นักพัฒนาสามารถสร้างเกมได้อย่างสะดวกและรวดเร็ว

การติดตั้ง

  1. เปิดโปรแกรม vscode

    ../../../_images/vscode.png
  2. สร้างและเปิด folder เพื่อเริ่มพัฒนา D:\OOP\pygame\

  3. สร้างสภาพแวดล้อม pygameenv

  • ตรวจสอบ python ที่ใช้งานได้

  python --version
  python3 --version


* ใช้คำสั่ง python หรือ python3 ที่มีเพื่อสร้างสภาพแวดล้อมชื่อ `pygameenv`
python3 -m venv pygameenv
  1. เปิดใช้งานสภาพแวดล้อม pygameenv

  • กรณีที่ที่ใช้ระบบปฏิบัติการ Windows และใช้งาน powershell หรือ command prompt

  .\pygameenv\Scripts\activate


* กรณี่ใชระบบปฏการ Linux หร MacOS terminal
source pygameenv/bin/activate
  1. ติดตั้ง pygame

pip install pygame
  1. 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)

../../../_images/pygame01.png
 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

จากคำสั่งข้างบนใน

  1. มีคำสั่งใดบ้าง เป็นคำสั่งสร้าง object

  2. มีคำสั่งใดบ้าง เป็นคำสั่งเรียกดูข้อมูล (attribute) ของ object

  3. มีคำสั่งใดบ้างสร้าง object ใช้ชื่อตัวแปรว่าอะไร

  4. แต่ละ ตัวแปร ระบุประเภท (class) ของ object ที่อ้างอิงถึง

  5. ทำความเข้าใจแต่ละคำสั่ง