เขียนโปรแกรม

Page 1

เขียนโปรแกรม กราฟิก 3 มิติ (3D)

 GUI 3D Programming  Drag & Drop 3D Programming

โดยใช้

 เขียนโปรแกรมตามลาดับ 3D  เขียนโปรแกรมเงื่อนไข 3D  สร้างเหตุการณ์คีย์บอร์ดและเมาส์  การเขียนวนลูป 3D  การเขียนโปรแกรมแบบขนาน 3D

อ่านฟรี

ฉบับพื้นฐาน

โดย เชาวลิต ขันคา


คำนำ โปรแกรมอะลิช (Alice) เป็นโปรแกรมที่พัฒนาขึ้นเพื่อสนับสนุน การเขียนโปรแกรม กราฟิกสามมิติ ตามแนวทางการเขียนยุคใหม่ เรียกว่า 4GL (4th Generation Language) ซึ่งมอง ทุกสิ่งทุกอย่างเป็นวัตถุ โดยโปรแกรมนีส้ ามารถนามาช่วยพัฒนาตรรกะทางการเขียนโปรแกรม เชิงวัตถุ อีกทั้งยังสามารถประยุกต์สาหรับการสร้างงานเกี่ยวกับงานคอมพิวเตอร์สามมิติ วีดีโอ เกม หรือเกมคอมพิวเตอร์สามมิติได้ รวมถึงสามารถโพสต์ข้ึนไปบนเครือข่ายอินเทอร์เน็ตได้ โดยอัตโนมัติ หนังสือเล่มนีม้ ุ่งเน้นให้ผู้ท่เี ริ่มศึกษาการเขียนโปรแกรมด้วยกราฟิกสามมิติ โดยอาศัย แนวทางการเขียนโปรแกรมเชิงวัตถุ การเขียนโปรแกรมแบบแดร็กแอนด์ดร็อป แบบง่ายๆ โดย กาหนดให้คิดและออกแบบให้สิ่งต่าง ๆ เป็นวัตถุ สามมิติ โดยแนวทางการนาเสนอในเล่มเริ่ม จากการสร้างงานในเชิงตรรกะของการเขียนโปรแกรมคอมพิวเตอร์ตามรูปแบบโครงสร้างการ เขียนโปรแกรม ด้วยการเขียนโปรแกรมแบบตามลาดับ เงื่อนไข ลูป และการสร้างเหตุการณ์ จากแป้นพิมพ์และเมาส์ รวมถึงการเขียนโปรแกรมแบบขนานอีกด้วย ผู้ท่คี วรจะศึกษาจากหนังสือเล่มนีเ้ ป็นอย่างยิ่งคือ นักเรียน นักศึกษา ที่เป็นผู้เริ่มศึกษา การเขียนโปรแกรม และ ครู อาจารย์ ที่ต้องการสอนการเขียนโปรแกรมเชิงวัตถุ เนื่องจาก เนื้อหาในหนัง สือ จะแสดงแนวคิดเชิงทฤษฎีให้กระชับพอเข้าใจ และเน้น ตัวอย่างที่ตัวอย่าง โปรแกรม และผลการรันโปรแกรม ที่สามารถศึกษาได้โดยง่าย ท้ายนี้ผู้เขียนหวังเป็นอย่างยิ่งว่า ผู้ท่ไี ด้ศึกษาจากหนังสือเล่มนี้ จะมีทัศนคติที่ดีต่อการ เขียนโปรแกรม จนพัฒนาตนเองให้เป็นโปรแกรมเมอร์ท่เี ก่ง สามารถคิดและวางแผนการเขียน โปรแกรมอย่างเป็นระบบ เพื่อพัฒนาประเทศไปสู่ความเป็นผู้นาทางด้านการพัฒนาซอฟต์แวร์ ในอนาคต เชาวลิต ขันคา 9 พฤษภาคม 2556


สารบัญ หน้า คานา .........................................................................................................................(1) สารบัญ ..................................................................................................................... (3) บทที่ 1

บทนา.......................................................................................................... 1 ประวัติเบื้องต้นของโปรแกรมอะลิซ .......................................................... 2 เหตุผลที่ต้องใช้งานโปรแกรมอะลิซ .......................................................... 4 ทีมงานผู้พัฒนา.......................................................................................10 ผู้ให้การสนับสนุน.................................................................................... 14 เนือ้ หาในหนังสือเล่มนี้............................................................................. 17

บทที่ 2 เริ่มต้นกับอะลิซ......................................................................................... 20 การดาวน์โหลด ........................................................................................ 21 การติดตั้งโปรแกรม................................................................................. 23 การเริ่มใช้งานและส่วนประกอบของโปรแกรม ......................................... 36 สรุป ........................................................................................................ 53 บทที่ 3 การใช้งานวัตถุเบื้องต้น ............................................................................. 54 ความรู้เบื้องต้นเกี่ยวกับวัตถุ .................................................................... 54 บราวส์แกเลอรี........................................................................................ 57 การจัดการวัตถุ ....................................................................................... 80 การปรับแต่งวัตถุ .................................................................................... 85 การกาหนดคุณสมบัติวัตถุเบื้องต้น .......................................................... 92 การเขียนโปรแกรมเบื้องต้น ..................................................................... 99 สรุป ...................................................................................................... 108


(4) บทที่ 4 คุณสมบัติของวัตถุ .................................................................................. 109 แนวคิดของการจัดวางองค์ประกอบในโลกเสมือน .................................. 109 This........................................................................................................ 112 This.ground............................................................................................ 116 This.camera ........................................................................................... 117 คุณสมบัติของโมเดล .............................................................................. 119 คุณสมบัติของโมเดลคน ......................................................................... 124 สรุป ...................................................................................................... 133 บทที่ 5

เขียนโปรแกรมแบบตามลาดับ.................................................................134 การเขียนโปรแกรมแบบเรียงลาดับ ........................................................134 สรุป......................................................................................................152

บทที่ 6 การใช้งานตัวแปร .................................................................................... 153 ความหมายและคุณลักษณะของตัวแปร................................................. 153 การสร้างตัวแปรใช้งาน...........................................................................154 การสร้างตัวแปรเพื่อรับข้อมูลจากผู้ใช้ ................................................... 159 แนวทางการประยุกต์การคานวณโดยใช้ตัวแปร ......................................162 สรุป...................................................................................................... 181 บทที่ 7 คาสั่งเงื่อนไข ............................................................................................182 คาสั่ง if เดี่ยว .........................................................................................182 แบบ if-else .......................................................................................... 195 if ซ้อน if ............................................................................................... 208 สรุป .......................................................................................................221 บทที่ 8 สร้างเหตุการณ์จากคียบ์ อร์ดและเมาส์ .................................................... 222 การเข้าไปกาหนดการสร้างเหตุการณ์.................................................... 222 การสร้างเหตุการณ์ด้วยปุม่ บนแป้นพิมพ์ ............................................... 228 การควบคุมเหตุการณ์ของเมาส์ ............................................................. 253


