设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2527|回复: 13
打印 上一主题 下一主题

[已经解决] 怎么改移动键

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1191
在线时间
358 小时
注册时间
2016-6-10
帖子
50
跳转到指定楼层
1
发表于 2016-10-7 13:41:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
怎么把↕↔改为WSAD,把确定键改为J,取消键改为K?听说游戏时按F1就可以改,怎么改啊?

Lv3.寻梦者

梦石
0
星屑
1191
在线时间
358 小时
注册时间
2016-6-10
帖子
50
2
 楼主| 发表于 2016-10-8 17:41:06 | 只看该作者
有人来解答一下吗{:2_264:}
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

3
发表于 2016-10-8 19:47:42 | 只看该作者
只能通过全键盘脚本进行,RM自带的键位设置并不支持全键盘
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1191
在线时间
358 小时
注册时间
2016-6-10
帖子
50
4
 楼主| 发表于 2016-10-8 19:49:14 | 只看该作者
喵呜喵5 发表于 2016-10-8 19:47
只能通过全键盘脚本进行,RM自带的键位设置并不支持全键盘

能发一个范例吗{:2_249:}
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
6901
在线时间
7028 小时
注册时间
2013-11-2
帖子
1344

开拓者剧作品鉴家

5
发表于 2016-10-17 09:40:37 | 只看该作者
本帖最后由 RaidenInfinity 于 2016-10-17 22:37 编辑

经改良过的全键盘脚本(我上个作品用的,正好可以帮忙)。
脚本上方是方向键,确认键,取消键的键位定义。
不过要注意的是,使用了此脚本后,F1设置对这些键位的改动无效。

