05-01-2016, 11:49 AM
(This post was last modified: 05-01-2016, 12:25 PM by XthemeCore.)
วิธีการแก้ Key map ของ RMMV ง่ายกว่าที่หลายๆท่านคิด เนื่องจากเกมที่สร้างด้วย RMMV จะใช้ภาษา JavaScript ในการพัฒนา ซึ่งทำให้ Code ทั้งหมดของเกมถูกเปิดเผย (ไม่เหมือนรุ่นก่อนๆที่เป็นภาษา Ruby จะมีโค้ดบางส่วนเขียนด้วย C++ และถูกซ่อนไว้ใน DLL)
ทีนี้เรามาดูกันว่าจะทำยังไง
เนื่องด้วยภาษา JavaScript ออกแบบมาเพื่อใช้พัฒนาเว็บแอพพลิเคชั่นเป็นหลัก ดังนั้นจึงอิงมาตราฐานตาม World Wide Web Consortium (W3C) ดังนั้นในส่วนของ KeyCode เราสามารถดูได้จากเว็บนี้เลย
https://www.w3.org/2002/09/tests/keys.html
ในเว็บที่ให้ไว้ข้างต้นทดลองกดคีย์ดูครับ มันจะขึ้น keyCode มา ซึ่งเราจะนำมาใช้ใน RMMV กัน
ขั้นตอนการแก้ไข ปุ่มทิศทางให้เป็น WASD แทน ปุ่มลูกศรทิศทาง
1. เข้าไปในเว็บไซต์ W3C ที่ให้ไว้ข้างบน ทดลองกดปุ่มแล้วเก็บ keyCode มา (เก็บตรง keydown นะครับ)
ในที่นี้ผมจะได้ keyCode มาดังนี้
2. เราจะไปแก้โค้ดกันแล้ว เปิดโฟลเดอร์เกมของเราขึ้นมา แล้วไปที่โฟลเดอร์ js จากนั้นเปิดไฟล์ rpg_core.js ขึ้นมา ด้วย Text Editor อะไรก็ได้ (ผมใช้ Atom)
3.จากนั้นให้ search หา "Input.keyMapper" (บรรทัดที่ 2251)
4.จะเห็นว่าที่โค้ดบรรทัดที่ 2252 จะเห็นว่าเป็น 9: 'tab' ตรงนี้หลายๆท่านคงพอเดาออกแล้ว เลข 9 คือ keyCode นั่นเอง ทีนี้เราก็เพียงแค่ไล่แก้ keyCode เอาก็พอครับ
ในที่นี้ผมได้ทำการแก้ keyCode ดังนี้
(สำหรับท่านที่ยังงงๆอยู่ให้หาคีย์ที่ต้องการแก้ครับ เช่นต้องการแก้ปุ่มซ้าย ก็หา 'left' เดิมทีมันจะเป็น 37: 'left' ก็แก้เป็น 65: 'left' ซึ่งจะเป็นปุ่ม A แทน เป็นต้นครับ )
5. ทำการบันทึกไฟล์ จากนั้นทดลองเล่นดูจะพบว่าการควบคุมทิศทางเปลี่ยนมาเป็น WASD แล้ว
6.หมายเหตุ ในกรณีที่เราต้องการให้สามารถควบคุมตัวละครได้โดยใช้ได้ทั้งปุ่ม WASD และ ปุ่มลูกศรพร้อมกัน สามารถทำได้โดยการ map keyCode ให้ตรงกันครับ ดังภาพนี้
เพียงเท่านี้เราก็สามารถควบคุมตัวละครได้จากทั้งปุ่มทิศทาง และปุ่ม WASD แล้ว
แล้วพบกันใหม่โอกาสหน้านะครับ
ทีนี้เรามาดูกันว่าจะทำยังไง
เนื่องด้วยภาษา JavaScript ออกแบบมาเพื่อใช้พัฒนาเว็บแอพพลิเคชั่นเป็นหลัก ดังนั้นจึงอิงมาตราฐานตาม World Wide Web Consortium (W3C) ดังนั้นในส่วนของ KeyCode เราสามารถดูได้จากเว็บนี้เลย
https://www.w3.org/2002/09/tests/keys.html
ในเว็บที่ให้ไว้ข้างต้นทดลองกดคีย์ดูครับ มันจะขึ้น keyCode มา ซึ่งเราจะนำมาใช้ใน RMMV กัน
ขั้นตอนการแก้ไข ปุ่มทิศทางให้เป็น WASD แทน ปุ่มลูกศรทิศทาง
1. เข้าไปในเว็บไซต์ W3C ที่ให้ไว้ข้างบน ทดลองกดปุ่มแล้วเก็บ keyCode มา (เก็บตรง keydown นะครับ)
ในที่นี้ผมจะได้ keyCode มาดังนี้
- W : 87
- A : 65
- S : 83
- D : 68
- E (ใช้แทน W เดี๋ยวดูใน Code จะเข้าใจครับ) : 69
2. เราจะไปแก้โค้ดกันแล้ว เปิดโฟลเดอร์เกมของเราขึ้นมา แล้วไปที่โฟลเดอร์ js จากนั้นเปิดไฟล์ rpg_core.js ขึ้นมา ด้วย Text Editor อะไรก็ได้ (ผมใช้ Atom)
3.จากนั้นให้ search หา "Input.keyMapper" (บรรทัดที่ 2251)
4.จะเห็นว่าที่โค้ดบรรทัดที่ 2252 จะเห็นว่าเป็น 9: 'tab' ตรงนี้หลายๆท่านคงพอเดาออกแล้ว เลข 9 คือ keyCode นั่นเอง ทีนี้เราก็เพียงแค่ไล่แก้ keyCode เอาก็พอครับ
ในที่นี้ผมได้ทำการแก้ keyCode ดังนี้
- 65: 'left' //A
- 87: 'up' //W
- 68: 'right' //D
- 83: 'down' //S
- 69: 'pagedown' //เดิมทีปุ่มนี้จะใช้ W ครับ แต่เนื่องจากเราเอา W มาใช้แล้วผมเลยกำหนดเป็น E แทนเพราะอยู่ใกล้ๆกัน
(สำหรับท่านที่ยังงงๆอยู่ให้หาคีย์ที่ต้องการแก้ครับ เช่นต้องการแก้ปุ่มซ้าย ก็หา 'left' เดิมทีมันจะเป็น 37: 'left' ก็แก้เป็น 65: 'left' ซึ่งจะเป็นปุ่ม A แทน เป็นต้นครับ )
5. ทำการบันทึกไฟล์ จากนั้นทดลองเล่นดูจะพบว่าการควบคุมทิศทางเปลี่ยนมาเป็น WASD แล้ว
6.หมายเหตุ ในกรณีที่เราต้องการให้สามารถควบคุมตัวละครได้โดยใช้ได้ทั้งปุ่ม WASD และ ปุ่มลูกศรพร้อมกัน สามารถทำได้โดยการ map keyCode ให้ตรงกันครับ ดังภาพนี้
เพียงเท่านี้เราก็สามารถควบคุมตัวละครได้จากทั้งปุ่มทิศทาง และปุ่ม WASD แล้ว
แล้วพบกันใหม่โอกาสหน้านะครับ