(5) สรุป ...................................................................................................... 276 บทที่ 9 การเขียนโปรแกรมแบบวนซ้า .................................................................. 277 ความรู้เบื้องต้นเกี่ยวกับลูป................................................................... 277 คาสั่ง count ..........................................................................................281 คาสั่ง for each in ................................................................................. 299 คาสั่ง while ..........................................................................................317 สรุป..................................................................................................... 330 บทที่ 10 การเขียนโปรแกรมแบบขนาน ................................................................. 331 คาสั่ง do together................................................................................ 331 คาสั่ง each in together .........................................................................341 สรุป ................................................................................................... 360 บรรณานุกรม ........................................................................................................ 361


1

บทนำ

บทที่ 1 บทนำ

โปรแกรมอะลิซ (Alice) เป็นสุดยอดนวัตกรรมของการเขียนโปรแกรมด้วยสภาพแวดล้อมแบบสาม มิติ ซึ่งสามารถสร้างเอนิเมชั่นสาหรับนาเสนอเรื่องราว สร้างเกมสามมิติที่มีปฏิสัมพันธ์ หรือสร้างวีดีโอที่ สามารถนาไปแบ่งปันกันในเว็บได้ และที่สาคัญที่สุดก็คอื โปรแกรมอะลิซสามารถเป็นเครื่องมือสาหรับสอน การเขียนโปรแกรมแบบเชิง วัต ถุไ ด้อี ก ด้วย โปรแกรมอะลิซนั้น เป็น ซอฟต์แ วร์แ บบโอเพ่ น ซอร์ส ที่เป็ น เครื่องมือใช้ศึกษาการเขียนโปรแกรมด้วยโปรแกรมภาษาคอมพิวเตอร์ ในภาพแวดล้อมแบบไอดีอี ที่เป็น เครื่องมือกราฟิกแบบสามมิติที่สร้างมาจากโมเดลสามมิติ โปรแกรมสามารถประยุกต์ใช้ในหลายๆ งาน เช่น งานเกี่ยวกับคอมพิวเตอร์สามมิติเอนิเมชั่น เกมคอมพิวเตอร์ รวมถึงการใช้ งานร่วมกับการเขียนโปรแกรม ของภาษาจาวาได้อีกด้วย เนือ้ ในบทนีน้ าเสนอความรู้เบื้องต้น และการแนะนาโปรแกรมอะลิซในแง่มุมของ การประยุกต์ใช้งาน

วัตถุประสงค์      

ให้มีความรู้เกี่ยวกับประวัติของโปรแกรมอะลิซ ให้มีความรู้เกี่ยวกับขีดความสามารถของโปรแกรมอะลิซ ให้มีความรู้เกี่ยวกับทีมงานผู้พัฒนาโครงการอะลิซ ให้มีความรู้เกี่ยวแนวทางการประยุกต์ใช้งานโปรแกรมอะลิซ ให้มีความรู้เกี่ยวกับผู้สนับสนุนการพัฒนาโปรแกรมอะลิซ ให้รู้แนวทางของการเขียนเนือ้ ในหนังสือโดยสรุป

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


2

บทนำ

ประวัติเบื้องต้นของโปรแกรมอะลิซ โปรแกรมอะลิซถูกพัฒนำขึ้นครั้งแรกที่ University of Virginia, และต่อมาจนถึงปัจจุบนั ก็เป็น Carnegie Mellon ในปี1997, โดยกลุ่มวิจัยที่นาโดย Randy Pausch โดยเป็นโอเพ่นซอร์ส เป็นไปตามใช้ สัญญาอนุญาตแบบ Original BSD สามารถทางานบนระบบปฏิบัติการ Windows, Mac OS และ Linux ซึ่ง สามารถเข้าไปศึกษาได้ท่ี http://www.alice.org/index.php แสดงดังภำพ

โดยสภาพแวดล้อมการพัฒนาโปรแกรมแบบสามมิติที่มองทุก อย่างที่จั ด การอยู่ในโลกเสมือน (Virtual World) นั้น ทาให้ผู้เรียนได้เรียนรู้ห ลักการเขียนโปรแกรมด้วยการสร้างกราฟิกสามมิติในการ ขับเคลื่อน โดยใช้โมเดลวัตถุต่างๆ ทั้งผู้คน สัตว์ และพาหนะ ข้าวของเครื่องใช้ สิ่งก่อสร้าง และวัตถุที่มีใน ธรรมชาติ ที่เป็นโมเดลวัตถุทั้งสิน้ การเขียนโปรแกรมสามารถทาได้ตามรูปแบบของการเขียนโปรแกรมแนว ใหม่คือแดร็กแอนดรอป เพื่อควบคุมวัตถุต่างที่มีในโลกเสมือน วิกิพีเดียกล่าวว่า กล่าวว่าเวอร์ชันแรกที่ถกู ปล่อยออกมาในปี 1999 โดยสรุปเป็นตารางดังนี้

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


3

บทนำ

Developer(s)

Carnegie Mellon University

Initial release 1999 Stable release 3.1 / August 14, 2012; 6 months ago Written in

Java

Platform

Java platform

Type

Educational

License

BSD

Website

www.alice.org

วัตถุประสงค์ของกำรพัฒนำ โปรแกรมอะลิซถูกพัฒนาขึ้นเพื่อวัตถุประสงค์สาคัญสามประการสาหรับศึกษาการเขียนโปรแกรม ดังนี้ 1. โปรแกรมภาษาคอมพิวเตอร์ท่ใี ช้เขียนโปรแกรมออกแบบด้วยพื้นฐานของการเขียนโค้ดโปรแกรม เป็นหลัก แต่โปรแกรมอะลิซออกแบบเพื่อสอนการเขียนโปรแกรมคอมพิวเตอร์โดยไม่ให้มีความ ซับซ้อน ตามรูปแบบการเขียนโปรแกรมในแนวทางเชิงวัตถุเช่น C++ โดยผู้ใช้สามารถนาเอาวัตถุใน แกลเลอรีวางลงไปในโลกเสมือนแล้วเขียนโปรแกรมโดยแดร็กแอนดรอป รวมไปถึงสามารถกาหนด มุมมองของกล้องและกาหนดแสดงได้ในรูปแบบกราฟิกอินเทอร์เฟสอีกด้วย 2. โปรแกรมอะลิซใช้การพัฒนาโดยสภาพแวดล้อมไอดีอี ด้วยสภาพแวดล้อมของกราฟิกอินเทอร์เฟส ที่ไม่ต้องไวยากรณ์ ให้ จ ดจ ามากมาย แต่อย่างไรก็ตามอะลิซยังมีขีดความสามารถในการเขียน โปรแกรมแบบเชิงวัตถุเต็มรูปแบบ (full object-oriented) การขับเคลื่อนแบบเหตุการณ์ (event driven) ด้วยการขับเคลื่อนการเขียนโปรแกรมด้วยโมเดลมีรูปแบบการเขียนโปรแกรม

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


