สารบัญ:
- ขั้นตอนที่ 1: ภาพรวมแบบกว้าง
- ขั้นตอนที่ 2: ข้อกำหนดเบื้องต้น
- ขั้นตอนที่ 3: "สวัสดีชาวโลก" ใน Pygame Zero
- ขั้นตอนที่ 4: การวาดนักแสดงของคุณ
- ขั้นตอนที่ 5: ควบคุมนักแสดง
- ขั้นตอนที่ 6: สร้างแทร็ก
- ขั้นตอนที่ 7: รถชน
- ขั้นตอนที่ 8: เรียกใช้เกมบน Raspberry Pi
- ขั้นตอนที่ 9: คุณชนะหรือไม่
- ขั้นตอนที่ 10: สรุป
วีดีโอ: สร้างเกมแข่งรถเกมแรกของคุณ: 10 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
หากคุณเคยเขียนโค้ด Python แล้วและต้องการเขียนโปรแกรมเกมที่คุณมีใน Pygame Zero
ในบทช่วยสอนนี้ เราจะเขียนเกมแข่งรถอย่างง่าย
ขั้นตอนที่ 1: ภาพรวมแบบกว้าง
โมดูล Pygame เพิ่มฟังก์ชันมากมายที่ช่วยให้คุณเขียนเกมใน Python
Pygame Zero ก้าวไปอีกขั้นเพื่อให้คุณข้ามขั้นตอนที่ยุ่งยากในการสร้างลูปเกมทั้งหมดและตั้งค่าโครงสร้างโปรแกรมของคุณ
Pygame Zero เป็นตัวเลือกที่ยอดเยี่ยมสำหรับทุกคนที่ต้องการเริ่มเขียนเกมคอมพิวเตอร์บน Raspberry Pi หรือเครื่อง Linux
คุณจะต้องการ:
- เครื่องที่รัน Linux OS
- ตัวแก้ไขเขียนโปรแกรม python
- แป้นพิมพ์
- จินตนาการบ้าง
ไฟล์:
github.com/AhmNouira/-Racing-Game
ขั้นตอนที่ 2: ข้อกำหนดเบื้องต้น
ก่อนอื่นฉันจะใช้แล็ปท็อปกับ Ubuntu 18.04 OS จากนั้นเราจะรันเกมบน Raspberry Pi ในขั้นตอนที่ 8
ก่อนดำเนินการต่อกับบทช่วยสอนนี้ ตรวจสอบให้แน่ใจว่าคุณได้เข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์ sudo
การติดตั้ง pip สำหรับ Python 3
เริ่มต้นด้วยการอัปเดตรายการแพ็คเกจโดยใช้คำสั่งต่อไปนี้:
sudo apt อัปเดต
ใช้คำสั่งต่อไปนี้เพื่อติดตั้ง pip สำหรับ Python 3:
sudo apt ติดตั้ง python3-pip
ตรวจสอบการติดตั้งโดยตรวจสอบเวอร์ชัน pip:
pip3 --version
การติดตั้ง Pygame Zero
pip3 ติดตั้ง pgzero --user
สิ่งนี้จะติดตั้ง Pygame ด้วย แพ็คเกจ Pygame ที่รวบรวมไว้ล่วงหน้า
ดังนั้นขั้นตอนแรกในการเดินทางของคุณคือการเปิด Python 3 IDLE หรือโปรแกรมแก้ไข python ที่คุณชื่นชอบ
ขั้นตอนที่ 3: "สวัสดีชาวโลก" ใน Pygame Zero
ตามค่าเริ่มต้น หน้าต่าง Pygame Zero จะเปิดขึ้นที่ขนาดกว้าง 800 พิกเซล สูง 600 พิกเซล คุณสามารถปรับแต่ง
ขนาดของหน้าต่างของคุณ มีตัวแปรที่กำหนดไว้ล่วงหน้าสองตัวแปรที่คุณสามารถตั้งค่าได้ หากคุณรวม WIDTH = 700 HIGH = 800
Pygame zero จัดเตรียมฟังก์ชั่นที่กำหนดไว้ล่วงหน้าเพื่อจัดการกับ game loop ตามปกติ:
ฟังก์ชัน draw()
เราสามารถเขียนฟังก์ชันนี้ลงในโปรแกรมของเราได้เหมือนกับที่เรากำหนดฟังก์ชันใน Python ตามปกติ
Pygame Zero ทำตามกฎการจัดรูปแบบเดียวกับ Python ดังนั้นคุณจะต้องระมัดระวังในการเยื้องโค้ดของคุณอย่างถูกต้อง
#!/usr/bin/python3 # ตั้งค่าล่าม
นำเข้า pgzrun # นำเข้าโมดูล pgzero WIDTH = 700 # ความกว้างของหน้าต่าง HEIGHT = 800 # ความสูงของหน้าต่าง def draw (): # pygame zero draw ฟังก์ชั่น screen.fill ((128, 128, 128)) # เติมหน้าจอด้วย RGB สี screen.draw.text("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), fontsize = 40) pgzrun.go()
ก่อนอื่นคุณต้องบันทึกไฟล์โปรแกรมของคุณและตั้งชื่อ
จากนั้นเปิดหน้าต่าง Terminal ไปที่ตำแหน่งไฟล์ของคุณและพิมพ์:
./.py
ขั้นตอนที่ 4: การวาดนักแสดงของคุณ
ตอนนี้เรามีฉากของเราแล้ว เราก็สามารถสร้างนักแสดงของเราได้ พวกมันเป็นวัตถุไดนามิกใน Pygame Zero
เราสามารถโหลดนักแสดงโดยพิมพ์ที่ด้านบนของโปรแกรม:
รถ = นักแสดง ("รถแข่ง")
ใน Pygame Zero รูปภาพของเราจะต้องเก็บไว้ในไดเร็กทอรีที่เรียกว่า images ถัดจากไฟล์โปรแกรมของเรา ดังนั้นนักแสดงของเราจะมองหาไฟล์รูปภาพในโฟลเดอร์รูปภาพที่เรียกว่า racecar.png อาจเป็นไฟล์ GIF หรือ-j.webp
คุณสามารถกำหนดตำแหน่งบนหน้าจอโดยพิมพ์:
car.pos = 350, 560
หลังจากนั้นในฟังก์ชัน draw() ของเรา เราสามารถพิมพ์
car.draw() # วาดรถแข่งของเราในตำแหน่งที่กำหนด
โปรแกรมเต็มจะเป็นดังนี้:
#!/usr/bin/python3
นำเข้า pgzrun WIDTH = 700 # ความกว้างของหน้าต่าง HEIGHT = 800 # ความสูงของหน้าต่างรถ = นักแสดง ("รถแข่ง") car.pos = 350, 560 def draw (): # ฟังก์ชัน pygame zero draw screen.fill ((128, 128, 128)) # เติมหน้าจอด้วย car.draw() pgzrun.go()
ทดสอบโปรแกรมของคุณเพื่อให้แน่ใจว่าใช้งานได้
ขั้นตอนที่ 5: ควบคุมนักแสดง
เมื่อเราวาดภาพรถบนหน้าจอแล้ว ขั้นต่อไปคือให้ผู้เล่นสามารถเคลื่อนที่ได้
เราสามารถทำได้ด้วยการกดปุ่ม เราสามารถอ่านสถานะของคีย์เหล่านี้ภายในฟังก์ชันที่กำหนดไว้ล่วงหน้าอื่นที่เรียกว่า update()
ฟังก์ชัน update()
ฟังก์ชันนี้ได้รับการตรวจสอบอย่างต่อเนื่องในขณะที่เกมกำลังทำงาน
เราจำเป็นต้องเขียนโค้ดเพื่อตรวจจับการกดแป้นลูกศรและดำเนินการบางอย่างเกี่ยวกับมัน
ดังนั้นเราจะเพิ่มฟังก์ชันนี้ในโปรแกรมของเรา
อัปเดต def ():
if keyboard.left: car.x -=2 if keyboard.right: car.x +=2 if keyboard.up: car.y -=2 if keyboard.down: car.y +=2
รหัสบรรทัดเหล่านี้จะย้ายนักแสดงรถไปทางซ้าย, ขวา, ไปข้างหน้าและข้างหลัง
ขั้นตอนที่ 6: สร้างแทร็ก
ตอนนี้เรามีรถที่สามารถบังคับทิศทางได้แล้ว เราจำเป็นต้องมีรางเพื่อขับต่อไป
เรากำลังจะสร้างการติดตามจาก Actors ทีละแถว เราจะต้องจัดทำรายการเพื่อติดตามนักแสดงที่เราสร้างขึ้น
เราจะต้องตั้งค่าตัวแปรเพิ่มเติมอีกสองสามตัวสำหรับแทร็ก
จากนั้นมาสร้างฟังก์ชันใหม่ที่เรียกว่า makeTrack() ฟังก์ชันนี้จะเพิ่มแทร็ก Actor หนึ่งแทร็กทางด้านซ้ายและอีกอันทางขวา ทั้งคู่ใช้รูปภาพ bare-p.webp
trackLeft = # รายการที่จะจัดเก็บ barries ซ้าย
trackRight = # รายการที่จะจัดเก็บ barries ขวา trackCount = 0 # นับจำนวน barries trackPosition = 350 trackWidth = 150 # ความกว้างระหว่าง barries ด้านซ้ายและขวา def makeTrack (): # ฟังก์ชั่นที่จะทำให้หนึ่ง barrie อยู่ที่ trackCount สากลด้านซ้ายและขวา, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append(Actor("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append(Actor("bare", pos = (trackPosition + trackWidth, 0))) trackCount +=1
สิ่งต่อไปที่เราต้องทำคือย้ายส่วนของแทร็กลงมาที่หน้าจอเข้าหารถ
มาเขียนฟังก์ชันใหม่ที่เรียกว่า updateTrack() กัน ฟังก์ชันนี้จะอัปเดตตำแหน่งที่บล็อกแทร็กจะปรากฏขึ้น แทร็กจะถูกสร้างขึ้นโดยใช้ตัวเลขสุ่ม ดังนั้นการเล่นแต่ละครั้งจึงแตกต่างกัน
trackDriction = เท็จ
SPEED = 4 # กำหนดความเร็วของเกมจากการนำเข้าแบบสุ่ม randint # นำเข้าคลาส randint จากโมดูลสุ่ม def updateTrack (): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 ในขณะที่ b
โปรดดูไฟล์ zip ด้านล่างชื่อ "RaceGameDemo"
หากเรารันโค้ดของเราในตอนนี้ เราควรเห็นทางคดเคี้ยวไปทางรถ ปัญหาเดียวคือเราสามารถเคลื่อนรถข้ามสิ่งกีดขวางบนรางได้ และเราต้องการให้รถอยู่ในนั้นด้วยการตรวจจับการชน
ขั้นตอนที่ 7: รถชน
เราจำเป็นต้องตรวจสอบให้แน่ใจว่ารถของเราไม่แตะต้องนักแสดง
เราอาจทดสอบการชนกันโดยใช้เมธอด colliderect() ในฟังก์ชัน updateTrack() ของเรา
ในเกมนี้เราจะมีสามสถานะที่แตกต่างกันไปยังเกมที่เก็บไว้ใน gameStatus ตัวแปรของเรา:
- gameStatus == 0 # เกมกำลังทำงาน
- gameStatus == 1 # รถชน
- gameStatus == 2 # เกมเสร็จแล้ว
เราจะต้องเปลี่ยนฟังก์ชัน draw() และฟังก์ชัน update() เพื่อตอบสนองต่อตัวแปร gameStatus
สัมผัสสุดท้าย
สิ่งที่เราต้องทำตอนนี้คือแสดงบางอย่างหาก gameStatus ตั้งค่าเป็น 1 หรือ 2 เช่น เราควรแสดงสีแดง
ธงถ้ารถชน เราสามารถทำได้ด้วยรหัสด้านล่าง:
screen.blit("redflag", (230, 230))
เพื่อดูว่ารถถึงเส้นชัยหรือไม่ เราควรนับจำนวนแทร็กที่สร้างขึ้นมา และบางทีเมื่อเราไปถึง 200 ให้ตั้งค่า gameStatus เป็น 2 จากนั้นแสดงธงตาหมากรุก:
screen.blit("finishflag", (230, 230))
นอกจากนี้เรายังจะแสดงข้อความในหน้าจอเช่นคะแนนปัจจุบันของเกม
ดูรายชื่อโค้ดแบบเต็มเพื่อดูว่าทั้งหมดนี้เข้ากันได้อย่างไร
ขั้นตอนที่ 8: เรียกใช้เกมบน Raspberry Pi
บน Raspberry Pi pgzero ได้รับการติดตั้งโดยค่าเริ่มต้นตั้งแต่เปิดตัว Raspbian Jessie ในเดือนกันยายน 2558
เพียงอัปเดต Raspberry Pi ของคุณโดยใช้คำสั่ง:
sudo apt-get update
ไปที่ตำแหน่งไฟล์ของคุณแล้วพิมพ์ Terminal
pgzrun.py
ขั้นตอนที่ 9: คุณชนะหรือไม่
คุณสามารถทำให้เกมง่ายขึ้นหรือยากขึ้นได้โดยการเปลี่ยนตัวแปร trackWidth เพื่อทำให้แทร็กมีความกว้างต่างกัน คุณสามารถเปลี่ยนค่าของ SPEED เพื่อให้แทร็กเคลื่อนที่เร็วขึ้นหรือช้าลง
ขั้นตอนที่ 10: สรุป
Pygame Zero เป็นตัวเลือกที่ยอดเยี่ยมสำหรับทุกคนที่ต้องการเริ่มเขียนเกมคอมพิวเตอร์
หากคุณมีคำถามใด ๆ แน่นอนคุณสามารถแสดงความคิดเห็นหากต้องการดูเพิ่มเติมเกี่ยวกับผลงานของฉันโปรดไปที่ช่องของฉัน:
myYouTube
myTwitter
myLinkedin
ขอบคุณที่อ่านคำแนะนำนี้ ^^ และมีวันที่ดี แล้วเจอกัน. อาเหม็ด นูอิรา.
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง