Project1

标题: 按键神马的都去死好了!按了某个按键后神马都没发生…… [打印本页]

作者: RPGmaster    时间: 2011-7-17 03:51
标题: 按键神马的都去死好了!按了某个按键后神马都没发生……
我在做ARPG游戏……就是按住某个按键就可以换人……
可是死活不换……不过把按键去掉就可以换了……卖糕的……莫非是我的RP问题么……
注:卡关已经开了

dsu_plus_rewardpost_czw
作者: MSQ    时间: 2011-7-17 04:47
  实际上,vx的按键系统是有问题的。
在脚本或事件中设置一个键,实际上在键盘上不会与原先的键对应,而是换成了另一个键。例如:Z实际上是D,B是x,C是Z,R是W。因此。你确定你按的是"R"?试一试按W键是否有用。
作者: 仲秋启明    时间: 2011-7-17 10:15
等待时间不够长等60帧
作者: 277297575    时间: 2011-7-17 12:49
      这个是并行刷新的问题,基本上你用并行刷新去判断一个按钮他会执行两次(你可以听SE来判断),还有等待这个设定对并行是无效的,做ARPG不用全键盘脚本才是神马都是假的......
作者: 315038639    时间: 2011-7-17 13:36
本帖最后由 315038639 于 2011-7-17 13:37 编辑

VX的按键是没有问题的。只不过是游戏手柄的某个键罢了。在游戏测试的时候按下F1可以更改内幕���

(话说您的截图软件改换了。如果用的是QQ,就设置成保存PNG格式的吧……效果很不好)
作者: maliut    时间: 2011-7-17 16:26
我也做过类似的换人的东西,运行正常
我是用公共事件做的,也许可以试试
作者: RPGmaster    时间: 2011-7-17 19:12
虽然我已经说过了……不过开关已经开了……
而且不是手柄渣的问题……因为我是用键盘玩的……
莫非是脚本问题么……
作者: 仲秋启明    时间: 2011-7-17 21:05
帮你做了一个
Project1.rar (237.89 KB, 下载次数: 31)
作者: RPGmaster    时间: 2011-7-17 21:48
仲秋启明 发表于 2011-7-17 14:05
帮你做了一个