4

บทนำ

3. โปรแกรมอะลิซไม่ได้ออกแบบการเขียนโปรแกรมเหมือนโปรแกรมภาษาคอมพิวเตอร์ปกติที่จะเน้น การเขียนโค้ดเพื่อคานวณสาหรับคอมพิวเตอร์โดยตรง แต่อะลิซเน้นเรื่องการเขียนโปรแกรมด้วย การบอกเรื่ องราวตามแนวคิ ด ของการเขีย นโปรแกรมแทน ซึ่ง โปรแกรมนี้ น าไปใช้ในหลายๆ วิทยาลัยและมหาวิทยาลัยในการสอนการเขียนโปรแกรมเบื้องต้น ในสภาพการศึก ษาแบบควบคุม ที่ Ithaca College และ Saint Joseph's University โดยใช้ นักศึกษาที่ไม่มีประสบการณ์การเขียนโปรแกรมมาก่อน ที่ทาให้การเขียนทาให้เกรดเฉลี่ยเพิ่มจาก C to B และยังคงเพิ่มขึ้นจาก 47% ไปเป็น 88% เวอร์ชันที่เป็นที่รู้จักมากขึ้นได้แก่เวอร์ชัน 2.0 2.1 2.2 3.0 และเวอร์ชัน 3.1 ที่ใช้ในปัจจุบัน (เมษายน 2556)

เหตุผลที่ต้องใช้งำนโปรแกรมอะลิซ โปรแกรมอะลิซมีขีดความสามารถสูงในการจูงใจให้คนที่เขียนโปรแกรมไม่เป็นอยากเขียนโปรแกรม เพราะโปรแกรมอะลิซเป็นเสมือนโลกสามมิติที่ทาให้ผู้เขียนโปรแกรมหลุดเข้าไปอยู่ในโลกเสมือนแล้วทาการ ควบคุมวัตถุต่างๆ เหล่านัน้ ให้แสดงพฤติกรรมตอบสนองต่างๆ คล้ายรูปแบบของเกมคอมพิวเตอร์สามมิติที่ ใช้งานกันในปัจจุบัน ดังนั้นหากสรุปเป็นข้อๆ ถึงเหตุผลว่าทาไมต้องใช้งานโปรแกรมดังกล่าวสามารถสรุป และพอยกตัวอย่างให้เห็นได้ดังนี้ 1. อะลิซ เป็นโปรแกรมที่ใช้งานผ่านกราฟิกอินเทอร์เฟส คล้ายโปรแกรมวาดรูปหรือโปรแกรมเกม โดยทั่วไปกาหนดมุมมองเป็นสองมุมมอง ง่ายต่อการจัดการ เหมาะสาหรบผู้ท่ไี ม่มี ประสบการณ์การเขียนโปรแกรมมาก่อนเป็นอย่างยิง่ ตัวอย่างดังภาพต่อไปนี้ มุมมองออกแบบสร้างโลกเสมือน

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


5

บทนำ

มุมมองการเขียนโปรแกรมแบบแดร็กแอนดรอป

การจัดวางกราฟิกที่ง่ายมาก

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


6

บทนำ

การเขียนโปรแกรมแบบแดร็กแอนดรอป

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


7

บทนำ

2. อะลิซ นาเสนอความรู้เชิงวัตถุได้อย่างชัดเจน เพราะโมเดลต่างๆ ที่ปรากฏในโปรแกรมและให้ ผู้ใช้ได้ใช้งานนั้น มีส่วนที่เป็นคุณสมบัติหรือเรียกว่าแอตทริบวิ ต์ และมีฟังก์ชัน โพรซีเยอร์ ทีใ่ ช้ งานได้อย่างชัดเจนตามแนวทางการเขียนโปรแกรม

3. อะลิซ มีรูปแบบการเขียนโปรแกรมแบบแดร็กแอนดรอปสมบูรณ์แบบตามแนวทางการเขียน โปรแกรในยุคที่ 4 (4GL)

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


8

บทนำ

4. อะลิซ ไม่ไวยาการณ์ของโปรแกรมให้จดจามากมายเหมือนโปรแกรมภาษาโดยทั่วไป ผู้เขียน โปรแกรมใช้งานผ่านกราฟิกอินเทอร์เฟสเพียงอย่างเดียว

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


9

บทนำ

5. อะลิช สามารถรันโปรแกรมในรูปแบบวิสชวลแบบทันทีทนั ใด เพราะสามารถจะเห็นพฤติกรรม ของวัตถุ การตอบสนองที่เป็นรูปธรรมในรูปแบบสามมิติ มากกว่าโปรแกรมภาษาโดยทั่วไป ทางานโดยไม่ต้องอาศัยจินตนาการมาก

6. อะลิซ อนุญาตให้จดั การโมเดลต่างๆ และพฤติกรรมต่างของโปรแกรมได้ตามแนวทางของวัตถุ คล้ายโปรแกรมออกแบบกราฟิกสามมิติ เช่น MAYA Blender หรือ 3DMax เป็นต้น

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


10

บทนำ

7. อะลิซ จูงใจผู้ศกึ ษาด้วยการทาให้ผู้ใช้กาหนดให้ตัวละครสวมบทบาทแสดงพฤติกรรม คล้าย การสร้างเกมคอมพิวเตอร์ และสามารถนาออกไปเป็นวีดีโอที่สามารถนาขึ้นไปแบ่งปันกันโลก ออนไลน์อกี ด้วย 8. ในการใช้งานขัน้ สูงสามารถนาออก (Export) ไปในรูปแบบภาษาจาวาและเขียนควบคุมด้วย ภาษาจาวาอีกด้วย

ทีมงำนผู้พัฒนำ Wanda Dann

Dr. Wanda Dann ถูกกาหนดให้เป็นผู้นาโครงการ Alice Project ในปี 2008 งานวิจัยของ Wanda's สนใจในเรื่องการเขียนโปรแกรมวิสชวล และนวัตกรรมของการสอนการเขียนโปรแกรมเบื้องต้น

