Kodu Grammar 4

ที่ผ่านมา Kodu Grammar 1 2 3 เป็นไวยากรณ์สำหรับกฎเพียงข้อเดียว ที่เริ่มต้นด้วยตัวแปร Rule แต่สำหรับโปรแกรมเกมใน Kodu สามารถมีได้หลายกฎและองค์ประกอบอื่นๆ อีก ในคราวนี้เรามามองไวยากรณ์ที่กว้างขึ้น ครอบคลุมทั้งโปรแกรม ซึ่งจะมีตัวแปรเพิ่มขึ้นมาอีก จุดเริ่มต้นของไวยากรณ์ของโปรแกรมเกมคือ Game ซึ่งประกอบไปด้วยตัวละคร Actors หลายๆ ตัว ในหนึ่งเกม Game --> Actors ตัวละครถือว่าเป็นวัตถุ Object หรือกลุ่มของวัตถุ Object Actors ซึ่งไม่ระบุจำนวน ขึ้นกับแต่ละเกม Actors --> Object | Object Actors ไวยากรณ์รูปแบบนี้ จะเห็นว่าตัวแปร (ในที่นี้คือ Actors ด้านซ้าย) สามารถแทนที่ด้วยตัวมันเอง (Actors ด้านขวาสุด) ไวยากรณ์ในลักษณะนี้ คล้ายกับฟังก์ชันที่เรียกตัวเอง (Recursive function) ถ้าเลือกแทนที่ด้วย Object Actors โดยมีจุดสิ้นสุดของการวนซ้ำ ถ้าเลือกใช้ตัวแปร Object วัตถุสามารถเขียนโปรแกรมได้อย่างน้อยหนึ่งหน้า Page หรือมากกว่านั้น แต่ไม่เกิน 12 หน้า …

Advertisements

Kodu Grammar 3

จุดเริ่มต้นของกฎสำหรับสร้างภาษา (Production Rules) ที่ใช้ในการเขียนโปรแกรมคือ 1. Rule --> Condition Action Rule คือกฎของเกมที่ต้องการจะสร้าง Condition เป็นเงื่อนไขของเหตุการณ์ Action สิ่งที่จะทำเมื่อเงื่อนไขนั้นเป็นจริง กฎนี้ยังใช้งานไม่ได้ เนื่องจากด้านขวามือมีแต่ตัวแปร (Variable) ซึ่งไม่สามารถแทนที่ได้ด้วยไอคอนใน Kodu ดังนั้นมาดูกฎข้ออื่นกันต่อว่า ตัวแปรเหล่านี้เปลี่ยนไปเป็นอะไรได้บ้าง 2. Condition --> Sensor Filter 3. Action --> Actuator Selector Modifier Sensor (การรับรู้) Filter (ตัวกรอง) Actuator (ตัวกระทำ) Selector (ตัวเลือก) Modifier (ตัวขยาย) ทั้งหมดนี้ก็ยังเป็นตัวแปรอยู่ แทนที่ด้วยไอคอนไม่ได้ แต่สามารถแทนที่กันเองได้ กฎการแทนที่ เป็นกฎที่ทำให้ไวยากรณ์ขยายออกไปได้ด้วยการแทนคำจากกฎข้อหนึ่งไปแทนคำในกฎอีกข้อหนึ่ง คือแทนคำที่เป็นตัวแปรทางซ้ายมือ ด้วยคำทางขวามือ (อาจเป็น Variable หรือ Terminal ก็ได้) ยกตัวอย่างในกรณีนี้ เราสามารถนำ Sensor Filter …

Kodu Grammar 2

เกมใน Kodu ถูกขับเคลื่อนด้วยเหตุการณ์ต่างๆ ระหว่างโปรแกรมทำงาน หรือระหว่างการเล่นเกม ดังนั้นการเขียนโปรแกรมจึงขึ้นกับเหตุการณ์เหล่านั้น และสามารถแสดงเป็นกฎได้ดังนี้ When Condition (เงื่อนไขของเหตุการณ์) Do Action (สิ่งที่จะทำเมื่อเกิดเหตุการณ์ขึ้น) กฎด้านบนนี้เป็นเพียงแค่กฎเบื้องต้น เพราะเบื้องหลังของแต่ละรายการคำสั่งในโปรแกรม Kodu ถูกกำกับด้วยไวยากรณ์ภาษา (Kodu Grammar) ที่ต้องใช้ให้ถูกต้อง เพื่อให้เกมทำงานได้ถูกต้องตามที่ได้ออกแบบไว้ การเข้าใจไวยากรณ์ของเกมจะทำให้เขียนโปรแกรมใน Kodu ได้ดีขึ้น เหมือนเข้าใจในไวยากรณ์ภาษาอังกฤษ ก็จะอ่านเขียนภาษาอังกฤษได้ดีขึ้น แต่ก็ไม่ได้หมายความว่า ต้องเข้าใจไวยากรณ์ใน Kodu ทั้งหมดก่อนถึงจะเริ่มเขียนโปรแกรมบน Kodu ได้ ดังนั้นมาเริ่มต้นศึกษาแบบง่ายๆ ก่อน ส่วนประกอบสำคัญของไวยากรณ์ คือ Production Rules เป็นกฎสำหรับสร้างภาษา ประกอบไปด้วย Variables และ Terminals ซึ่งอยู่ในรูปแบบดังนี้ Variable --> Variables Terminals Variable คือคำที่แปรเปลี่ยนได้ตามกฎ(อื่น) คำเหล่านี้จะขึ้นต้นด้วยอักษรตัวใหญ่ เช่น Rule, Condition, Action, Sensor, Filter, …