RUBY 代码复制
  1. module Input
  2.  
  3.         #方向键
  4.   #下 - 下方向键(DOWN) 或 S
  5.         def self.down?(sym); Keys.send(sym,Keys::DOWN) || Keys.send(sym,Keys::S) end       
  6.         #左 - 左方向键(LEFT) 或 A
  7.   def self.left?(sym); Keys.send(sym,Keys::LEFT) || Keys.send(sym,Keys::A) end       
  8.         #右 - 右方向键(RIGHT) 或 D
  9.   def self.right?(sym); Keys.send(sym,Keys::RIGHT) || Keys.send(sym,Keys::D) end
  10.         #上 - 上方向键(UP) 或 W
  11.   def self.up?(sym); Keys.send(sym,Keys::UP) || Keys.send(sym,Keys::W) end
  12.  
  13.         #确认键 - Z 或 J
  14.         def self.c?(sym)
  15.                 Keys.send(sym,Keys::Z) || Keys.send(sym,Keys::J)
  16.         end
  17.  
  18.   #取消键 - X 或 K
  19.         def self.b?(sym)
  20.                 Keys.send(sym,Keys::X) || Keys.send(sym,Keys::K)
  21.  
  22.         end
  23.  
  24. end
  25.  
  26. #以下为脚本核心,请勿随意修改
  27. #≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
  28. # ** Glitchfinder's Key Input Module              [RPG Maker XP] [RPG Maker VX]
  29. #    Version 1.00
  30. #------------------------------------------------------------------------------
  31. #  This script helps scripters to use the full range of keys on any keyboard,
  32. #  without being limited by the default Input Module.
  33. #==============================================================================
  34. # * Version History
  35. #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  36. #   Version 1.00 ------------------------------------------------- (2010-03-18)
  37. #     - Initial version
  38. #     - Author: Glitchfinder
  39. #==============================================================================
  40. # * Instructions
  41. #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  42. #  Place this script above Main, and below the default scripts. (I realize this
  43. #  is obvious to most, but some people don't get it.)
  44. #
  45. #  This module is automatically updated by the default Input module, which
  46. #  means that the only time you need to call the update method is in a scene
  47. #  that does not update the default Input module.
  48. #
  49. #  This module does not break the functionality of the default Input module.
  50. #
  51. #  If you wish to read keys from a gamepad, you must still use the default
  52. #  input module to do so.
  53. #
  54. #  To use this module, simply use one of the four methods (press?(key),
  55. #  trigger?(key), repeat?(key), or release?(key)), where key is the index of
  56. #  the key you want to check. Key may also be used as Keys::KEYNAME. For a list
  57. #  of acceptable key names, look below the header.
  58. #==============================================================================
  59. # * Method List
  60. #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  61. #  Keys.update
  62. #    Updates keyboard input. Calls to this method are not necessary unless the
  63. #    default Input module is not being updated.
  64. #
  65. #  Keys.press?(key)
  66. #    Determines whether the button determined by key is currently being
  67. #    pressed. If the button is being pressed, returns true. If not, returns
  68. #    false.
  69. #
  70. #  Keys.trigger?(key)
  71. #    Determines whether the button determined by key is being pressed again.
  72. #    "Pressed again" is seen as time having passed between the button being not
  73. #    pressed and being pressed. If the button is being pressed, returns true.
  74. #    If not, returns false.
  75. #
  76. #  Keys.repeat?(key)
  77. #    Determines whether the button determined by key is being pressed again.
  78. #    Unlike trigger?(), this takes into account the repeat input of a button
  79. #    being held down continuously. If the button is being pressed, returns
  80. #    true. If not, returns false.
  81. #
  82. #  Keys.release?(key)
  83. #    Determines whether the button determined by key has just been released. If
  84. #    the button has been released, returns true. If not, returns false.
  85. #==============================================================================
  86. # *Glitchfinder's Advice
  87. #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  88. #  This script is meant for people with a medium or advanced level of scripting
  89. #  knowledge and ability, or for those using scripts that require this module.
  90. #==============================================================================
  91. # * Contact
  92. #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  93. #  Glitchfinder, the author of this script, may be contacted through his
  94. #  website, found at [url]http://www.glitchkey.com[/url]
  95. #
  96. #  You may also find Glitchfinder at [url]http://www.hbgames.org[/url]
  97. #==============================================================================
  98. # * Usage
  99. #^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  100. #  This script may be used with the following terms and conditions:
  101. #
  102. #    1. This script is free to use in any noncommercial project. If you wish to
  103. #       use this script in a commercial (paid) project, please contact
  104. #       Glitchfinder at his website.
  105. #    2. This script may only be hosted at the following domains:
  106. #         [url]http://www.glitchkey.com[/url]
  107. #         [url]http://www.hbgames.org[/url]
  108. #    3. If you wish to host this script elsewhere, please contact Glitchfinder.
  109. #    4. If you wish to translate this script, please contact Glitchfinder. He
  110. #       will need the web address that you plan to host the script at, as well
  111. #       as the language this script is being translated to.
  112. #    5. This header must remain intact at all times.
  113. #    6. Glitchfinder remains the sole owner of this code. He may modify or
  114. #       revoke this license at any time, for any reason.
  115. #    7. Any code derived from code within this script is owned by Glitchfinder,
  116. #       and you must have his permission to publish, host, or distribute his
  117. #       code.
  118. #    8. This license applies to all code derived from the code within this
  119. #       script.
  120. #    9. If you use this script within your project, you must include visible
  121. #       credit to Glitchfinder, within reason.
  122. #≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
  123.  
  124. #==============================================================================
  125. # ** Keys
  126. #------------------------------------------------------------------------------
  127. #  This module performs key input processing
  128. #==============================================================================
  129.  
  130. module Keys
  131.         #--------------------------------------------------------------------------
  132.         # * Miscellaneous Keys
  133.         #--------------------------------------------------------------------------
  134.         CANCEL              = 0x03 # Control-Break Processing
  135.         BACKSPACE           = 0x08 # Backspace Key
  136.         TAB                 = 0x09 # Tab Key
  137.         CLEAR               = 0x0C # Clear Key
  138.         RETURN              = 0x0D # Enter Key
  139.         SHIFT               = 0x10 # Shift Key
  140.         CONTROL             = 0x11 # Ctrl Key
  141.         MENU                = 0x12 # Alt Key
  142.         PAUSE               = 0x13 # Pause Key
  143.         ESCAPE              = 0x1B # Esc Key
  144.         CONVERT             = 0x1C # IME Convert Key
  145.         NONCONVERT          = 0x1D # IME Nonconvert Key
  146.         ACCEPT              = 0x1E # IME Accept Key
  147.         SPACE               = 0x20 # Space Bar Key (Space, usually blank)
  148.         PRIOR               = 0x21 # Page Up Key
  149.         NEXT                = 0x22 # Page Down Key
  150.         ENDS                = 0x23 # End Key
  151.         HOME                = 0x24 # Home Key
  152.         LEFT                = 0x25 # Left Arrow Key
  153.         UP                  = 0x26 # Up Arrow Key
  154.         RIGHT               = 0x27 # Right Arrow Key
  155.         DOWN                = 0x28 # Down Arrow Key
  156.         SELECT              = 0x29 # Select Key
  157.         PRINT               = 0x2A # Print Key
  158.         EXECUTE             = 0x2B # Execute Key
  159.         SNAPSHOT            = 0x2C # Print Screen Key
  160.         DELETE              = 0x2E # Delete Key
  161.         HELP                = 0x2F # Help Key
  162.         LSHIFT              = 0xA0 # Left Shift Key
  163.         RSHIFT              = 0xA1 # Right Shift Key
  164.         LCONTROL            = 0xA2 # Left Control Key (Ctrl)
  165.         RCONTROL            = 0xA3 # Right Control Key (Ctrl)
  166.         LMENU               = 0xA4 # Left Menu Key (Alt)
  167.         RMENU               = 0xA5 # Right Menu Key (Alt)
  168.         PACKET              = 0xE7 # Used to Pass Unicode Characters as Keystrokes
  169.         #--------------------------------------------------------------------------
  170.         # * Number Keys
  171.         #--------------------------------------------------------------------------
  172.         N0                  = 0x30 # 0 Key
  173.         N1                  = 0x31 # 1 Key
  174.         N2                  = 0x32 # 2 Key
  175.         N3                  = 0x33 # 3 Key
  176.         N4                  = 0x34 # 4 Key
  177.         N5                  = 0x35 # 5 Key
  178.         N6                  = 0x36 # 6 Key
  179.         N7                  = 0x37 # 7 Key
  180.         N8                  = 0x38 # 8 Key
  181.         N9                  = 0x39 # 9 Key
  182.         #--------------------------------------------------------------------------
  183.         # * Letter Keys
  184.         #--------------------------------------------------------------------------
  185.         A                   = 0x41 # A Key
  186.         B                   = 0x42 # B Key
  187.         C                   = 0x43 # C Key
  188.         D                   = 0x44 # D Key
  189.         E                   = 0x45 # E Key
  190.         F                   = 0x46 # F Key
  191.         G                   = 0x47 # G Key
  192.         H                   = 0x48 # H Key
  193.         I                   = 0x49 # I Key
  194.         J                   = 0x4A # J Key
  195.         K                   = 0x4B # K Key
  196.         L                   = 0x4C # L Key
  197.         M                   = 0x4D # M Key
  198.         N                   = 0x4E # N Key
  199.         O                   = 0x4F # O Key
  200.         P                   = 0x50 # P Key
  201.         Q                   = 0x51 # Q Key
  202.         R                   = 0x52 # R Key
  203.         S                   = 0x53 # S Key
  204.         T                   = 0x54 # T Key
  205.         U                   = 0x55 # U Key
  206.         V                   = 0x56 # V Key
  207.         W                   = 0x57 # W Key
  208.         X                   = 0x58 # X Key
  209.         Y                   = 0x59 # Y Key
  210.         Z                   = 0x5A # Z Key
  211.         #--------------------------------------------------------------------------
  212.         # * Windows Keys
  213.         #--------------------------------------------------------------------------
  214.         LWIN                = 0x5B # Left Windows Key (Natural keyboard)
  215.         RWIN                = 0x5C # Right Windows Key (Natural Keyboard)
  216.         APPS                = 0x5D # Applications Key (Natural keyboard)
  217.         SLEEP               = 0x5F # Computer Sleep Key
  218.         BROWSER_BACK        = 0xA6 # Browser Back Key
  219.         BROWSER_FORWARD     = 0xA7 # Browser Forward Key
  220.         BROWSER_REFRESH     = 0xA8 # Browser Refresh Key
  221.         BROWSER_STOP        = 0xA9 # Browser Stop Key
  222.         BROWSER_SEARCH      = 0xAA # Browser Search Key
  223.         BROWSER_FAVORITES   = 0xAB # Browser Favorites Key
  224.         BROWSER_HOME        = 0xAC # Browser Start and Home Key
  225.         VOLUME_MUTE         = 0xAD # Volume Mute Key
  226.         VOLUME_DOWN         = 0xAE # Volume Down Key
  227.         VOLUME_UP           = 0xAF # Volume Up Key
  228.         MEDIA_NEXT_TRACK    = 0xB0 # Next Track Key
  229.         MEDIA_PREV_TRACK    = 0xB1 # Previous Track Key
  230.         MEDIA_STOP          = 0xB2 # Stop Media Key
  231.         MEDIA_PLAY_PAUSE    = 0xB3 # Play/Pause Media Key
  232.         LAUNCH_MAIL         = 0xB4 # Start Mail Key
  233.         LAUNCH_MEDIA_SELECT = 0xB5 # Select Media Key
  234.         LAUNCH_APP1         = 0xB6 # Start Application 1 Key
  235.         LAUNCH_APP2         = 0xB7 # Start Application 2 Key
  236.         PROCESSKEY          = 0xE5 # IME Process Key
  237.         ATTN                = 0xF6 # Attn Key
  238.         CRSEL               = 0xF7 # CrSel Key
  239.         EXSEL               = 0xF8 # ExSel Key
  240.         EREOF               = 0xF9 # Erase EOF Key
  241.         PLAY                = 0xFA # Play Key
  242.         ZOOM                = 0xFB # Zoom Key
  243.         PA1                 = 0xFD # PA1 Key
  244.         #--------------------------------------------------------------------------
  245.         # * Number Pad Keys
  246.         #--------------------------------------------------------------------------
  247.         NUMPAD0             = 0x60 # Numeric Keypad 0 Key
  248.         NUMPAD1             = 0x61 # Numeric Keypad 1 Key
  249.         NUMPAD2             = 0x62 # Numeric Keypad 2 Key
  250.         NUMPAD3             = 0x63 # Numeric Keypad 3 Key
  251.         NUMPAD4             = 0x64 # Numeric Keypad 4 Key
  252.         NUMPAD5             = 0x65 # Numeric Keypad 5 Key
  253.         NUMPAD6             = 0x66 # Numeric Keypad 6 Key
  254.         NUMPAD7             = 0x67 # Numeric Keypad 7 Key
  255.         NUMPAD8             = 0x68 # Numeric Keypad 8 Key
  256.         NUMPAD9             = 0x69 # Numeric Keypad 9 Key
  257.         MULTIPLY            = 0x6A # Multiply Key (*)
  258.         ADD                 = 0x6B # Add Key (+)
  259.         SEPARATOR           = 0x6C # Separator Key
  260.         SUBTRACT            = 0x6D # Subtract Key (-)
  261.         DECIMAL             = 0x6E # Decimal Key (.)
  262.         DIVIDE              = 0x6F # Divide Key (/)
  263.         #--------------------------------------------------------------------------
  264.         # * Function Keys
  265.         #--------------------------------------------------------------------------
  266.         F1                  = 0x70 # F1 Key
  267.         F2                  = 0x71 # F2 Key
  268.         F3                  = 0x72 # F3 Key
  269.         F4                  = 0x73 # F4 Key
  270.         F5                  = 0x74 # F5 Key
  271.         F6                  = 0x75 # F6 Key
  272.         F7                  = 0x76 # F7 Key
  273.         F8                  = 0x77 # F8 Key
  274.         F9                  = 0x78 # F9 Key
  275.         F10                 = 0x79 # F10 Key
  276.         F11                 = 0x7A # F11 Key
  277.         F12                 = 0x7B # F12 Key
  278.         F13                 = 0x7C # F13 Key
  279.         F14                 = 0x7D # F14 Key
  280.         F15                 = 0x7E # F15 Key
  281.         F16                 = 0x7F # F16 Key
  282.         F17                 = 0x80 # F17 Key
  283.         F18                 = 0x81 # F18 Key
  284.         F19                 = 0x82 # F19 Key
  285.         F20                 = 0x83 # F20 Key
  286.         F21                 = 0x84 # F21 Key
  287.         F22                 = 0x85 # F22 Key
  288.         F23                 = 0x86 # F23 Key
  289.         F24                 = 0x87 # F24 Key
  290.         #--------------------------------------------------------------------------
  291.         # * Toggle Keys
  292.         #--------------------------------------------------------------------------
  293.         CAPITAL             = 0x14 # Caps Lock Key
  294.         KANA                = 0x15 # IME Kana Mode Key
  295.         HANGUL              = 0x15 # IME Hangul Mode Key
  296.         JUNJA               = 0x17 # IME Junja Mode Key
  297.         FINAL               = 0x18 # IME Final Mode Key
  298.         HANJA               = 0x19 # IME Hanja Mode Key
  299.         KANJI               = 0x19 # IME Kanji Mode Key
  300.         MODECHANGE          = 0x1F # IME Mode Change Request Key
  301.         INSERT              = 0x2D # Insert Key
  302.         NUMLOCK             = 0x90 # Num Lock Key
  303.         SCROLL              = 0x91 # Scroll Lock Key
  304.         #--------------------------------------------------------------------------
  305.         # * OEM Keys (Vary by keyboard)
  306.         #--------------------------------------------------------------------------
  307.         OEM_1               = 0xBA # Misc Characters (; : in USA 101/102 Keyboards)
  308.         OEM_PLUS            = 0xBB # + = Key
  309.         OEM_COMMA           = 0xBC # , < Key
  310.         OEM_MINUS           = 0xBD # - _ Key
  311.         OEM_PERIOD          = 0xBE # . > Key
  312.         OEM_2               = 0xBF # Misc Characters (/ ? in USA 101/102 Keyboards)
  313.         OEM_3               = 0xC0 # Misc Characters (` ~ in USA 101/102 Keyboards)
  314.         OEM_4               = 0xDB # Misc Characters ([ { in USA 101/102 Keyboards)
  315.         OEM_5               = 0xDC # Misc Characters (\ | in USA 101/102 Keyboards)
  316.         OEM_6               = 0xDD # Misc Characters (] } in USA 101/102 Keyboards)
  317.         OEM_7               = 0xDE # Misc Characters (' " in USA 101/102 Keyboards)
  318.         OEM_8               = 0xDF # Misc Characters (Varies by Keyboard)
  319.         OEM_9               = 0xE1 # OEM Specific
  320.         OEM_10              = 0x92 # OEM Specific
  321.         OEM_11              = 0x93 # OEM Specific
  322.         OEM_12              = 0x94 # OEM Specific
  323.         OEM_13              = 0x95 # OEM Specific
  324.         OEM_14              = 0x96 # OEM Specific
  325.         OEM_15              = 0xE3 # OEM Specific
  326.         OEM_16              = 0xE4 # OEM Specific
  327.         OEM_17              = 0xE6 # OEM Specific
  328.         OEM_18              = 0xE9 # OEM Specific
  329.         OEM_19              = 0xEA # OEM Specific
  330.         OEM_20              = 0xEB # OEM Specific
  331.         OEM_21              = 0xEC # OEM Specific
  332.         OEM_22              = 0xED # OEM Specific
  333.         OEM_23              = 0xEE # OEM Specific
  334.         OEM_24              = 0xEF # OEM Specific
  335.         OEM_25              = 0xF1 # OEM Specific
  336.         OEM_26              = 0xF2 # OEM Specific
  337.         OEM_27              = 0xF3 # OEM Specific
  338.         OEM_28              = 0xF4 # OEM Specific
  339.         OEM_29              = 0xF5 # OEM Specific
  340.         OEM_102             = 0xE2 # Angle Bracket or Backslash on RT-102 Keyboards
  341.         OEM_CLEAR           = 0xFE # Clear Key
  342.         #--------------------------------------------------------------------------
  343.         # * Declare Module Variables
  344.         #--------------------------------------------------------------------------
  345.         # Create string for unpacking input
  346.         @unpack_string = 'b'*256
  347.         # Generate blank input arrays
  348.         @last_array = '0'*256
  349.         @press = Array.new(256, false)
  350.         @trigger = Array.new(256, false)
  351.         @repeat = Array.new(256, false)
  352.         @release = Array.new(256, false)
  353.         # Generate blank counter array
  354.         @repeat_counter = Array.new(256, 0)
  355.         # Declare keyboard API
  356.         @getKeyboardState = Win32API.new('user32', 'GetKeyboardState', ['P'], 'V')
  357.         @getAsyncKeyState = Win32API.new('user32', 'GetAsyncKeyState', 'i', 'i')
  358.         # Call current keyboard state
  359.         @getKeyboardState.call(@last_array)
  360.         # Set previous keyboard state
  361.         @last_array = @last_array.unpack(@unpack_string)
  362.         # Cycle through keys
  363.         for i in [email]0...@last_array.size[/email]
  364.                 # Set pressed key state
  365.                 @press[i] = @getAsyncKeyState.call(i) == 0 ? false : true
  366.         end
  367.         #--------------------------------------------------------------------------
  368.         # * Frame Update
  369.         #--------------------------------------------------------------------------
  370.         def self.update
  371.                 # Clear input arrays
  372.                 @trigger = Array.new(256, false)
  373.                 @repeat = Array.new(256, false)
  374.                 @release = Array.new(256, false)
  375.                 # create blank input array
  376.                 array = '0'*256
  377.                 # Call current keyboard state
  378.                 @getKeyboardState.call(array)
  379.                 # Unpack key array
  380.                 array = array.unpack(@unpack_string)
  381.                 # Cycle through all keys
  382.                 for i in 0...array.size
  383.                         # If the current key state does not match the previous state
  384.                         if array[i] != @last_array[i]
  385.                                 # Set current key state
  386.                                 @press[i] = @getAsyncKeyState.call(i) == 0 ? false : true
  387.                                 # If the repeat counter is at 0
  388.                                 if @repeat_counter[i] <= 0 && @press[i]
  389.                                         # Set the key to repeat
  390.                                         @repeat[i] = true
  391.                                         # Set the repeat counter to 15 frames
  392.                                         @repeat_counter[i] = 15
  393.                                 end
  394.                                 # If the key is not being pressed
  395.                                 if !@press[i]
  396.                                         # Set the key to released
  397.                                         @release[i] = true
  398.                                         # If the key is being pressed
  399.                                 else
  400.                                         # Set the key to triggered
  401.                                         @trigger[i] = true
  402.                                 end
  403.                                 # If the key state is the same
  404.                         else
  405.                                 # If the key is set to pressed
  406.                                 if @press[i] == true
  407.                                         # Set the current key state
  408.                                         @press[i] = @getAsyncKeyState.call(i) == 0 ? false : true
  409.                                         # Set the key to released if it is no longer being pressed
  410.                                         @release[i] = true if !@press[i]
  411.                                 end
  412.                                 # If the repeat counter is greater than 0 and the key is pressed
  413.                                 if @repeat_counter[i] > 0 && @press[i] == true
  414.                                         # Cycle the repeat counter down one frame
  415.                                         @repeat_counter[i] -= 1
  416.                                         # If the repeat counter is 0 or less and the key is pressed
  417.                                 elsif @repeat_counter[i] <= 0 && @press[i] == true
  418.                                         # Set the key to repeat
  419.                                         @repeat[i] = true
  420.                                         # Set the repeat counter to 15 frames
  421.                                         @repeat_counter[i] = 3
  422.                                         # If the repeat counter does not equal 0
  423.                                 elsif @repeat_counter[i] != 0
  424.                                         # Set the repeat counter to 0
  425.                                         @repeat_counter[i] = 0
  426.                                 end
  427.                         end
  428.                 end
  429.                 # Set the previous keyboard state
  430.                 @last_array = array
  431.         end
  432.         #--------------------------------------------------------------------------
  433.         # * Get Key Pressed State
  434.         #     key : key index
  435.         #--------------------------------------------------------------------------
  436.         def self.press?(key)
  437.                 # Return key pressed state
  438.                 return @press[key]
  439.         end
  440.         #--------------------------------------------------------------------------
  441.         # * Get Key Triggered State
  442.         #     key : key index
  443.         #--------------------------------------------------------------------------
  444.         def self.trigger?(key)
  445.                 # Return key triggered state
  446.                 return @trigger[key]
  447.         end
  448.         #--------------------------------------------------------------------------
  449.         # * Get Key Repeated State
  450.         #     key : key index
  451.         #--------------------------------------------------------------------------
  452.         def self.repeat?(key)
  453.                 # Return key repeated state
  454.                 return @repeat[key]
  455.         end
  456.         #--------------------------------------------------------------------------
  457.         # * Get Key Released State
  458.         #     key : key index
  459.         #--------------------------------------------------------------------------
  460.         def self.release?(key)
  461.                 # Return key released state
  462.                 return @release[key]
  463.         end
  464. end
  465.  
  466. #==============================================================================
  467. # ** Input
  468. #------------------------------------------------------------------------------
  469. #  This module performs key input processing
  470. #==============================================================================
  471.  
  472. module Input
  473.         # Add class data
  474.         class << self
  475.                 #------------------------------------------------------------------------
  476.                 # * Alias Methods
  477.                 #------------------------------------------------------------------------
  478.                 alias glitch_input_keys_update update
  479.                 #------------------------------------------------------------------------
  480.                 # * Frame Update
  481.                 #------------------------------------------------------------------------
  482.                 def update
  483.                         # Call original method
  484.                         glitch_input_keys_update
  485.                         # Update Keys module
  486.                         Keys.update
  487.                 end
  488.         end
  489.  
  490.         def self.press?(sym)
  491.                 case sym
  492.                 when :UP
  493.                         up?(:press?)
  494.                 when :DOWN
  495.                         down?(:press?)
  496.                 when :LEFT
  497.                         left?(:press?)
  498.                 when :RIGHT
  499.                         right?(:press?)
  500.                 when :L
  501.                         l?(:press?)
  502.                 when :R
  503.                         r?(:press?)
  504.                 when :A
  505.                         a?(:press?)
  506.                 when :B
  507.                         b?(:press?)
  508.                 when :C
  509.                         c?(:press?)
  510.                 end                               
  511.         end
  512.  
  513.         def self.trigger?(sym)
  514.                 case sym
  515.                 when :UP
  516.                         up?(:trigger?)
  517.                 when :DOWN
  518.                         down?(:trigger?)
  519.                 when :LEFT
  520.                         left?(:trigger?)
  521.                 when :RIGHT
  522.                         right?(:trigger?)
  523.                 when :L
  524.                         l?(:trigger?)
  525.                 when :R
  526.                         r?(:trigger?)
  527.                 when :A
  528.                         a?(:trigger?)
  529.                 when :B
  530.                         b?(:trigger?)
  531.                 when :C
  532.                         c?(:trigger?)                                       
  533.                 end                                       
  534.         end
  535.  
  536.         def self.repeat?(sym)
  537.                 case sym
  538.                 when :UP
  539.                         up?(:repeat?)
  540.                 when :DOWN
  541.                         down?(:repeat?)
  542.                 when :LEFT
  543.                         left?(:repeat?)
  544.                 when :RIGHT
  545.                         right?(:repeat?)
  546.                 when :L
  547.                         l?(:repeat?)
  548.                 when :R
  549.                         r?(:repeat?)
  550.                 when :A
  551.                         a?(:repeat?)
  552.                 when :B
  553.                         b?(:repeat?)
  554.                 when :C
  555.                         c?(:repeat?)                                                       
  556.                 end                                       
  557.         end               
  558.  
  559.         def self.dir4
  560.                 case
  561.                 when down?(:press?)
  562.                         2
  563.                 when left?(:press?)
  564.                         4
  565.                 when right?(:press?)
  566.                         6
  567.                 when up?(:press?)
  568.                         8
  569.                 else
  570.                         0
  571.                 end                                               
  572.         end
  573.  
  574.         def self.dir8
  575.                 case
  576.                 when down?(:press?) && left?(:press?)
  577.                         1
  578.                 when down?(:press?) && up?(:press?)
  579.                         3
  580.                 when down?(:press?)
  581.                         2
  582.                 when up?(:press?) && left?(:press?)
  583.                         7
  584.                 when up?(:press?) && up?(:press?)
  585.                         9
  586.                 when up?(:press?)
  587.                         8
  588.                 when left?(:press?)
  589.                         4
  590.                 when up?(:press?)
  591.                         6
  592.                 else
  593.                         0
  594.                 end                       
  595.         end               
  596.  
  597. end
  598.  
  599. #===============================================================================

点评

搞定!谢谢!  发表于 2016-10-18 12:59
已添加注释和稍微修改脚本。请使用最新的版本。  发表于 2016-10-17 22:39
貌似只能改上和下吧  发表于 2016-10-17 21:18
脚本的最下方  发表于 2016-10-17 19:47
我说的是在哪改键位  发表于 2016-10-17 17:36

评分

参与人数 1星屑 +250 梦石 +1 收起 理由
怪蜀黍 + 250 + 1 楼主认可的解答

查看全部评分

回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 23:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表