แสดงบทความที่มีป้ายกำกับ pin แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ pin แสดงบทความทั้งหมด

วันพฤหัสบดีที่ 24 ธันวาคม พ.ศ. 2558

Construct 2 : Pin behavior ตอนที่ 2

หากยังไม่ได้ศึกษาบทความ Pin behavior ตอนที่ 1 ขอให้กลับไปศึกษาก่อน เพื่อความเข้าใจ
กำหนดค่าของเหตุการณ์ใน Event sheet โดยกำหนดค่าดังนี้
- Add event -> system -> on start of layout
- Add blank sub-event
- Add local variable   -> name uid1
- Add local variable   -> name uid2
ซึ่งควรจะได้คำสั่งดังนี้

กำหนดการกระทำ สำหรับเหตุการณ์ on start of layout ดังนี้
- add action -> tailpiece -> Pin to object -> snake, ROPE STYLE


- add action -> system -> set variable -> uid1 to tailpiece.UID


ซึ่งควรจะได้คำสั่งดังนี้


ตัวแปร uid1 จะใช้เก็บค่า unique identifier ของหัวงู เพื่อให้หางงูสามารถมาต่อเพิ่มได้เรื่อยๆ

ในขั้นตอนต่อไปจะเป็นการสร้างวัตถุที่หางของงู โดยเพิ่ม sub-event ใหม่ภายใต้ On start of layout โดยกำหนดเป็นการวนซ้ำแบบ For กำหนดจำนวนรอบ ตามจำนวนของวัตถุหางที่ต้องการจะสร้าง ตัวอย่างกำหนดไว้ 18


กำหนดการทำงาน ดังนี้
- add action -> System -> Create object -> tail, layer: 0, X: tail.X - (16 * loopindex), Y: tail.Y


- add action -> System -> set variable -> uid2 to tail.UID
ซึ่งควรจะได้คำสั่งดังนี้


เมื่อทำสอบการทำงานของเกม จะต้องได้หางของงูเพิ่มต่อมาจากหัวงู



ขั้นต่อไป จะทำการ Pin หางของงูต่อเข้าด้วยกัน ด้วยคำสั่งต่อไปนี้
เพิ่มเหตุการณ์ย่อยภายใต้คำสั่ง For ดังนี้
System -> Pick all tailpiece
tailpiece -> pick instance with UID uid1
tailpiece -> pick instance with UID uid2
และเพิ่มการกระทำสำหรับเหตุการณ์ย่อย ดังนี้
tailpiece -> Pin to tail ROPE STYLE!
System -> Set variable -> uid1 to uid2


การทำงานในทุกรอบของการวนซ้ำ จะทำการ pin หางของงูต่อจากหางเดิมไปเรื่อย ๆ



ถ้าหากทดสอบเกมจะพบว่า เมื่อเคลื่อนที่ส่วนหัวของงู หางของงูจะเคลื่อนที่ตามส่วนหางที่อยู่ข้างหน้าไปเรื่อยๆ สามารถนำไปประยุกต์ใช้ในการสร้างเกมในลักษณะของการเชื่อมต่อวัตถุที่มีการทำงานลักษณะเดียวกันได้ ขอให่สนุกกับการสร้างเกมนะครับ

Construct 2 : Pin behavior ตอนที่ 1

Pin behavior คือพฤติกรรมของวัตถุที่มีความสัมพันธ์ของระยะทางและมุมกับวัตถุอื่น เสมือนว่า เอาเข็มไปตรึงวัตถุเอาไว้กับวัตถุที่ต้องการ หรือมีคนสองคนที่คนหนึ่งทำท่าทางเลียนแบบอีกคนหนึ่งนั่นเอง
การกำหนดการทำงานของพฤติกรรมแบบ Pin มีดังนี้
Position & angle จะถูกตั้งเป็นค่าเริ่มต้น โดยจะเก็บความสัมพันธ์ของระยะทางและมุมของวัตถุที่เชื่อมต่อ จะรักษาตำแหน่งในการเคลื่อนที่และมุมที่หมุนไปกับวัตถุที่เชื่อมต่อ
Position only การเชื่อมแบบนี้ มุมของวัตถุจะไม่เปลี่ยนไปตามวัตถุที่เชื่อม จะเปลี่ยนเฉพาะตำแหน่งของวัตถุเท่านั้น
Angle only การเชื่อมต่อแบบนี้ มุมของวัตถุจะเปลี่ยนไปตามวัตถุที่เชื่อ แต่ตำแหน่งจะไม่เปลี่ยนแปลง
Rope style การเชื่อมต่อแบบนี้ วัตถุจะไม่หมุนตาม แต่จะรักษาระยะห่างไม่เกินค่าสูงสุดของระยะห่างที่กำหนด
Bar style การเชื่อมต่อแบบนี้ วัตถุจะไม่หมุนตาม แต่จะรักษาระยะห่างระหว่างวัตถุคงที่เสมอ

ขอยกตัวอย่างเกมที่ใช้คุณสมบัติของ Pin behavior เป็นเกมงูกินหางก็แล้วกันนะครับ ลักษณะของเกม คือบังคับหัวงูให้เคลื่อนที่ไปชนวัตถุ เมื่อวัตถุถูกชนจะย้ายมาต่อหางงู ตัวงูก็จะยาวออกไปเรื่อยๆ

สร้างโปรเจคใหม่ แล้วบันทึกชื่อว่า snake


สร้างตัวละครขึ้นมาใหม่ ชื่อ snake


วาดภาพตัวละครเป็นลักษณะของหัวงู


กำหนดพฤติกรรมเป็นแบบ 8 Direction


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


สร้างตัวละครสำหรับเป็นหางของงู ชื่อ tail


วางวัตถุต่อจากหัวของงู ในลักษณะของหาง
ทำการ add family กำหนดชื่อเป็น tailpiece


แล้วเพิ่ม tail เข้าไป


กำหนดพฤติกรรมให้กับ family tailpiece เป็นแบบ pin



การกำหนดเหตุการณ์สำหรับการเชื่อมต่อหางของงู จะกล่าวถึงในตอนที่ 2  Pin behavior ตอนที่ 2