嗯……我知道了……放在我的游戏里就不行…
应该是脚本问题吧
这个:
  1. #==============================================================================
  2. # Requiem Keyboard (Thanks to Aleworks to source)
  3. #==============================================================================
  4. #------------------------------------------------------------------------------
  5. module Keys
  6.   
  7.   Keyboard = "PT-BR"
  8.   
  9.   Mouse_Left = 1
  10.   Mouse_Right = 2
  11.   Mouse_Middle = 4
  12.   
  13.   Back = 8
  14.   Tab = 9
  15.   Clear = 12
  16.   Enter = 13
  17.   Shift = 16
  18.   Ctrl = 17
  19.   Alt = 18
  20.   Pause = 19
  21.   CapsLock = 20
  22.   Esc = 27
  23.   Space = 32
  24.   PGUP = 33
  25.   PGDN = 34
  26.   End = 35
  27.   Home = 36
  28.   Left = 37
  29.   Up = 38
  30.   Right = 39
  31.   Down = 40
  32.   PrintScreen = 44
  33.   Insert = 45
  34.   Delete = 46
  35.   
  36.   Num0 = 48
  37.   Num1 = 49
  38.   Num2 = 50
  39.   Num3 = 51
  40.   Num4 = 52
  41.   Num5 = 53
  42.   Num6 = 54
  43.   Num7 = 55
  44.   Num8 = 56
  45.   Num9 = 57
  46.   
  47.   A = 65
  48.   B = 66
  49.   C = 67
  50.   D = 68
  51.   E = 69
  52.   F = 70
  53.   G = 71
  54.   H = 72
  55.   I = 73
  56.   J = 74
  57.   K = 75
  58.   L = 76
  59.   M = 77
  60.   N = 78
  61.   O = 79
  62.   P = 80
  63.   Q = 81
  64.   R = 82
  65.   S = 83
  66.   T = 84
  67.   U = 85
  68.   V = 86
  69.   W = 87
  70.   X = 88
  71.   Y = 89
  72.   Z = 90
  73.   
  74.   Win = [91, 92]
  75.   Apps = 93
  76.   
  77.   Pad0 = 96
  78.   Pad1 = 97
  79.   Pad2 = 98
  80.   Pad3 = 99
  81.   Pad4 = 100
  82.   Pad5 = 101
  83.   Pad6 = 102
  84.   Pad7 = 103
  85.   Pad8 = 104
  86.   Pad9 = 105
  87.   Multiply = 106
  88.   Add = 107
  89.   Subtract = 109
  90.   Decimal = 110
  91.   Divide = 111
  92.   
  93.   F1 = 112
  94.   F2 = 113
  95.   F3 = 114
  96.   F4 = 115
  97.   F5 = 116
  98.   F6 = 117
  99.   F7 = 118
  100.   F8 = 119
  101.   F9 = 120
  102.   F10 = 121
  103.   F11 = 122
  104.   F12 = 123
  105.   
  106.   NumLock = 144
  107.   ScrollLock = 145
  108.   
  109.   Collon = 186     # EN-US: ;:  PT-BR: çÇ
  110.   Equal = 187      # EN-US: =+  PT-BR: =+
  111.   Comma = 188      # EN-US: ,<  PT-BR: ,<
  112.   Underscore = 189 # EN-US: -_  PT-BR: -_
  113.   Dot = 190        # EN-US: .>  PT-BR: .>
  114.   Backslash = 191  # EN-US: /?  PT-BR: ;:
  115.   Accent = 192     # EN-US: '~  PT-BR: "'
  116.   Query = 193      # EN-US:     PT-BR: /?
  117.   Float = 194      # EN-US:     PT-BT: .
  118.   LHook = 219      # EN-US: [{  PT-BR: ´`
  119.   RBar = 220       # EN-US: \|  PT-BR: ]}
  120.   RHook = 221      # EN-US: ]}  PT-BR: [{
  121.   Quote = 222      # EN-US: "'  PT-BR: ^~
  122.   LBar   = 226     #            PT-BR: \|
  123.   
  124.   Names = {1 => 'Mouse Left', 2 => 'Mouse Right', 3 => 'Cancel',
  125.   4 => 'Mouse Middle', 5 => 'Mouse 4th', 6 => 'Mouse 5th', 8 => 'Backspace',
  126.   9 => 'Tab', 12 => 'Clear', 13 => 'Enter', 16 => 'Shift', 17 => 'Control',
  127.   18 => 'Alt', 19 => 'Pause', 20 => 'Caps Lock', 21 => 'Kana', 23 => 'Junja',
  128.   24 => 'Final', 25 => 'Kanji', 27 => 'Escape', 28 => 'Convert', 29 => 'Non Convert',
  129.   30 => 'Accept', 31 => 'Mode Change', 32 => 'Space', 33 => 'Page Up',
  130.   34 => 'Page Down', 35 => 'End', 36 => 'Home', 37 => 'Left', 38 => 'Up',
  131.   39 => 'Right', 40 => 'Down', 41 => 'Select', 42 => 'Print', 43 => 'Execute',
  132.   44 => 'PrintScreen', 45 => 'Insert', 46 => 'Delete', 47 => 'Help',
  133.   48 => '0', 49 => '1', 50 => '2', 51 => '3', 52 => '4', 53 => '5', 54 => '6',
  134.   55 => '7', 56 => '8', 57 => '9', 65 => 'A', 66 => 'B', 67 => 'C', 68 => 'D',
  135.   69 => 'E', 70 => 'F', 71 => 'G', 72 => 'H', 73 => 'I', 74 => 'J', 75 => 'K',
  136.   76 => 'L', 77 => 'M', 78 => 'N', 79 => 'O', 80 => 'P', 81 => 'Q', 82 => 'R',
  137.   83 => 'S', 84 => 'T', 85 => 'U', 86 => 'V', 87 => 'W', 88 => 'X', 89 => 'Y',
  138.   90 => 'Z', 91 => 'Left Windows', 92 => 'Right Windows', 93 => 'Application',
  139.   95 => 'Sleep', 96 => 'PAD 0', 97 => 'PAD 1', 98 => 'PAD 2', 99 => 'PAD 3',
  140.   100 => 'PAD 4', 101 => 'PAD 5', 102 => 'PAD 6', 103 => 'PAD 7', 104 => 'PAD 8',
  141.   105 => 'PAD 9', 106 => '*', 107 => '+', 108 => 'Separator', 109 => '-',
  142.   110 => '.', 111 => '/', 112 => 'F1', 113 => 'F2', 114 => 'F3', 115 => 'F4',
  143.   116 => 'F5', 117 => 'F6', 118 => 'F7', 119 => 'F8', 120 => 'F9', 121 => 'F10',
  144.   122 => 'F11', 123 => 'F12', 124 => 'F13', 125 => 'F14', 126 => 'F15',
  145.   127 => 'F16', 128 => 'F17', 129 => 'F18', 130 => 'F19', 131 => 'F20',
  146.   132 => 'F21', 133 => 'F22', 134 => 'F23', 135 => 'F24', 144 => 'Number Lock',
  147.   145 => 'Scroll Lock', 146 => 'OEM 15', 147 => 'OEM 16', 148 => 'OEM 17',
  148.   149 => 'OEM 18', 150 => 'OEM 19', 160 => 'Left Shift', 161 => 'Right Shift',
  149.   162 => 'Left Control', 163 => 'Right Control',   164 => 'Left Alt',
  150.   165 => 'Right Alt', 166 => 'Browser Back', 167 => 'Browser Forward',
  151.   168 => 'Browser Refresh', 169 => 'Browser Stop', 170 => 'Browser Search',
  152.   171 => 'Browser Favorites', 172 => 'Browser Home', 173 => 'Volume Mute',
  153.   174 => 'Volume Down', 175 => 'Volume Up', 176 => 'Media Next Track',
  154.   177 => 'Media Previous Track', 178 => 'Media Stop', 179 => 'Media Play Pause',
  155.   180 => 'Launch Mail', 181 => 'Launch Media Select', 182 => 'Launch Application',
  156.   183 => 'Launch Application', 186 => 'OEM 1', 187 => 'OEM 2', 188 => 'OEM 3',
  157.   189 => 'OEM 4', 190 => 'OEM 5', 191 => 'OEM 6', 192 => 'OEM 7', 219 => 'OEM 8',
  158.   220 => 'OEM 9', 221 => 'OEM 10', 222 => 'OEM 11', 223 => 'OEM 13', 225 => 'OEM 20',
  159.   226 => 'OEM 14', 227 => 'OEM 21', 228 => 'OEM 22', 229 => 'Proccess',
  160.   230 => 'OEM 23', 232 => 'OEM 24', 240 => 'OEM 25', 241 => 'OEM 26',
  161.   242 => 'OEM 27', 243 => 'OEM 28', 244 => 'OEM 29', 245 => 'OEM 30', 246 => 'ATTN',
  162.   247 => 'CRSEL', 248 => 'EXSEL', 249 => 'EREOF', 250 => 'Play', 251 => 'Zoom',
  163.   253 => 'PA1', 254 => 'OEM Clear'}
  164.   
  165.   Numbers = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
  166.              96, 97, 98, 99, 100, 101, 102, 103, 104, 105]
  167.   
  168.   Values = {}
  169.   
  170.   Values["ALL"] = {32 => [" "], 49 => ["1", "!"], 50 => ["2", "@"],
  171.   51 => ["3", "#"], 52 => ["4", "$"], 53 => ["5", "%"], 54 => ["6", "¨"],
  172.   55 => ["7", "&"], 56 => ["8", "*"], 57 => ["9", "("], 48 => ["0", ")"],
  173.   65 => ["a", "A"], 66 => ["b", "B"], 67 => ["c", "C"], 68 => ["d", "D"],
  174.   69 => ["e", "E"], 70 => ["f", "F"], 71 => ["g", "G"], 72 => ["h", "H"],
  175.   73 => ["i", "I"], 74 => ["j", "J"], 75 => ["k", "K"], 76 => ["l", "L"],
  176.   77 => ["m", "M"], 78 => ["n", "N"], 79 => ["o", "O"], 80 => ["p", "P"],
  177.   81 => ["q", "Q"], 82 => ["r", "R"], 83 => ["s", "S"], 84 => ["t", "T"],
  178.   85 => ["u", "U"], 86 => ["v", "V"], 87 => ["w", "W"], 88 => ["x", "X"],
  179.   89 => ["y", "Y"], 90 => ["z", "Z"], 96 => ["0"], 97 => ["1"], 98 => ["2"],
  180.   99 => ["3"], 100 => ["4"], 101 => ["5"], 102 => ["6"], 103 => ["7"],
  181.   104 => ["8"], 105 => ["9"], 106 => ["*"], 107 => ["+"], 109 => ["-"],
  182.   110 => [","], 111 => ["/"]}
  183.   
  184.   Values["EN-US"] = {186 => [";", ":"], 187 => ["=", "+"], 188 => [",", "<"],
  185.   189 => ["-", "_"], 190 => [".", ">"], 191 => ["/", "?"], 192 => ["'", "~"],
  186.   219 => ["[", "{"], 220 => ["","|"], 221 => ["]", "}"], 222 => ['"', "'"]}
  187.   
  188.   Values["PT-BR"] = {186 => ["ç", "Ç"], 187 => ["=", "+"], 188 => [",", "<"],
  189.   189 => ["-", "_"], 190 => [".", ">"], 191 => [";", ":"], 192 => ["'", '"'],
  190.   193 => ["/", '?'], 194 =>["."], 219 => ["´", "`"], 220 => ["]", "}"],
  191.   221 => ["[", "{"], 222 => ['~', "^"], 226 => ["","|"]}
  192.   
  193.   def self.name(id)
  194.     return (Names.keys.include?(id) ? Names[id] : "???")
  195.   end
  196.   
  197.   def self.value(id)
  198.     if Values["ALL"].keys.include?(id)
  199.       return Values["ALL"][id]
  200.     elsif Values[Keyboard].keys.include?(id)
  201.       return Values[Keyboard][id]
  202.     else
  203.       return Values["EN-US"][id]
  204.     end
  205.   end
  206.   
  207. end

  208. #------------------------------------------------------------------------------
  209. module Input
  210.   
  211.   @time = Array.new(256, 0)
  212.   @press = Array.new(256, false)
  213.   @trigger = Array.new(256, false)
  214.   @repeat = Array.new(256, false)
  215.   @release = Array.new(256, false)
  216.   @dirs = [0, 0]
  217.   
  218.   InputInitialize = Win32API.new("Input", 'InputInitialize', 'LLLLLL', '')
  219.   InputUpdate = Win32API.new("Input", 'InputUpdate', '', '')
  220.   
  221.   InputInitialize.call(@time.object_id, @press.object_id, @trigger.object_id,
  222.   @repeat.object_id,  @release.object_id, @dirs.object_id)
  223.   
  224.   LEFT = 37
  225.   UP = 38
  226.   RIGHT = 39
  227.   DOWN = 40
  228.   A = [160, 161]
  229.   B = [27, 88, 96]
  230.   C = [13, 32, 90]
  231.   X = 65
  232.   Y = 83
  233.   Z = 68
  234.   L = 81
  235.   R = 87
  236.   SHIFT = 16
  237.   CTRL = 17
  238.   ALT = 18
  239.   F5 = 116
  240.   F6 = 117
  241.   F7 = 118
  242.   F8 = 119
  243.   F9 = 120
  244.   
  245.   def self.update
  246.     InputUpdate.call
  247.   end
  248.   
  249.   def self.trigger?(id)
  250.     @trigger.indexes(*id.to_a).include?(true)
  251.   end
  252.   
  253.   def self.press?(id)
  254.     @press.indexes(*id.to_a).include?(true)
  255.   end
  256.   
  257.   def self.triggerd?(what)
  258.     if triggered.include?(what)
  259.       return true
  260.     end
  261.   end
  262.   
  263.   def self.triggered
  264.     array = Array.new
  265.     @trigger.each_index {|i| array.push(i) if @trigger[i]}
  266.     array
  267.   end
  268.   
  269.   def self.pressed?(what)
  270.     if pressed.include?(what)
  271.       return true
  272.     end
  273.   end
  274.   
  275.   def self.pressed
  276.     array = Array.new
  277.     @press.each_index {|i| array.push(i) if @press[i]}
  278.     array
  279.   end
  280.   
  281.   def self.repeat?(id)
  282.     @repeat.indexes(*id.to_a).include?(true)
  283.   end
  284.   
  285.   def self.repeated
  286.     array = Array.new
  287.     @repeat.each_index {|i| array.push(i) if @repeat[i]}
  288.     array
  289.   end
  290.   
  291.   def self.release?(id)
  292.     @release.indexes(*id.to_a).include?(true)
  293.   end
  294.   
  295.   def self.released
  296.     array = Array.new
  297.     @release.each_index {|i| array.push(i) if @release[i]}
  298.     array
  299.   end
  300.   
  301.   def self.dir4
  302.     return 2 if self.pressed?(DOWN)
  303.     return 4 if self.pressed?(LEFT)
  304.     return 6 if self.pressed?(RIGHT)
  305.     return 8 if self.pressed?(UP)
  306.     return 0
  307.   end
  308.   
  309.   def self.dir8
  310.     if self.pressed?(UP)
  311.       return 9 if self.pressed?(RIGHT)
  312.       return 7 if self.pressed?(LEFT)
  313.       return 8
  314.     end
  315.     if self.pressed?(DOWN)
  316.       return 3 if self.pressed?(RIGHT)
  317.       return 1 if self.pressed?(LEFT)
  318.       return 2
  319.     end
  320.     return 6 if self.pressed?(RIGHT)
  321.     return 4 if self.pressed?(LEFT)
  322.     return 0
  323.   end
  324.   
  325. end

  326. #------------------------------------------------------------------------------
  327. =begin
  328. loop do
  329.   Input.update
  330.   for i in 0...256
  331.     next unless Input.trigger?(i)
  332.     p i
  333.   end
  334. end
  335. =end
复制代码

作者: 仲秋启明    时间: 2011-7-20 13:07
RPGmaster 发表于 2011-7-17 21:48
嗯……我知道了……放在我的游戏里就不行…
应该是脚本问题吧
这个:

调用方法:Input.trigger?(Keys::R)   按下键盘上的R键




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