สร้างเกมด้วย Pygame Zero : moving sprite

Python สอนสร้างเกมด้วย pygame zero

สำหรับบทนี้เราจะมา ทำให้ sprite เคลื่อนที่ ไป-มา
สร้างไฟล์ชื่อ move_sprite.py

# Pygame Zero Basic : moving sptite
# สร้างเกมง่ายๆด้วย Pygame Zero By  wutdev
 
import pgzrun
 
#กำหนดขนาดหน้าต่าง
WIDTH = 500
HEIGHT = 500
 
#กำหนด sprite "red"
player = Actor("red") #รูป sprite "red.png" อยู่ที่ตำแหน่ง center=0,0 (รูปจะเก็บไว้ในโฟลเดอร์ images เสมอ)
player.pos = 0, 0  #กำหนดตำแหน่งของ sprite 0,0 อยู่มุมซ้ายบน ตามตำแหน่งพิกัดของ pygame zero
player.topleft =  0,150 #  x=0, y=150
 
#เริ่มวาดภาพ
def draw():
    screen.fill((128, 128,128))
    player.draw()

# ฟังก์ชั่นนี้จะทำงานซ้ำๆกัน 60 ครั้ง/วินาที
def update():
    player.left += 2 #เคลื่อนที่ไปทางซ้าย 2 
 
#รันโปรแกรม
pgzrun.go()

กดปุ่ม run ดูผลลัพธ์ของโปรแกรม

Sprite จะเคลื่อนที่จากขวา ไปด้านซ้าย ที่ล่ะ 2 step

ตัวอย่าง: การเคลื่อนที่ขึ้น-ลง

# Pygame Zero Basic : moving sptite
# สร้างเกมง่ายๆด้วย Pygame Zero By  wutdev
import pgzrun
import math

#กำหนดขนาดหน้าต่าง
WIDTH = 640
HEIGHT = 480
TITLE = "Pygame Zero"

BG_COLOR = (0 , 191, 255) #กำหนดสีพื้นหลัง สีฟ้า
frame = 0 #อัตราการเคลื่อนที่

#กำหนด sprite "mace"
enemy = Actor("mace")
enemy.topleft = 0,150 # x=0, y=150

def draw():
    screen.fill(BG_COLOR) #เทสีพื้นหลัง
    enemy.draw() #วาด enemy บนจอ
 
    
def update():
    global frame
    frame += 1  # เพิ่มจำนวน frame  ครั้งล่ะ 1
    enemy.left += 2 # เคลื่อนที่จากซ้าย-ไปขวาครั้งล่ะ 2 สเต็ป
    enemy.top = enemy.top + 4 * math.sin(frame/8) #กำหนดรูปแบบการเคลื่อนที่ ขึ้น-ลง เหมือนรูปคลื่นไซน์
    
    #ถ้าเคลื่อนที่ไปพ้นขอบหน้าจอให้กลับมาเริ่มใหม่
    if enemy.left > WIDTH:
        enemy.left = 0

pgzrun.go()

กดปุ่ม run ดูผลลัพธ์ของโปรแกรม

sprite “enemy” จะเคลื่อนที่ขึ้น-ลง จากด้านซ้ายไปทางขวา