Project1
标题:
自由设置键盘键,但是脚本太长了,想要化简
[打印本页]
作者:
1091160905
时间:
2013-10-19 11:50
标题:
自由设置键盘键,但是脚本太长了,想要化简
本帖最后由 1091160905 于 2013-10-19 12:05 编辑
之前玩了一个脚本整合,受到网游的启发,打算设置出快捷键,按Q是任务,K技能,C人物属性,I、B物品之类的,
class Scene_Map
GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')
alias keyboard update
def update
keyboard
if GetKeyState.call(0x42) & 0x01 == 1 || GetKeyState.call(0x49) & 0x01 == 1 #分别是 B、I键
SceneManager.call(Scene_Item) #物品
elsif GetKeyState.call(0x43) & 0x01 == 1 #C键
SceneManager.call(Scene_Status) #人物属性
elsif GetKeyState.call(0x4B) & 0x01 == 1 #K键
SceneManager.call(Scene_Skill) #技能
# elsif GetKeyState.call(0x4C) & 0x01 == 1 #L键
# SceneManager.call(Scene_List) #怪物图鉴,因为原装没有,所以注释掉了
# elsif GetKeyState.call(0x4D) & 0x01 == 1 || GetKeyState.call(0x4E) & 0x01 == 1 #分别是 M、N键
# SceneManager.call(Scene_Teleport) #地图传送,因为原装没有,所以注释掉了
# elsif GetKeyState.call(0x51) & 0x01 == 1 #Q键
# SceneManager.call(Scene_QuestList) #任务 ,因为原装没有,所以注释掉了
elsif GetKeyState.call(0x7A) & 0x01 == 1 #F11
SceneManager.call(Scene_Save) #存档
elsif GetKeyState.call(0x7B) & 0x01 == 1 #F12
exit #强制退出,专门针对家长,不过不会存档,最大的遗憾
end
end
end
复制代码
但是现在感觉挺复杂的,这个可以用 case ... when 的方式写吗??
作者:
亿万星辰
时间:
2013-10-19 12:04
这个是主动检测某个键是否被按下,换成case的话,你要被动的得知现在哪个键按下去了,而检测哪个键按下去的方法里,还是依次检测每个键是否被按下…
个人觉得是这样的……也不知道对不对呢。。。
作者:
tan12345
时间:
2013-10-19 12:12
不可以。
作者:
余烬之中
时间:
2013-10-19 17:27
判定条件依据不同 不可以
作者:
2532746721
时间:
2013-10-27 18:44
我的游戏可以用你的脚本哦!
作者:
布里蓝
时间:
2013-10-29 10:46
才24行?也没多长啊
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1