Project1

标题: 自由设置键盘键,但是脚本太长了,想要化简 [打印本页]

作者: 1091160905    时间: 2013-10-19 11:50
标题: 自由设置键盘键,但是脚本太长了,想要化简
本帖最后由 1091160905 于 2013-10-19 12:05 编辑

       之前玩了一个脚本整合,受到网游的启发,打算设置出快捷键,按Q是任务,K技能,C人物属性,I、B物品之类的,
  1. class Scene_Map
  2.    GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')
  3.   alias keyboard update
  4.   def update
  5.     keyboard
  6.     if    GetKeyState.call(0x42) & 0x01 == 1 || GetKeyState.call(0x49) & 0x01 == 1  #分别是 B、I键
  7.           SceneManager.call(Scene_Item)                                             #物品
  8.     elsif GetKeyState.call(0x43) & 0x01 == 1                                        #C键
  9.           SceneManager.call(Scene_Status)                                           #人物属性
  10.     elsif GetKeyState.call(0x4B) & 0x01 == 1                                        #K键
  11.           SceneManager.call(Scene_Skill)                                            #技能
  12. #    elsif GetKeyState.call(0x4C) & 0x01 == 1                                        #L键
  13. #          SceneManager.call(Scene_List)                                             #怪物图鉴,因为原装没有,所以注释掉了
  14. #    elsif GetKeyState.call(0x4D) & 0x01 == 1 || GetKeyState.call(0x4E) & 0x01 == 1  #分别是 M、N键
  15. #          SceneManager.call(Scene_Teleport)                                         #地图传送,因为原装没有,所以注释掉了
  16. #    elsif GetKeyState.call(0x51) & 0x01 == 1                                        #Q键
  17. #          SceneManager.call(Scene_QuestList)                                        #任务 ,因为原装没有,所以注释掉了
  18.     elsif GetKeyState.call(0x7A) & 0x01 == 1                                        #F11
  19.           SceneManager.call(Scene_Save)                                             #存档
  20.     elsif GetKeyState.call(0x7B) & 0x01 == 1                                        #F12
  21.           exit                                                                      #强制退出,专门针对家长,不过不会存档,最大的遗憾
  22.     end
  23.   end
  24. 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