วันเสาร์ที่ 26 ธันวาคม พ.ศ. 2558

Construct 2 : Array

บทความตอนนี้ ผมได้เรียบเรียงมาจากบทความต้นฉบับของ ramones (Arrays for Beginners)
เพื่อเป็นบทเรียนสำหรับนักเรียนและผู้ที่สนใจ เรื่องเกี่ยวกับ array และการนำ array ไปประยุกต์ใช้ในการสร้างเกม

โดยพื้นฐานแล้วนั้น array คือ ช่องสำหรับเก็บข้อมูลที่เรียงต่อกัน ขนาดของแต่ช่องจะเท่ากับขนาดของข้อมูลที่เก็บอยู่ภายใน และบางครั้งช่องข้อมูลอาจแบ่งย่อยไปอีก ในแนวกว้าง แนวยาว และแนวลึก เป็น 3 มิติ ในแนวแกน x, y และ z ในโปรแกรม construct 2 จะเรียกว่า  width, height และ depth

Array 1 มิติ
การสร้าง array สามารถสร้างได้โดยการ Insert new object ในหมวดของ data & storage เลือก Array กำหนดชื่อเป็น myarray


 คุณสมบัติที่สำคัญของ array คือ การกำหนดมิติของ array มิติที่ 1 คือ Width มิติที่ 2 คือ Height และมิติที่ 3 คือ Depth


ขนาดเริ่มต้นของ array คือ Width: 10, Height: 1, Depth: 1 ในกรณีตัวอย่างนี้ กำหนดให้มีขนาด 5 ช่อง จึงเปลี่ยนค่า Width เป็น 5
ค่าเริ่มต้นที่เก็บใน array แต่ละช่องจะเท่ากับ 0 สำหรับ array 1 มิตินั้น สามารถจำลองให้เห็นภาพได้ดังนี้


Index ของ array จะเริ่มจาก 0 ไปจนถึง width -1 ตามตัวอย่าง คือ 0 ถึง 4

กำหนดค่าของ array
การกำหนดค่า จะใช้คำสั่ง Set at ทดลองกำหนดค่าโดยการเพิ่มเหตุการณ์ System และคำสั่ง On start of layout แล้วเพิ่ม action สำหรับวัตถุ array


กำหนดค่าสำหรับ array 1 มิติ เลือกคำสั่ง Set at X


กำหนดค่าสำหรับ array ตำแหน่งที่ 1 คือ index 0 เป็น มะม่วง


คำสั่งที่ได้ควรเป็น ดังนี้


สามารถทดลองเพิ่มค่าในตำแหน่งต่าง ๆ ของ array เช่น


ค่าที่เก็บภายใน array จะมีลักษณะแบบนี้


หรือจะให้โปรแกรมแสดงค่าใน debug mode จะได้ค่าดังนี้



การอ่านค่าจาก array
รูปแบบของการอ้างอิงถึงค่าใน array จะอ้างอิงโดย Array.at(index)
ตัวอย่าง เช่น เมื่อคลิกปุ่ม ให้กำหนดค่าของ textbox เป็นค่าที่เก็บใน array โดยเพิ่มปุ่ม และ textbox เข้ามาในงานของเราก่อน แล้วเพิ่มคำสั่ง ดังนี้



การหาค่าตำแหน่ง index ของ array ที่เราทราบค่าแล้ว โดยการใส่ค่าในคำสั่ง Array.IndexOf(“value”)
เช่น ถ้าต้องการค่าข้อมูลในตำแหน่งที่อยู่ก่อนหน้า “มะนาว” สามารถใช้คำสั่ง ดังนี้
myarray.At(myarray.IndexOf("มะนาว") - 1)




การวนซ้ำใน array
การวนอ่านค่าที่อยู่ภายใน array สามารถใช้คำสั่งวนซ้ำ For each elements และการตรวจสอบค่า Compare current value  และในการวนซ้ำ จะมีค่าข้อมูลที่สำคัญ คือ
Array.CurValue        คือ ค่าของ array ตำแหน่งัจจุบัน
Array.CurX             คือ ค่า index ปัจจุบันของ array มิติที่ 1 (X)
Array.CurY             คือ ค่า index ปัจจุบันของ array มิติที่ 2 (Y)
Array.CurZ             คือ ค่า index ปัจจุบันของ array มิติที่ 3 (Z)

สามารถใช้คำสั่งได้ตามตัวอย่าง ต่อไปนี้


หรือสามารถวนซ้ำเพิ่มค้นหาค่าใน array แล้วดำเนินการกับค่าดังกล่าวได้ เช่น เปลี่ยนข้อมูล หรือ คำนวณค่า


ทดลองและฝึกฝนให้มาก การจัดเก็บข้อมูลแบบ array จะเป็นประโยชน์ในการพัฒนาเกมที่มีประสิทธิภาพมาก


1 ความคิดเห็น:

  1. หากใช้ array ในการเก็บข้อมูล ชื่อ คะแนน เมื่อ run ใหม่ ข้อมูลการหายหมด ถูกไหมคะ

    ตอบลบ