Project1
标题:
自己寫的腳本有一個地方解決不了
[打印本页]
作者:
henbas
时间:
2008-6-28 06:30
标题:
自己寫的腳本有一個地方解決不了
我重寫了Input模組
以下是部分內容
C = [KEY_C, KEY_ENTER, KEY_SPACE]
@keyboardState = Win32API.new("user32", "GetAsyncKeyState", ['I'], 'I')
@key = 0
@keysTrigger = []
#--------------------------------------------------------------------------
# ● 判斷是否重新按下某按鍵
# key : 按鍵值
#--------------------------------------------------------------------------
def self.trigger?(keys)
keys.to_a.each do |@key|
next if @keyboardState.call(@key) == 0
if @keysTrigger.include?(@key)
return false
else
@keysTrigger.push(@key)
return true
end
end
@keysTrigger.delete(@key)
return false
end
复制代码
現在使用
if Input::trigger?(Input::C)
(中間要做的事情)
end
复制代码
例如預設選單也是如此
不過按下C在按下SPACE後就會出現只能按下SPACE
而C、ENTER都不能使用(無效)
請問各位大大應該如何修正? [LINE]1,#dddddd[/LINE]
此贴于 2008-8-7 14:12:48 被版主火鸡三毛老大提醒,请楼主看到后对本贴做出回应。
[LINE]1,#dddddd[/LINE]
此贴于 2008-8-10 0:59:55 被版主火鸡三毛老大提醒,请楼主看到后对本贴做出回应。
作者:
雪流星
时间:
2008-6-28 07:27
在这行上面
@keysTrigger.delete(@key)
用p测试一下 @key
怀疑是这里出了错
作者:
henbas
时间:
2008-6-28 08:27
到特技畫面時候
32 88 83 65
這四個值重複(不知道哪個開始...)
32 => SPACE
88 => X
83 => S
65 => A
我按ENTER(進入遊戲)->X(進入選單)->下->C(進入選擇角色特技)->C(進入角色特技畫面)鈕
不過再回來就會沒辦法判斷C、SPACE、ENTER(只有SPACE能夠用)
而我發現一開始定義
C = [KEY_C, KEY_ENTER, KEY_SPACE]
复制代码
如果順序改變
會只有最後一個有效
例如
C = [KEY_ENTER, KEY_SPACE, KEY_C]
复制代码
那麼就只有按下C有效了
作者:
雪流星
时间:
2008-6-28 08:55
如果是只有最後一個有效
那應該是循環判斷中出了問題
如果是API設定上出了問題,那我就幫不了你了
我對API所知有限
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1