สร้างเกมเดาะตะกร้อด้วย VPython
เนื้อหา
การเตรียมตัว
ไพทอนและไลบรารีที่เกี่ยวข้อง
วิกินี้ใช้ภาษาไพทอนและไลบรารีที่เกี่ยวข้องดังนี้
- Anaconda Scientific Python Distribution - ดูขั้นตอนจากวิกิ Python Programming/Setting Up Python
- ไลบรารี PyUSB - ดูขั้นตอนจากวิกิ การติดตั้งไลบรารี PyUSB
- ไลบรารี Visual (VPython) - ดูขั้นตอนจากวิกิ การติดตั้งไลบรารี Visual
บอร์ดไมโครคอนโทรลเลอร์และโมดูลไดรเวอร์
บอร์ดไมโครคอนโทรลเลอร์ที่นำมาใช้เป็นตัวควบคุมผู้เล่นในวิกินี้ต้องถูกโปรแกรมเฟิร์มแวร์ให้สามารถอ่านค่าแสงผ่านพอร์ท USB ได้แล้ว ให้แน่ใจว่า
- ได้พัฒนาเฟิร์มแวร์ตามขั้นตอนของวิกิ การติดต่อกับบอร์ดไมโครคอนโทรลเลอร์ผ่านพอร์ท USB ด้วย Arduino
- เฟิร์มแวร์รองรับการอ่านค่าแสง และได้แก้ไขโมดูลไดรเวอร์ peri.py ให้รองรับการอ่านค่าแสงในช่วง 0-1023 จากเมท็อด getLight() ได้อย่างถูกต้องตามที่ระบุไว้ในแบบฝึกหัดท้ายสไลด์บรรยาย การสื่อสารกับบอร์ด MCU ผ่านพอร์ต USB
องค์ประกอบของเกม
ตัวเกมพื้นฐานประกอบไปด้วย
- แป้นรับลูกที่ควบคุมด้วยผู้เล่น (สีน้ำเงิน) สร้างขึ้นจากคลาส Player ซึ่งสืบสกุลมาจากคลาส vis.cylinder มีการเคลื่อนที่ในทิศทางซ้ายและขวาตามความเข้มของแสงที่อ่านได้จากบอร์ดไมโครคอนโทรลเลอร์
- ลูกตะกร้อ (สีเหลือง) สร้างขึ้นจากคลาส Ball ซึ่งสืบสกุลมาจากคลาส vis.sphere มีทิศทางการเคลื่อนที่ในสองมิติซึ่งคำนวณจากกฎการเคลื่อนที่
- กำแพงและเพดาน (สีแดง) สร้างขึ้นจากคลาส vis.curve เพื่อใช้แสดงขอบเขตด้านซ้าย ขวา และบน ลูกตะกร้อจะกระดอนกลับเมื่อเคลื่อนที่เลยขอบเขตนี้
ระบบพิกัด
VPython ใช้ระบบพิกัดในปริภูมิ 3 มิติ อย่างไรก็ตามตำแหน่งต่าง ๆ ของผู้เล่น ลูกตะกร้อ และกำแพง จะวางตัวอยู่ในระนาบ z=0 โดยที่พิกัด (x,y) มีทิศทางและขอบเขตดังภาพ ในที่นี้ BORDER เป็นค่าคงที่ที่กำหนดขึ้นมาในโปรแกรมซึ่งสามารถปรับเปลี่ยนขอบเขตได้ตามต้องการ