Research Scientist Dennis Cosgrove

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


11

บทนำ

Dennis Cosgrove ทางานกับระบบของอะลิซตั้งแต่ 1990s เขาทางานกับส่วนของการออกแบบ กราฟิกและพัฒนาส่วนสามมิติและให้การสนับสนุนส่วนการเขียนโปรแกรมให้มีความเข้ากันได้ดี ได้เป็น หัวหน้าทีมกาหนดสถาปัตยกรรมของอะลิซ 3 ในปี 2006. System Scientist Don Slater

Don Slater สอนใน in K-12 เป็น เวลา 21 ปีก ก่อนที่จ ะเข้าในภาควิชาวิทยาการ คอมพิวเตอร์ท่ี Carnegie Mellon University และเข้าร่วมทีมพัฒนาอะลิซ ในปี 2005 เป็น ผู้ออกแบบรูปแบบคาสั่งต่างๆ ในปี 2012 เขาก็เข้ามาทางานเป็นสมาชิกของ Alice Project อย่างเต็มตัว

Software Engineer Dave Culyba

ตลอดเวลาที่เรียนระดับปริญญาตรี Dave ทางานโดยเริ่มจากขั้น ที่ส ามของการ พัฒนาอะลิซ เวอร์ชัน Alice 2 ต่อมาเขาได้ทางานที่ Electronic Arts เป็นบรรณาธิการใน PC game Spore. Character Artist Laura Paoletti

Laura ได้เข้าเป็นสมาชิก Alice Project ตั้งแต่ 2011 ซึ่งได้รับปริญญาทั้งสาขาวิทยาการ คอมพิวเตอร์และวิจิตรศิลป์จาก Carnegie Mellon เป็นผู้นาในการสร้างโมเดลสาหรับ Alice 3 Project

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


12

บทนำ

Character Artist Peihong Tan

Pei สาเร็จการศึกษา BFA ในการออกแบบอุต สาหกรรม (Industrial Design) จาก Rochester Institute of Technology และปริญญาโท สาขา Entertainment Technology จาก Carnegie Mellon's Entertainment Technology Center เข้าร่วม Alice Project ในปี 2012 Faculty Steve Cooper

Steve Cooper สอนอยูท่ ี่ Computer Science Department ในมหาวิทยาลัย Stanford University เขา เริ่มทางานกับการพัฒนาอะลิซในปี 1998 เป็นต้นมา Faculty Jacobo Carrasquel

Jacobo Carrasquel ร่วมงานกับโครงการอะลิซในปี 2010 ปัจจุบันทางานกับส่วนเวอร์ชัน ภาษาสเปน เวอร์ชัน 2 object base และ Alice 3 (object-oriented).

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


13

บทนำ

Collaborating Faculty Caitlin Kelleher

Caitlin Kelleher ทางานที่ Washington University in St. Louis และศึกษาสาหรับระดับ ปริญญาเอกที่ Carnegie Mellon University ทางานกับ ศาสตราจารย์ Randy Pausch เข้าร่วมโครงการในปี 1999 สาหรับโครงการที่ใช้สาเร็จการศึกษานั้นได้ ทาส่วนของการเล่าเรื่อง (Storytelling) โดยใช้การสร้าง การเขียนโปรแกรมเชิงวัตถุ Staff Cleah Schlueter

Cleah Schlueter เป็นผู้บริหารและผู้จัดการโครงการ ที่ Carnegie Mellon University เข้า ร่วมโครงการในปี 2007 และเข้าร่วมทางานในหลายๆ ส่วนงาน Consultant Gabe Yu

Gabe Yu เป็นผู้จัดการห้องแล็ป ดาเนินการกับทีมพัฒนาอะลิซมากกว่าสิบปี

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


14

บทนำ

Consultant Steve Audia

Steve Audia คือ นักเทคนิค สาหรับส่วนงาน Entertainment Technology Center และร่วมงานกับอะลิซทีม In Memoriam Randy Pausch

Randy เป็น ศาสตราจารย์ในเรื่อง Human-Computer Interaction and Design ที่ Carnegie Mellon เป็นผู้บริการที่ให้คาปรึกษาทางด้านงานวิจัยอะลิซ

ผู้ให้กำรสนับสนุน ผู้ให้การสนับสนุนในการพัฒนาโปรแกรมอะลิซมีดังนี้

Electronic Arts Oracle

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


15

บทนำ

Sun Microsystems Google

The National Science Foundation DARPA

The Hearst Foundation Disney

The Heinz Endowments Hyperion Books

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


17

บทนำ

และผู้สนับสนุนระยะแรก ๆ ได้แก่: University of Virginia, Intel, Microsoft Research, ONR, Advanced Network and Services, Inc., NASA, Python, Chevron and Pixar

เนือ้ หาในหนังสือเล่มนี้

บทที่ 2 เริ่มต้นกับอะลิซ จากบทนาที่กล่าวถึงความจาเป็นและความสามารถของโปรแกรมอะลิชโดยรวมไปแล้วนั้น ในบทนี้ นาเสนอการ เริ่มดาวน์โหลดโปรแกรมอะลิช การติดตั้ง การเข้าใช้งานเบื้องต้น หลังจากนั้นอธิบายกเกี่ยวกับส่วนประกอบต่างๆ ของ โปรแกรมที่จาเป็นต่อการใช้งานบทต่อๆ ไป ส่วนสุดท้ายของบทแนะนาและแสดงตัวอย่างเขียนโปรแกรมและรันโปรแกรม เบื้องต้น เพื่อให้มีความรู้การเกี่ยวกับขั้นตอนการใช้งานโปรแกรมเบื้องต้น

บทที่ 3 กำรใช้งำนวัตถุเบื้องต้น บทนีเ้ น้นเรื่องวัตถุต่างๆ ที่มีอยูใ่ นแกลเลอรี (Gallery) ที่จะใช้สาหรับเขียนโปรแกรมบังคับให้วัตถุได้ แสดงกริยาและบทบาทตามที่ต้องการ โดยที่เนื้อหาที่สาคัญก็คือการจัดการกับวัตถุต่าง ๆ เหล่านั้น เช่น การย่อขยาย การหมุน การจัดการให้วัตถุอยู่ในฉากและโลกเสมือนให้ได้ตามที่ต้องการ ส่วนท้ายของบท แนะนาและแสดงตัวอย่างเขียนโปรแกรมและรันโปรแกรมเบื้องต้น เพื่อให้มีความรู้การเกี่ยวกับการจัดการ กับเหตุการณ์ให้เป็นไปตามขัน้ ตอนการใช้งานโปรแกรมเบื้องต้น