Mario ใน Scratch

เกม Mario เป็นเกมที่ดังมาก การจะทำเกมให้เหมือน Mario ในโปรแกรม Scratch คงใช้เวลาเอาเรื่องเลย แต่มาลองดูการทำตัวละครใน Scratch ให้เคลื่อนที่คล้ายในเกม Mario ก่อนอื่นดูคลิปนี้เป็นแนวทาง ในวีดีโอนี้ MrMattperreault อธิบายการสร้างตัวละครแมว ให้เคลื่อนที่ในแนวดิ่งตามแรงโน้มถ่วง (gravity) และแมวยังเด้งได้เมื่อกระทบพื้นและกระโดดได้เมื่อกด space bar นอกจากนั้นแมวยังเคลื่อนที่ในแนวราบแบบมีแรงต้านหรือแรงเสียดทานได้อีก วิธีการเขียนโปรแกรมโดยสรุปจากวีดีโอมีดังนี้ การเคลื่อนที่ในแนวดิ่ง สร้างพื้นสีฟ้า เพื่อให้แมวตกลงมาแล้วหยุดหรือเด้งได้ สร้างตัวแปร gravity มีแรงดึงลง ดังนั้นกำหนดค่าให้เป็น -0.3 สร้างตัวแปร velocity เป็นตัวกำหนดความเร็วในแนวดิ่ง กำหนดค่าเริ่มต้นที่ 0 หมายความว่า แมวอยู่กับที่ การทำให้แมวเคลื่อนที่ในแนวดิ่ง ตกสู่พื้นหรือเด้งขึ้น ต้องเปลี่ยนความเร็วตามแรงโน้มถ่วง ดังนั้นกำหนดค่า velocity ใหม่เป็น velocity + gravity จากนั้นเปลี่ยนค่าตำแหน่ง y ตามค่า velocity เป็น y + velocity เนื่องจาก gravity มีค่าเป็นลบ จะทำให้แมวเคลื่อนที่ลงหรือตกสู่พื้นสีฟ้า ถ้าต้องการให้แมวเด้งขึ้นเมื่อกระทบพื้น ต้องตรวจสอบการสัมผัสพื้นก่อน จากนั้นเปลี่ยนทิศของการเคลื่อนที่ ที่ขึ้นกับค่าของ velocity ซึ่งก่อนหน้าจะกระทบพื้น velocity มีค่าเป็นลบ (เคลื่อนที่ลง) …

Kodu Grammar

Kodu เป็นโปรแกรมภาษาเฉพาะด้าน (Domain-specific language) สร้างมาสำหรับการสร้างเกม โดยอาศัยไวยากรณ์ภาษา (Grammar) ของ Kodu เป็นตัวกำหนดวิธีการเขียนโปรแกรมในเกม การเขียนเกมใน Kodu เริ่มจากการสร้างโลกของเกมขึ้นมาก่อน โดยสร้างพื้นที่ในการเล่นเกม (Terrain) จากนั้นสร้างตัวละคร หรือ วัตถุต่างๆ เข้าไปบนพื้นที่นั้น ต่อมาคือการสร้างกฎของเกม เพื่อให้ตัวละครและวัตถุต่างๆ ทำงานร่วมกัน ตามที่เกมได้ถูกออกแบบไว้ กฎต่างๆ ในเกม จะถูกกำหนดโดยการเขียนโปรแกรมเข้าไปยังตัวละคร หรือวัตถุต่างๆ และลักษณะการเขียนโปรแกรมใน Kodu คือการสั่งให้ตัวละคร หรือวัตถุต่างๆ ทำงานเมื่อเหตุการณ์ต่างๆ เกิดขึ้น เช่นในตัวอย่างตามรูปด้านบน เป็นการกำหนดกฎให้ตัวละคร Kodu มีทั้งหมด 4 เหตุการณ์ แต่ทำงาน 5 อย่าง  ไวยากรณ์ของ Kodu อยู่ในรูปแบบง่ายๆ คือ แต่ละบรรทัด หรือแต่ละรายการ (มีตัวเลขกำกับอยู่) เป็นกฎหนึ่งข้อสำหรับตัวละครหรือวัตถุนั้น กฎจะอยู่ในรูปแบบตามไวยากรณ์ของ Kodu ดังนี้ When Condition Do Action  อธิบายได้ว่า เมื่อ (When) เหตุการณ์ที่เฝ้ารอเกิดขึ้น (Condition) ให้ทำ (Do) งานดังนี้ (Action) …