แสดงบทความที่มีป้ายกำกับ collision with another object แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ collision with another object แสดงบทความทั้งหมด

วันอาทิตย์ที่ 25 ตุลาคม พ.ศ. 2558

Construct 2 : พลังชีวิต Health

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

ขั้นแรกสร้างแถบพลังชีวิตขึ้นมาก่อน health bar ในตัวอย่างผมสร้างขึ้นมา 2 แถบ เป็นแบบ sprite คือแถบของพลังชีวิตสูงสุด ให้เป็นแถบสีแดง กำหนดชื่อ barMaxHP กับแถบพลังชีวิตที่เหลือ ให้เป็นแถบสีเขียว กำหนดชื่อ barHP ที่สำคัญกำหนดค่า origin point ของแกน x เป็น 0 ด้วย



จะได้แถบพลังชีวิต 2แถบ กำหนดขนาดเป็น 200 x 20 ดังนี้


ย้ายแถบสีเขียวไปทับแถบสีแดง จนมองเห็นเป็นแถบเดียวกัน



สร้างตัวแปรขึ้นมาเพื่อเก็บค่าพลังชีวิต



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



กำหนดเหตุการณ์เมื่อเด็กน้อยเดินไปชนผี ให้ลดค่าพลังชีวิตลง เลือก Add event แล้วเลือก Sprite ของตัวละคร


เลือกเหตุการณ์ On collision with another object


จะได้หน้าต่าง สำหรับเลือกวัตถุที่จะชน


เลือกวัตถุตัวผีน้อย



เมื่อได้เหตุการณ์การชนกันของวัตถุในเกมแล้ว ต่อไปต้องกำหนดการกระทำสำหรับเหตุการณ์ที่เกิดขึ้น โดยคลิกที่ Add action แล้วเลือก System


เลือก Subtract from


เลือกตัวแปรที่จะลบค่า คือ health1  กำหนดให้ลดลงทีละ 15


จะได้คำสั่ง ดังนี้



การกำหนดความยาวของแถบชีวิต
เมื่อพลังชีวิตลดลง แถบของพลังชีวิตก็จะลดลงด้วย ในการลดความยาวของแถบ จะต้องคำนวณร้อยละของพลังชีวิตที่เหลืออยู่
  ร้อยละของพลังชีวิตที่เหลืออยู่ = (พลังชีวิตที่เหลือ / พลังชีวิตสูงสุด) x 100

คำนวณหาความยาวของแถบชีวิตได้จาก
ความยาวของแถบพลังชีวิต = ร้อยละของพลังชีวิตที่เหลืออยู่ x ความยาวของแถบพลังชีวิตสูงสุด

คำสั่งในการคำนวณตามสูตร คือ
barHP.Width = (HP / maxHP) * barMaxHP.Width

คลิกที่ Add action แล้วเลือก barHP



เลือกคำสั่ง Set width



กำหนดค่าความกว้าง (health1/100)*barMaxHP.Width



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


เมื่อทดสอบเล่นเกม บังคับให้ตัวละครของเราวิ่งไปชนกับผี แถบพลังชีวิตของเรา (สีเขียว) ก็จะลดลง



กำหนดให้ตัวละครของเราหายไป เมื่อพลังชีวิตลดลงต่ำกว่า 0


แล้วเพิ่มการกระทำให้ตัวละครหายไป


คำสั่งทั้งหมดเป็นดังนี้





วันพุธที่ 29 กรกฎาคม พ.ศ. 2558

Construct 2 : การชนกันของวัตถุ

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


จากเกมที่ผมสร้างไว้นั้น คือ มีตัวละครเป็นลิงน้อย ตัววัตถุที่ผมจะให้ลิงไปเก็บผมเลยสร้างเป็นกล้วยครับ วิธีการสร้างก็เหมือนกับการสร้างตัวละคร โดยการ Insert new object เลือกวัตถุแบบ Sprite คลิกที่ปุ่ม Insert จะปรากฏหน้าต่าง  Edit image : Sprite ขึ้นมา จัดการวาดภาพกล้วยเลยครับ (ไม่ค่อยจะกล้วย ตรงวาดภาพนี้แหละ)