บทที่ 4 คุณสมบัติของวัตถุ เนือ้ หาในบทนีน้ าเสนอ เกี่ยวกับคุณสมบัติต่าง ๆ ของวัตถุที่จะนาไปใช้ในการเขียนโปรแกรมในบท ต่อ ๆ ไป โดยจะกล่าวถึงคุณสมบัติของ This This.ground this.camera และวัตถุอื่น เช่น สัตว์สองเท้า สัตว์สี่ เท้า และส่วนสาคัญได้แก่การนาเสนอส่วนของวัตถุที่เป็นคน ที่ต้องกาหนดคุณลักษณะที่แตกต่างจากวัตถุ อื่นๆ ในการนาเสนอแต่ละสิ่งที่กล่าวแล้วนีจ้ ะนาเสนอในคาสั่งของ Procedures Functions และ Properties ที่ จาเป็นต่อการเขียนโปรแกรมในบทถัด ๆ ไปเท่านั้น

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


18

บทนำ

บทที่ 5 กำรเขียนโปรแกรมตำมลำดับ เนือ้ หาในบทนี้ นาเสนอ การเขียนโปรแกรมแบบตามลาดับ (Sequence Programming) โดยอาศัย โปรแกรมอะลิซ ที่นาเอาวัตถุต่างๆ มาวางบนพื้นที่ในโลกเสมือนแล้วเขียนโปรแกรมเป็นลาดับขั้นเรียงกันไป ให้วัตถุสามมิตินั้นได้มีปฏิสัมพันธ์หรือการทางานได้ตามที่ต้องการในรูปแบบกราฟิกสามมิติ

บทที่ 6 กำรใช้งำนตัวแปร โดยธรรมชาติของการเขียนโปรแกรมคอมพิวเตอร์ สิ่ง ที่จ าเป็น ต้องเรียนรู้แ ละนาไปใช้งานเพื่อ ควบคุ ม โปรแกรม รั บ ข้ อ มู ล และแสดงผลข้ อ มู ล คื อ ตั ว แปร ที่ จ ะใช้ ใ นบริ บ ทที่ แ ตกต่ า งกั น โดย โปรแกรมเมอร์ต้ องเป็ น ผู้ก าหนดขึ้ น มาให้โปรแกรมสามารถมีป ฏิสัมพั น ธ์ทั้ง เบื้องหน้าและเบื้ องหลั ง โปรแกรม ตัวแปรที่มีในโปรแกรมอะลิซนั้นจะอยู่ในรูปแบบของตัวแปรเชิงวัตถุ และตัวแปรแบบมาตรฐาน ทั่วไป บทนีจ้ ะนาเสนอการสร้างตัวแปร การนาตัวแปรไปควบคุมการเขียนโปรแกรม การสร้างตัวแบบวัตถุ เพื่อใช้งานอย่างง่ายเพื่อใช้เป็นพื้นฐานของการเขียนโปรแกรมในบทต่อๆ ไป ที่มีความซับซ้อนมากขึ้น

บทที่ 7 คำสั่งเงื่อนไข คาสั่ง เงื่อนไข สาหรับการเขียนโปรแกรมคอมพิวเตอร์มีความจาเป็นมากเนื่องจากเป็นส่วนที่ใช้ สาหรับให้โปรแกรมหรือผู้ใ ช้งานได้เลือกให้โปรแกรมทางานตามที่ต้องการได้ การสร้างทางเลือกให้กับ โปรแกรม คาสั่งเงื่อนไขที่ใช้ได้แก่ IF...Else... คาสั่งนีส้ ามารถนามาประยุกต์ใช้กับโปรแกรมแบบโครงสร้าง และโปรแกรมแบบเชิงวัตถุได้ทงั้ หมด เนือ้ หาในบทนี้ นาเสนอ การใช้งานงาน IF ในสามรูปแบบคือ IF เดี่ยว IF...Else และ IF ซ้อน IF

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


19

บทนำ

บทที่ 8 สร้ำงเหตุกำรณ์จำกคีย์บอร์ดและเมำส์ การเขียนโปรแกรมคอมพิวเตอร์แบบกราฟิกสามมิติ มีความจ าเป็นอย่างยิ่ง ที่จ ะต้องสร้างส่วน ปฏิสัมพันธ์กับผู้ใช้ โดยให้ผู้ใช้สามารถควบคุมสิ่งต่างๆ ที่มีอยู่ในโลกเสมือนนั้น ให้สร้างหรือดาเนิน กิจกรรมใดๆ ตามความต้องการ เช่น การขยับ การโต้ตอบ เป็นต้น สาหรับเนื้อหาในบทนี้ นาเสนอการ ควบคุมแป้นพิมพ์และเมาส์เพื่อใช้เป็นส่วนที่มีปฏิสัมพันธ์กับโมเดลของวัตถุที่นามาวางไว้ในโลกเสมือน บทที่ 9 กำรเขียนโปรแกรมแบบวนซ้ำ คาสั่งวนซ้าหรือลูป (Loop) เป็นคาสั่งควบคุมที่ใช้ในการทาซ้าหรือวนซ้า ๆ กันในกระบวนการใด กระบวนการหนึ่ง แต่จะมีค่าตัวแปรหรือบางคาสั่งเปลี่ยนไปในแต่ละรอบของการวนซ้า โปรแกรมเมอร์ จะเรียกกลุ่มคาสั่งของการวนซ้าว่าคาสั่งลูป คาสั่งลูปนี้จะช่วยทาให้การเขียนโปรแกรมที่มีความยาว มาก ๆ ให้มีขนาดกะทัดรัดและทางานได้อย่างยืดหยุ่น บทนีจ้ ะนาเสนอรายละเอียดเกี่ยวกับคาสั่ง count for each และwhile ซึ่งจะควบคุมการวนทางานซ้าของโปรแกรมให้วัตถุทางานซ้าๆ โดยไม่ต้องเขียน คาสั่งจานวนมาก บทที่ 10 กำรเขียนโปรแกรมแบบขนำน การเขีย นโปรแกรมแนวใหม่ใ นปัจ จุ บัน นั้น ไม่ ว่าจะเป็ น เกมคอมพิ วเตอร์ หรื อโปรแกรมผ่า น เครือข่าย โปรแกรมประมวลผลต่างๆ ก็ตาม จาเป็ นอย่างยิ่งที่จะต้องสั่งให้โปรแกรมสามารถทางาน ขนานกัน ได้ เพื่อให้ เกิด ความสมจริง หากเป็น เกมคอมพิวเตอร์ หรือหากเป็น โปรแกรมปกติก็เพื่ อ สนับสนุนการฮาร์ดแวร์ที่สามารถรองรับการประมวลผลแบบขนานได้ โปรแกรมอะลิซได้สร้างส่วนการ ประมวลของวัตถุได้ แบบขนาน ที่ทาให้วัตถุสามารถทางานดาเนินกิจกรรมต่างๆ พร้อมๆ กันขนานกัน ไปได้ บทนีน้ าเสนอคาสั่งที่สามารถทาให้วัตถุทางานขนานกันได้ แบบทางานด้วยกันได้ ด้วยคาสั่ง do together และ each in together ที่สร้างการทางานประมวลผลขนานดังกล่าว

