การเคลื่อนที่ #2

บทความนี้มีเป้าหมายให้ผู้อ่านได้ทดลองใช้มุมมอง 2 มิติ ในระบบ 3 มิติ โดยผู้เล่นเลื่อนซ้ายขวา และกระโดด พร้อมทั้งมีการป้องกันไม่ให้เดินออกนอกหน้าจอ มีศัตรูเดินซ้าย/ขวา และทำการล็อกไม่ให้ผู้เล่น/ศัตรูขยับแกน Z มาเริ่มกันเลย

โดยตั้งชื่อ cube ทางด้านซ้ายว่า LeftSide และทางด้านขวาเป็น RightSide

สิ่งที่สำคัญคือ ต้องพยายามจัดตำแหน่งของ LeftSide และ RightSide ให้มองไม่เห็นเมื่อสั่งเล่นเกม

หลังจากนั้นให้เพิ่มส่วนป้องกันทางด้านบน และตั้งชื่อว่า UpSide

ด้านบนมี Rigidbody พร้อม mass เยอะมาก ๆ

ขยับผู้เล่นไปทางซ้าย/ขวา

  • เพิ่ม tag ชื่อ Ground ให้กับพื้น
  • ปรับปรุงโค้ด
    • เพิ่มตัวแปรตรวจสอบสถานการณ์อยู่บนพื้น
    • OnCollisionStay() -> สถานะเป็น true
    • OnCollisionExit() -> สถานะเป็น false

เริ่มต้นด้วยการเพิ่ม Tag ให้กับพื้น (Floor) ให้เป็น Ground โดยในตอนเริ่มนั้นจะถูกเลือกเป็น Untagged ให้เลือกเปลี่ยนเป็น Add Tag…

จะปรากฎหน้าต่างสร้าง Tag ใหม่ด้วยการคลิกที่เครื่องหมาย +

เปลี่ยนจาก New tag เป็น Ground แล้วคลิก Save

จะมีรายชื่อ Ground อยู่ใน Tags โดยเป็น Tag 0 อันหมายถึงเป็นแท็กลำดับแรก

เพิ่ม tag ชื่อ Ground ให้กับพื้น

เพิ่มตัวแปร isGrounded สำหรับเก็บสถานะของการอยู่บนพื้น

เพิ่มโค้ดตรวจสอบสถานะ โดยเขียนฟังก์ชัน OnCollisionStay() และ OnCollisionExit()

เพิ่มโค้ดตรวจสอบว่าถ้าอยู่บนพื้นจะให้กระโดดใน Update()

พร้อมตั้ชื่อเป็น Enemy

เพิ่มกล่องสำหรับให้ Player สามารถกระโดดไปยืนบนนั้นอีก 2 อัน

เดินทางซ้าย 200 ก้าว

เดินทางซ้าย 200 ก้าวครบแล้วเปลี่ยนเป็นทางขวา

สลับการเดินซ้าย/ขวา

ปรับปรุงโค้ดของผู้เล่น

ปรับปรุงโค้ดของศัตรู

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

ส่วนโค้ดของการเขียนโปรแกรมเป็นการใช้ trasnform เพื่อเปลี่ยนแปลงตำแหน่ง (position) และเพิ่มเติมเรื่องของการปรับไม่ให้ค่าในแหน Z หรือในแนวลึกมีการเปลี่ยนแปลง

นอกจากนี้ได้ทำการเลปี่ยนมุมมองของกล้องจาก Perspective ให้เป็น Orthographic ทำให้ฉากแบบ 3 มิติถูกมองเป็น 2 มิติอีกด้วย

ครั้งหน้าจะเพิ่มการโจมตี การลดของHP และการทำลายวัตถุกันต่อไป … สุดท้ายนี้ขอให้สนุกกับการฝึกเขียนเกมครับ

(C) 2024, โดย จารุต บุศราทิจ
DcG.IT@PBRU
ปรับปรุงเมื่อ 2024-11-12

1 Comment

Leave a Reply

Your email address will not be published. Required fields are marked *