เสร็จแล้วก็ปิด กลับมาที่หน้าออกแบบเกมของเรา ย่อขนาดของกล้วยให้เหมาะสมกับฉากเกม แล้วคัดลอกและวางในตำแหน่งที่ต้องการภายในเกม


ต่อไปกำหนดวัตถุกล้วยของเราให้เป็นแบบ Solid เพื่อให้ตัว Hero เจ้าลิงน้อยของเราเดินชนได้ครับ คลิกที่กล้วยรูปไหนก็ได้ครับ แล้วเลือก Add/edit Behaviors


คลิกที่เครื่องหมายบวก จะปรากฎหน้า Add behavior เลือกคุณสมบัติแบบ Solid แล้วคลิกปุ่ม Add หลังจากนั้นกดปุ่มปิด กลับมายังหน้าออกแบบเกมของเรา


ตัววัตถุกล้วยของเราตอนนี้ก็จะมีสมบัติเป็นแบบ Solid หมดทุกภาพ ทดสอบการทำงานของเกม จะพบว่าเจ้าลิงน้อยของเรากระโดดไปชนกล้วยได้ หรือยืนบนกล้วยได้เลย เพราะกล้วยมีสมบัติเป็น Solid

ลักษณะที่เกิดขึ้นเมื่อลิงกับกล้วยมาเจอกัน เราเรียกว่า เกิดการชนกันของวัตถุในเกม ต่อไปจะเป็นการกำหนดเหตุการณ์ของเกมว่าจะให้เกิดอะไรขึ้น เมื่อวัตถุเกิดการชนกัน ให้เลือกที่ Tab Event sheet1 ของเกม คลิกที่ Add event


เมื่อปรากฏหน้าต่าง Add event ให้เลือกวัตถุที่จะกำหนดเหตุการณ์ ในที่นี้คือ เจ้าลิงน้อย แล้วกดปุ่ม Next


ขั้นต่อไป กำหนดเหตุการณ์ที่เกิดขึ้น การชนกันของวัตถุจะอยู่ในหมวด Collisions และเลือก On collision with another object  แล้วกดปุ่ม Next


ขั้นต่อไปคือการเลือกวัตถุที่ไปชน คลิกที่ จะปรากฏหน้าต่างให้เลือกวัตถุที่ไปชน


ให้เลือกกล้วย เป็นวัตถุที่จะให้ลิงของเราไปชน แล้วกดปุ่ม OK


ในตอนนี้ จะได้วัตถุที่เกิดเหตุการณ์ชนกันแล้ว คลิกที่ปุ่ม Done


ที่หน้า Event sheet ของเกม จะมีการกำหนดเหตุการณ์ไว้ตามที่เลือก คือ วัตถุลิง ไปชนกับวัตถุกล้วย แล้วจะเกิดอะไรขึ้น ให้เลือก Add action


ในขั้นตอนนี้ จะต้องเลือกวัตถุที่จะให้เกิดการเปลี่ยนแปลง คือ เลือกวัตถุกล้วย  แล้วกดปุ่ม Next


ต่อไปเป็นการเลือกเหตุการณ์ที่จะเกิดขึ้น คือ เมื่อลิงชนกล้วย ให้กล้วยหายไป การหายไปของวัตถุ จะอยู่ในหมวด Misc เลือกคำสั่ง Destroy แล้วคลิกปุ่ม Next


เสร็จแล้วครับ สำหรับการกำหนดเหตุการณ์ของเกมเมื่อเกิดการชนกันของวัตถุ


ทดสอบการทำงานของเกม จะพบว่า เมื่อลิงกระโดดหรือเดินไปชนกับกล้วย กล้วยก็จะหายไป  ในบทความต่อไปผมจะแนะนำการเก็บคะแนนของเกม เมื่อตัว Hero ได้ทำภาระกิจสำเร็จ จะมีการนับคะแนนเพิ่มให้