เขียนโปรแกรมกรำฟิกสำมมิติโดยใช้อะลิช

เชำวลิต ขันคำ


134

การเขียนโปรแกรมแบบตามลาดับ

บทที่ 5 เขียนโปรแกรมแบบตามลาดับ เนื้อหาในบทนี้ นาเสนอ การเขียนโปรแกรมแบบตามลาดับ (Sequence Programming) โดย อาศัยโปรแกรมอะลิซ ที่นาเอาวัตถุต่างๆ มาวางบนพื้นที่ในโลกเสมือนแล้วเขียนโปรแกรมเป็นลาดับขั้น เรียงกันไป ให้วัตถุสามมิตินั้นได้มีปฏิสัมพันธ์หรือการทางานได้ตามที่ต้องการในรูปแบบกราฟิกสามมิติ

วัตถุประสงค์     

ให้มีความรู้เกี่ยวกับการเขียนโปรแกรมแบบเรียงลาดับ ให้มีความรู้เกี่ยวกับขัน้ ตอนการเขียนโปรแกรมแบบตามลาดับด้วยโปรแกรมอะลิซ ให้สามารถเขียนโปรแกรมควบคุมวัตถุแบบเรียงลาดับได้ ให้สามารถเขียนโปรแกรมควบคุมการเคลื่อนที่ของกล้องแบบตามลาดับได้ ให้สามารถเขียนโปรแกรมควบคุมชุดของวัตถุแบบตามลาดับได้

การเขียนโปรแกรมแบบเรียงลาดับ โปรแกรมคอมพิวเตอร์ (ซอฟต์แ วร์) คือ ชุด คาสั่งที่สั่งให้คอมพิวเตอร์ส ามารถทางานตามที่ ต้องการ โดยแปลงคาสั่งให้เป็นสัญญาณทางอิเล็กทรอนิกส์ไปควบคุมฮาร์ดแวร์ โปรแกรมแบบเรียงลาดับ การเขียนโปรแกรมแบบนี้ไม่มีความซับซ้อนใด ๆ โดยจะนาคาสั่ง ของโปรแกรมภาษาที่ใช้ในการเขียนมาเรียงต่อกันเป็นลาดับ ต่อเนื่องกันไปจากต้นจนจบ แสดงตัวอย่าง แนวคิดการเขียนโปรแกรมดังกล่าวได้ดังภาพ

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


135

การเขียนโปรแกรมแบบตามลาดับ

เริ่ม คำสัง่ 1

คำสัง่ 2 …

คำสัง่ n

จบ

การพัฒนาโปรแกรมลักษณะนี้ไม่มีความซับซ้อนและเหมาะสาหรับผู้ที่เริ่มหัดเขียนโปรแกรม และผู้ที่ต้องการฝึก หัดใช้คาสั่งของภาษาคอมพิวเตอร์ภาษาใด ๆ ใหม่ ๆ ในบทฝึก ให้ใช้งานด้วย คาสั่งในลักษณะนี้ โดยอาศัยวัตถุและโลกเสมือนเป็นส่วนนาในการเขียนโปรแกรม ขัน้ ตอนการเขียนโปรแกรมในโปรแกรมอะลิซนั้น มีดังนี้ 1. ออกแบบให้จัดวางวัตถุในโลกเสมือนให้ได้ตามทีต่ ้องการ 2. กาหนดคุณสมบัติของวัตถุต่างๆ ให้ได้ตามที่ต้องการ 3. คลิกที่ Edit Code 4. จากนั้นโปรแกรมจะเข้าสู่โหมดของการเขียนโปรแกรม 5. เขียนโปรแกรมตามแนวทางของโอโอพี แบบแดร็กแอนดร็อป คือคลิกคาสั่งค้างไว้แล้วลาก ไปวางลงบนพื้นที่เขียนโปรแกรม แล้วกาหนดคุณสมบัติ ค่าบางอย่าง หรือเขียนคาสั่งเพียงเล็กน้อย 6. คลิกที่ปมุ่ Run ผลลัพธ์ของการรันจะแสดงดังภาพ

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


136

การเขียนโปรแกรมแบบตามลาดับ

ตัวอย่างที่ 4.1 เขียนโปรแกรมให้ตัวละครทักทายกันโดยตัวละครตัวแรกคิด และอีกตัวพูดทักทาย แนวคิดเชิงอัลกอริทมึ : 1. ออกแบบโปรแกรมโดยการจัดวางตัววัตถุสองวัตถุ 2. นาคาสั่งสาหรับทักทายของวัตถุแรกมาวาง และกาหนดข้อความให้แสดง 3. นาคาสั่งสาหรับทักทายของวัตถุที่สองมาวาง และกาหนดข้อความให้แสดง 4. จบ ตัวอย่างนีด้ าเนินการตามแนวคิดข้างต้นดังนี้ 1. นาเอาวัตถุสองชนิดมาวางให้หันหน้าเข้าหากันดังภาพ

2. คลิก Edit Code เข้าสู่โหมดการเขียนโปรแกรมดังภาพ

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


137

การเขียนโปรแกรมแบบตามลาดับ

3. คลิกทีต่ ัวละครวัตถุตัวแรก คลิกลาก .think ดังภาพ

คลิกเลือก

คลิกลำก this.adultPerson.think

4. วางคาสั่งลงในพื้นที่เขียนโปรแกรม ดังภาพ

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


138

การเขียนโปรแกรมแบบตามลาดับ

วำงคำสัง่ ลงในพื ้นที่ เขียนโปรแกรม

5. กาหนดข้อความที่ตัวละครคิด

6. จะปรากฏคาสั่งดังนี้

คำสัง่ สำหรับกำรคิดของตัว ละครตัวแรก

7. ทดลอกคลิก ปุ่ม Run จะปรากฏผลการรันของการคิดของตัวละครตัวแรกดังภาพ

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


139

การเขียนโปรแกรมแบบตามลาดับ

8. คลิกตัวละครตัวที่สอง แล้ว คลิกคาสัง่ .say มาวางบนพื้นที่เขียนคาสัง่ แล้วกาหนด คาสั่งให้แสดง คล้ายกับตัวละครตัวแรก

