ผลต่างระหว่างรุ่นของ "สร้างเกมเดาะตะกร้อด้วย VPython"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
แถว 25: แถว 25:
 
[[Image:takro-coord.png|center|300px]]
 
[[Image:takro-coord.png|center|300px]]
  
== คลาสลูกบอล ==
+
== สร้างแอพลิเคชันและการตั้งค่าคงที่เพื่อใช้ในเกม ==
 +
ใช้เท็กซ์เอดิเตอร์สร้างไฟล์ชื่อ <tt>takro.py</tt> ตามโค้ดด้านล่าง
 +
<syntaxhighlight lang="python" line>
 +
import vis
  
== คลาสสำหรับผู้เล่น ==
+
ANIM_RATE = 30
 +
BORDER = 10
 +
scene = vis.display(title='Takro',x=100,y=100,width=500,height=500)
 +
scene.center = (0,0)
 +
scene.range = BORDER*1.2
  
== จัดเตรียมหน้าจอหลัก ==
+
while True:
 +
    vis.rate(ANIM_RATE)
 +
</syntaxhighlight>
 +
* บรรทัดที่ 1 อิมพอร์ตโมดูล <tt>vis</tt> ซึ่งเป็นโมดูลหลักของ VPython
 +
 
 +
== สร้างลูกบอล ==
 +
 
 +
== สร้างผู้เล่น ==

รุ่นแก้ไขเมื่อ 05:44, 17 ตุลาคม 2558

การเตรียมตัว

ไพทอนและไลบรารีที่เกี่ยวข้อง

วิกินี้ใช้ภาษาไพทอนและไลบรารีที่เกี่ยวข้องดังนี้

บอร์ดไมโครคอนโทรลเลอร์และโมดูลไดรเวอร์

บอร์ดไมโครคอนโทรลเลอร์ที่นำมาใช้เป็นตัวควบคุมผู้เล่นในวิกินี้ต้องถูกโปรแกรมเฟิร์มแวร์ให้สามารถอ่านค่าแสงผ่านพอร์ท USB ได้แล้ว ให้แน่ใจว่า

องค์ประกอบของเกม

Takro-basic.png

ตัวเกมพื้นฐานประกอบไปด้วย

  • แป้นรับลูกที่ควบคุมด้วยผู้เล่น (สีน้ำเงิน) สร้างขึ้นจากคลาส Player ซึ่งสืบสกุลมาจากคลาส vis.cylinder มีการเคลื่อนที่ในทิศทางซ้ายและขวาตามความเข้มของแสงที่อ่านได้จากบอร์ดไมโครคอนโทรลเลอร์
  • ลูกตะกร้อ (สีเหลือง) สร้างขึ้นจากคลาส Ball ซึ่งสืบสกุลมาจากคลาส vis.sphere มีทิศทางการเคลื่อนที่ในสองมิติซึ่งคำนวณจากกฎการเคลื่อนที่
  • กำแพงและเพดาน (สีแดง) สร้างขึ้นจากคลาส vis.curve เพื่อใช้แสดงขอบเขตด้านซ้าย ขวา และบน ลูกตะกร้อจะกระดอนกลับเมื่อเคลื่อนที่เลยขอบเขตนี้

ระบบพิกัด

VPython ใช้ระบบพิกัดในปริภูมิ 3 มิติ อย่างไรก็ตามตำแหน่งต่าง ๆ ของผู้เล่น ลูกตะกร้อ และกำแพง จะวางตัวอยู่ในระนาบ z=0 โดยที่พิกัด (x,y) มีทิศทางและขอบเขตดังภาพ ในที่นี้ BORDER เป็นค่าคงที่ที่กำหนดขึ้นมาในโปรแกรมซึ่งสามารถปรับเปลี่ยนขอบเขตได้ตามต้องการ

Takro-coord.png

สร้างแอพลิเคชันและการตั้งค่าคงที่เพื่อใช้ในเกม

ใช้เท็กซ์เอดิเตอร์สร้างไฟล์ชื่อ takro.py ตามโค้ดด้านล่าง

 1 import vis
 2 
 3 ANIM_RATE = 30
 4 BORDER = 10
 5 scene = vis.display(title='Takro',x=100,y=100,width=500,height=500)
 6 scene.center = (0,0)
 7 scene.range = BORDER*1.2
 8 
 9 while True:
10     vis.rate(ANIM_RATE)
  • บรรทัดที่ 1 อิมพอร์ตโมดูล vis ซึ่งเป็นโมดูลหลักของ VPython

สร้างลูกบอล

สร้างผู้เล่น