Project1

标题: 如何改变移动按键 [打印本页]

作者: q374435503    时间: 2014-2-28 18:34
标题: 如何改变移动按键
就是把↑↓←→移动方式改为WSAD?
{:2_285:} ↑↓←→太不爽了!若是能更改确定键就跟好了。
作者: 小学生    时间: 2014-3-2 08:17
按F1调整键位。
作者: 无脑之人    时间: 2014-3-2 15:02
首先加一个全键盘脚本
然后在Main前插入以下脚本:

  1. class << Input
  2.   Key_C = [$R_Key_ENTER,$R_Key_Z] #确定键系列
  3.   Key_B = [$R_Key_ESC,$R_Key_X] #退出键系列
  4.   Key_UP = [$R_Key_UP,$R_Key_W]
  5.   Key_DOWN = [$R_Key_DOWN,$R_Key_S]
  6.   Key_LEFT = [$R_Key_LEFT,$R_Key_A]
  7.   Key_RIGHT = [$R_Key_RIGHT,$R_Key_D]
  8.   alias :o_press :press?
  9.   def press?(num)
  10.     return true if num==Input::C && Key_C.any?{ |key| Kboard.press?(key) }
  11.     return true if num==Input::B && Key_B.any?{ |key| Kboard.press?(key) }
  12.     return true if num==Input::UP && Key_UP.any?{ |key| Kboard.press?(key) }
  13.     return true if num==Input::DOWN && Key_DOWN.any?{ |key| Kboard.press?(key) }
  14.     return true if num==Input::LEFT && Key_UP.any?{ |key| Kboard.press?(key) }
  15.     return true if num==Input::RIGHT && Key_DOWN.any?{ |key| Kboard.press?(key) }
  16.     o_press(num)
  17.   end
  18.   alias :o_repeat :repeat?
  19.   def repeat?(num)
  20.     return true if num==Input::C && Key_C.any?{ |key| Kboard.repeat?(key) }
  21.     return true if num==Input::B && Key_B.any?{ |key| Kboard.repeat?(key) }
  22.     return true if num==Input::UP && Key_UP.any?{ |key| Kboard.repeat?(key) }
  23.     return true if num==Input::DOWN && Key_DOWN.any?{ |key| Kboard.repeat?(key) }
  24.     return true if num==Input::LEFT && Key_UP.any?{ |key| Kboard.repeat?(key) }
  25.     return true if num==Input::RIGHT && Key_DOWN.any?{ |key| Kboard.repeat?(key) }
  26.     o_repeat(num)
  27.   end
  28.   alias :o_trigger :trigger?
  29.   def trigger?(num)
  30.     return true if num==Input::C && Key_C.any?{ |key| Kboard.trigger?(key) }
  31.     return true if num==Input::B && Key_B.any?{ |key| Kboard.trigger?(key) }
  32.     return true if num==Input::UP && Key_UP.any?{ |key| Kboard.trigger?(key) }
  33.     return true if num==Input::DOWN && Key_DOWN.any?{ |key| Kboard.trigger?(key) }
  34.     return true if num==Input::LEFT && Key_UP.any?{ |key| Kboard.trigger?(key) }
  35.     return true if num==Input::RIGHT && Key_DOWN.any?{ |key| Kboard.trigger?(key) }
  36.     o_trigger(num)
  37.   end
  38.   def dir4()
  39.     return 8 if press?(Input::UP)
  40.     return 4 if press?(Input::LEFT)
  41.     return 6 if press?(Input::RIGHT)
  42.     return 2 if press?(Input::DOWN)
  43.     0
  44.   end
  45.   def dir8()
  46.     dir = press?(Input::UP) ? 8 : 0
  47.     dir = press?(Input::LEFT) ? dir==0 ? 4 : 7 : dir
  48.     return dir if dir == 7
  49.     dir = press?(Input::RIGHT) ? dir==4 ? 0 : dir==8 ? 9 : 6 : dir
  50.     return dir if dir == 9
  51.     press?(Input::DOWN) ? dir==8 ? 0 : dir==4 ? 1 : dir==6 ? 3 : 2 : dir
  52.   end
  53. end
复制代码
然后就可以了,代码没有测试,如果出错了我也没什么办法Orz【主要是我也没有VX= =




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1