9. เมื่อเขียนคาสั่งเสร็จแล้วจะได้ดงั ภาพด้านล่าง

คำสัง่ เมื่อเขียนเสร็จแล้ ว

10. ผลการรันโปรแกรมจะได้ดังที่โจทย์ต้องการ แสดงดังภาพด้านล่างนี้ เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


140

การเขียนโปรแกรมแบบตามลาดับ

ตัวอย่างที่ 4.2 เขียนโปรแกรมให้ตัวละครหันหน้ามาทักทายกัน โดยกาหนดให้ตัวละครทั้งคู่หันหน้าไป คนละทางก่อนที่จะรันโปรแกรม แนวคิดเชิงอัลกอริทมึ : 1. ออกแบบให้ตัวละคร ซึ่งเป็นวัตถุนั้นหันหน้าออกจากกัน 2. ให้ตัวละครตัวแรกหันหน้าไปหาตัวละครตัวทีส่ อง 3. ให้ตัวละครตัวทีส่ องหันหน้าไปหาตัวละครตัวแรก 4. ให้ตัวละครตัวแรกทักทาย 5. ให้ตัวละครตัวทีส่ องทักทาย 6. จบ ขัน้ ตอนการเขียนโปรแกรม ดังนี้ 1. ดาเนินการออกแบบโดยนาวัตถุสองชนิดมาวางบนโลกเสมือน ในตัวอย่างต่อไปนีจ้ ะใช้ตัว ละครเป็นคนและเอเลี่ยนเช่นเดิม ดังภาพ

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


141

การเขียนโปรแกรมแบบตามลาดับ

2. คลิกทีต่ ัวละครตัวที่หนึ่งหรือเลือกในดร็อปดาวน์ของ this.adultPerson แล้วคลิกลาก this.adultPerson.turnToFace ไปวางในพื้นที่เขียนโปรแกรมเพื่อให้ตัวละครตัวแรกหันหน้าไป ยังตัวละครตัวที่สอง ดังภาพ

เลือกวัตถุที่ ต้ องกำร

คลิกลำก

this.adultPerson.turnToFace

3. จากนั้นจะมีวัตถุที่ตัวละครตัวแรกสามารถหันหน้าไปหาได้ ดังภาพ เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


142

การเขียนโปรแกรมแบบตามลาดับ

วัตถุที่ตวั ละครแรกหัน หน้ ำไปหำได้

4. เลือก this.alien ดังภาพ

เลือก this.alien

5. หลังจากนัน้ จัดการกับวัตถุทสี่ อง ด้วยวิธีการเดียวกันคือ คลิกเลือกที่ตัวเอเลี่ยนหรือเลือก ในช่องดร็อปดาวน์ลิสก็ได้ แล้วลาก this.alien.turnToFace ดังภาพ

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


143

การเขียนโปรแกรมแบบตามลาดับ

เลือกเอเลีย่ น

คลิกลำก this.alien.turnToFace ไปวำง บนพื ้นที่เขียนโปรแกรม

6. เลือกวัตถุคอื ตัวละครตัวแรกให้เอเลี่ยนหันหน้าไปหา การเลือกแสดงดังภาพ

เลือก ให้ เอเลีย่ นหัน หน้ ำไปหำคน

7. หลังจากนัน้ คลิกเลือกคน แล้วลาก this.adultPerson.say ไปวางในพืน้ ที่เขียนโปรแกรมโดย วางต่อคาสั่งก่อนหน้า และกาหนด ข้อความให้แสดง 8. คลิกที่เอเลียนแล้วลาก this.alien.say ไปวางในพื้นที่เขียนโปรแกรมโดยวางต่อจากคาสัง่ ก่อนหน้า แล้วกาหนดข้อความให้แสดง 9. เมื่อกาหนดสาเร็จแล้ว แสดงดังภาพ

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


144

การเขียนโปรแกรมแบบตามลาดับ

คำสัง่ เมื่อเขียนโปรแกรม เสร็จแล้ ว

10. ผลการรัน คือ ตัวละครแรกจะหันหน้าหาตัวที่สอง แล้วตัวที่สองจะหันหน้าตัวละครตัวแรก หลังจากนัน้ ตัวละครตัวแรกจะทักทายก่อน ตามมาด้วยตัวละครตัวที่สองทักทาย แล้วจบ งาน ได้ตามที่โจทย์กาหนด ตัวอย่างแสดงดังภาพ

จากตัวอย่างที่ผ่านมานั้น เป็นการควบคุมตัววัตถุที่นามาวางบนโลกเสมือน แต่ตัวอย่างต่อไปนี้ เป็นการควบคุมการทางานของโปรแกรมโดยใช้กล้องประสานกับการทางานของวัตถุ ตัวอย่างที่ 4.3 เขียนโปรแกรมให้กล้องซูมเข้าไปหาตัวละครทีละตัว แนวคิดเชิงอัลกอริทมึ : 1. วางวัตถุหนึ่งอย่างลงบนโลกเสมือน โดยให้ห่างจากกล้องมากพอสมควร 2. กาหนดให้กล้องซูมเข้า (เคลื่อนที)่ ไปหาวัตถุนนั้ ตามต้องการ 3. จบ เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


145

การเขียนโปรแกรมแบบตามลาดับ

ขัน้ ตอนการเขียนโปรแกรมดังนี้ 1. เลือกฉาก และนาวัตถุมาวาง ในที่นี้เอาวัตถุที่เป็นไก่ วางในตาแหน่งทีห่ ่างจากกล้อง พอสมควร แสดงดังภาพ

2. คลิกเลือกที่ this.camera แล้ว คลิก this.camera.moveToward ไปวางบนพื้นที่เขียน โปรแกรม แสดงตัวอย่างดังภาพ

เลือก this.camera

คลิกลำก this.camera.moveToward

ไปวำงบนพื ้นที่เขียนโปรแกรม

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


146

การเขียนโปรแกรมแบบตามลาดับ

3. จะปรากฏระยะที่ให้กล้องเคลื่อนที่เข้าไปหาวัตถุ ในภาพด้านล่างนีเ้ ลือก this.chicken ให้ กล้องเคลื่อนเข้าไก่ แล้วกาหนดระยะทางเอง โดยเลือก Custom DecimalNumber ดังภาพ

เลือกไก่

เลือกกำหนดระยะทำงเอง

4. กาหนดระยะทางดังภาพ

