ทำเกม Multiplayer ด้วย Node js และ Socket.io ตอนที่ 4

บทความ, การใช้งาน Unity

สวัสดีครับ กลับมาต่อกันกับการเขียน ทำเกม Multiplayer ด้วย Node js และ Socket.io ตอนที่ 4 กันนะครับ ในบทความตอนนี้เราจะมาเริ่มทำการเก็บและอัพเดตค่าให้กับ Player ของเรากันครับ โดยในตอนนี้เราจะทำในส่วนของ Server กันก่อนครับ

ก่อนที่เราจะเริ่มทำในส่วนของการ Update ตำแหน่ง เราจะต้องสร้าง Class Vector2 มาเพื่อเตรียมไว้สำหรับการทำงานกับค่า x และ y ของ Player กันก่อน เพราะตัวของ Node js เองไม่ได้มี Built in Vector 2 มาให้นะครับ

เริ่มจากการสร้าง Class ใหม่ชื่อว่า Vector2 กันก่อนครับ

จากนั้นประกาศว่าเราจะ Export class นี้ด้วยชุดคำสั่ง exports

สร้าง Constructor โดยเราจะใส่ค่าเริ่มต้น X และ Y เป็น 0 ก่อน เพื่อเปลี่ยนทีหลังได้ครับ

สร้างฟังชั่นก์สำหรับคืนค่าขนาดของ Vector ของเรา

สร้างฟังชั่นก์สำหรับการทำ Normalized Vector2

สร้างฟังชั่นก์สำหรับการหาระยะทาง

สุดท้ายสร้างฟังชั่นก์สำหรับเช็คค่าเพื่อให้การ Debug ของเราง่ายขึ้นนั่นเองครับ

จากนั้นเราจะเอา Class นี้ของเราไปเป็นตัวแปรนึงใน Class Player  เพื่อให้เก็บตำแหน่ง X และ Y ของ Player นั่นเองครับ

เริ่มจากการ import มาใช้ก่อนครับ

แล้วก็สร้างตัวแปรเพื่อเก็บ Position ของ Player ไว้ครับ

ทีนี้เราก็จะมาสร้าง Event เพื่อเอาไว้อัพเดตตำแหน่งสำหรับ Server กันครับ โดยทำที่ index.js นั่นเอง

ซึ่งการทำงานของ Event ก็คือจะรับค่ามาจาก Client เวลาเรียกฟังชั่นก์ updatePosition  และทำการ Braodcast ไปให้ Player ตัวอื่นใน Server ผ่านทางฟังชั่นก์ที่ชื่อ updatePosition เช่นเดียวกัน ครับ

เท่านี้ตัว Server ก็พร้อมที่จะรับและ Update ตำแหน่ง Player ทุกตัวใน Server แล้วนะครับ ตอนหน้าเราจะมาทำส่วนของ Client กันต่อครับ แล้วพบกันในตอนต่อไปครับ

, ,

บทความที่เกี่ยวข้อง

Menu