XthemeCore   05-01-2016, 11:49 AM
#1
วิธีการแก้ 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 แล้ว *มอง*

แล้วพบกันใหม่โอกาสหน้านะครับ เอ้าดื่ม แมวโบกมือ
This post was last modified: 05-01-2016, 12:25 PM by XthemeCore.
TheEnds   05-01-2016, 11:54 AM
#2
Ace จะใช้ได้มั้ยเนี่ย

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

คนละภาษากันเลยครับ ทำหน้าเหยาหมิง รูปแบบการเขียนส่วน Input นี้ก็แตกต่างกันค่อนข้างมากด้วย
(มันไม่ได้มี keyMapping ที่สวยงามแบบนี้มาให้เลย แต่จำได้ว่ามีคนเขียน Script คล้ายๆกันใน Ace นะ)
This post was last modified: 05-01-2016, 11:58 AM by XthemeCore.
TheEnds   05-01-2016, 12:06 PM
#4
(05-01-2016, 11:56 AM)XthemeCore Wrote:
(05-01-2016, 11:54 AM)TheEnds Wrote: Ace จะใช้ได้มั้ยเนี่ย

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

Running new games.
maya   05-01-2016, 06:57 PM
#5
(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...pdate-1-5/
  
Users browsing this thread: 1 Guest(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.