5. คลิกลาก this.camera.orientToUpright() ไปวางต่อคาสัง่ เดิม เพื่อให้เมื่อกล้องเลื่อนเข้าไป แล้วจะทาให้เห็นในมุมมองที่อยูเ่ หนือพืน้ ดินตลอดเวลาด้วยคาสั่งดังกล่าว แสดงดังภาพ เลือกปรับมุมกล้ องให้ อยู่ เหนือพื ้นดินเสมอ

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


147

การเขียนโปรแกรมแบบตามลาดับ

6. ผลการรันจะพบว่ากล้องซูมเข้าไปหาไก่ แล้วจัดให้อยูใ่ นมุมมองที่มองได้อยูเ่ หนือพื้นดินที่ดี แสดงตัวอย่างผลการรันของโปรแกรมนีด้ ังภาพ

ตัวอย่างที่ 4.4 เขียนโปรแกรมให้กล้องซูมตามไก่ไปเมื่อไก่เคลื่อนที่ไปทีละสองหน่วย แนวคิดเชิงอัลกอริทมึ : 1. จัดวางวัตถุหนึ่งอย่างบนโลกเสมือน 2. เขียนคาสั่งให้วัตถุเคลื่อนที่ไปข้างหน้า สองหน่วย 3. เขียนคาสั่งให้กล้องเคลื่อนที่ตามไปสองหน่วยเช่นกัน 4. ปรับมุมมองของกล้องให้สามารถมองวัตถุได้ในมุมมองเหนือพื้นดิน 5. ดาเนินการตามข้อ 2-4 อีกรอบ ไปเท่าที่ต้องการ 6. จบ จากแนวคิดด้านบนสามารถเขียนคาสั่ง ได้ดงั นี้ 1. จัดวางวัตถุดงั ภาพ ในทีน่ ใี้ ช้ไก่เป็นตัววัตถุ 2. ลากคาสั่ง this.chicken.move ไปวางบนพื้นที่เขียนโปรแกรม

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


148

การเขียนโปรแกรมแบบตามลาดับ

3. เลือกเคลื่อนที่ไปข้างหน้า จานวนสองหน่วย ดังภาพ

เลือกเคลือ่ นไปข้ ำงหน้ ำ

เลือกจำนวน 2.0 หน่วย

4. เลือกกล้อง this.camara.moveToward คลิกลากไปวางบนพื้นที่เขียนโปรแกรมต่อจาก คาสั่งแรก

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


149

การเขียนโปรแกรมแบบตามลาดับ

เลือกให้ กล้ องเคลือ่ นทีไป ข้ ำงหน้ ำ

5. ระบุจานวนหน่วยของการเคลื่อนไปจานวน 2.0 หน่วย หลังจากนั้น คลิกลาก this.camera.orientToUpright() เพื่อปรับมุมกล้องให้เห็นวัตถุด้านบนเสมอ

คำสัง่ เมื่อเคลือ่ นกล้ องและเลือกปรับ มุมกล้ อง

6. เขียนคาสั่งลักษณะเดียวกันนี้ อีกรอบ หลังจากเขียนซ้าในลักษณะดังกล่าว แสดงดัง ภาพ

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


150

การเขียนโปรแกรมแบบตามลาดับ

คำสัง่ เมื่อเขียนเสร็จแล้ ว

7. ผลการรันจะได้การเคลื่อนไก่ด้านหน้าแล้วกล้องเคลื่อนตามและปรับมุมมองของกล้อง ให้เห็นไก่ตลอดเวลา การดาเนินการดังกล่าวนีจ้ ะเกิดขึ้นสองรอบ ตัวอย่างที่ 4.5 เขียนโปรแกรมให้กล้องซูมตามไก่ไปเมื่อไก่เคลื่อนที่ไปทีละสองหน่วยโดยให้หาไก่พบ เสมอ แนวคิดเชิงอัลกอริทมึ : 1. จัดวางวัตถุตามตาแหน่งที่ต้องการในโลกเสมือน 2. ให้วัตถุเคลื่อนที่ไปด้านหน้าจานวนสองหน่วย 3. ให้กล้องติดตามไปในมุมมองที่ดีทสี่ ุด 4. ดาเนินการในข้อ 2-3 ซ้าตามที่ต้องการ 5. จบ การเขียนโปรแกรมดังกล่าวนี้เป็นการใช้งานคาสั่งติดตามของกล้องอีกรูปแบบหนึ่งโดยทาให้ สามารถติดตามวัตถุได้ในมุมมองที่ดที ี่สุด ตัวอย่างการเขียนโปรแกรมดังนี้ 1. จัดวางวัตถุ ตามที่ต้องการ ในที่นี้ยงั คงใช้ไก่ เป็นวัตถุหลัก หลังจากนีใ้ ห้คลิกลากคาสั่ง this.chicken.move มาวางแล้วกาหนดการเคลื่อนไปข้างหน้า 2.0 หน่วย 2. คลิกลากคาสั่ง this.camera.moveAndOrientToAGoodVantagePointOf โดยเลือกให้ชไี้ ปยัง this.chiken แสดงดังภาพ

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


151

การเขียนโปรแกรมแบบตามลาดับ

เลือกคำสัง่ ติดตำมของกล้ อง

3. ตัวอย่างนีแ้ สดงการเคลื่อนและการติดตามจานวนสองรอบ คาสั่งเมื่อเขียนเสร็จแล้ว จะได้ ดังนี้

คำสัง่ เมื่อเขียนเสร็จแล้ ว

4. ผลการรันโปรแกรมจะได้การเคลื่อนที่ของไก่และมุมมองของกล้องติดตามในมุมมองทีด่ ี ที่สุด ดังภาพ

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


152

การเขียนโปรแกรมแบบตามลาดับ

สรุป การเขีย นโปรแกรมแบบตามล าดับ เป็น การเขียนโปรแกรมที่ง่ายที่ สุด โดยน าเอาคาสั่ง ที่ ต้องการมาเรียงต่อกันไปคาสั่งต่อคาสั่ง ในการเขียนโปรแกรมด้วยโปรแกรมอะลิซนั้น มีคาสั่งที่เขียน จากโพรซีเยอร์ ฟังก์ชัน พร็อบเพอตีข้ องแต่ละวัตถุ กาหนดควบคุมการกระทาของวัตถุ ที่นามาเรียงกัน จะได้โปรแกรมหนึ่งโปรแกรม สาหรับการกาหนดการเขียนโปรแกรมสามารถกาหนดและเขียนจากการ ควบคุมในมุมมองของวัตถุ และมุมมองของกล้อง ซึ่งต้องอาศัยขัน้ ตอนการคิดและการควบคุมอย่างเป็น ระบบ

เขียนโปรแกรมกราฟิกสามมิติโดยใช้อะลิช

เชาวลิต ขันคา


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.