irpg Community
วิธีปรับให้ใช้ปุ่ม WASD ในการเดินแทน ปุ่มทิศทาง - Printable Version

+- irpg Community (https://irpg.in.th)
+-- Forum: irpg Fabella RPG Maker Academia (https://irpg.in.th/forum-4.html)
+--- Forum: RPG Maker Engine School (https://irpg.in.th/forum-7.html)
+--- Thread: วิธีปรับให้ใช้ปุ่ม WASD ในการเดินแทน ปุ่มทิศทาง (/thread-2841.html)



วิธีปรับให้ใช้ปุ่ม WASD ในการเดินแทน ปุ่มทิศทาง - XthemeCore - 05-01-2016

วิธีการแก้ 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 มาดังนี้
  • W : 87
  • A : 65
  • S : 83
  • D : 68
  • E (ใช้แทน W เดี๋ยวดูใน Code จะเข้าใจครับ) : 69

2. เราจะไปแก้โค้ดกันแล้ว เปิดโฟลเดอร์เกมของเราขึ้นมา แล้วไปที่โฟลเดอร์ js จากนั้นเปิดไฟล์ rpg_core.js ขึ้นมา ด้วย Text Editor อะไรก็ได้ (ผมใช้ Atom)
[Image: keymap_00.png]

3.จากนั้นให้ search หา "Input.keyMapper" (บรรทัดที่ 2251)
[Image: keymap_01.png]

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 ให้ตรงกันครับ ดังภาพนี้
[Image: keymap_02.png]

เพียงเท่านี้เราก็สามารถควบคุมตัวละครได้จากทั้งปุ่มทิศทาง และปุ่ม WASD แล้ว *มอง*

แล้วพบกันใหม่โอกาสหน้านะครับ เอ้าดื่ม แมวโบกมือ


RE: วิธีปรับให้ใช้ปุ่ม WASD ในการเดินแทน ปุ่มทิศทาง - TheEnds - 05-01-2016

Ace จะใช้ได้มั้ยเนี่ย


RE: วิธีปรับให้ใช้ปุ่ม WASD ในการเดินแทน ปุ่มทิศทาง - XthemeCore - 05-01-2016

(05-01-2016, 11:54 AM)TheEnds Wrote: Ace จะใช้ได้มั้ยเนี่ย

คนละภาษากันเลยครับ ทำหน้าเหยาหมิง รูปแบบการเขียนส่วน Input นี้ก็แตกต่างกันค่อนข้างมากด้วย
(มันไม่ได้มี keyMapping ที่สวยงามแบบนี้มาให้เลย แต่จำได้ว่ามีคนเขียน Script คล้ายๆกันใน Ace นะ)


RE: วิธีปรับให้ใช้ปุ่ม WASD ในการเดินแทน ปุ่มทิศทาง - TheEnds - 05-01-2016

(05-01-2016, 11:56 AM)XthemeCore Wrote:
(05-01-2016, 11:54 AM)TheEnds Wrote: Ace จะใช้ได้มั้ยเนี่ย

คนละภาษากันเลยครับ ทำหน้าเหยาหมิง รูปแบบการเขียนส่วน Input นี้ก็แตกต่างกันค่อนข้างมากด้วย
(มันไม่ได้มี keyMapping ที่สวยงามแบบนี้มาให้เลย แต่จำได้ว่ามีคนเขียน Script คล้ายๆกันใน Ace นะ)
งั้นสอนผมหน่อยได้มั้ยครับ Ace อะ


RE: วิธีปรับให้ใช้ปุ่ม WASD ในการเดินแทน ปุ่มทิศทาง - maya - 05-01-2016

(05-01-2016, 12:06 PM)TheEnds Wrote:
(05-01-2016, 11:56 AM)XthemeCore Wrote:
(05-01-2016, 11:54 AM)TheEnds Wrote: Ace จะใช้ได้มั้ยเนี่ย

คนละภาษากันเลยครับ ทำหน้าเหยาหมิง รูปแบบการเขียนส่วน Input นี้ก็แตกต่างกันค่อนข้างมากด้วย
(มันไม่ได้มี keyMapping ที่สวยงามแบบนี้มาให้เลย แต่จำได้ว่ามีคนเขียน Script คล้ายๆกันใน Ace นะ)
งั้นสอนผมหน่อยได้มั้ยครับ Ace อะ

มีสคริปนี้รู้สึกจะตั้งให้ใช้ WASD เดินได้นะคะ
https://falcaorgss.wordpress.com/2012/09/17/mouse-system-buttons-update-1-5/