查看: 3059|回复: 5

[已经解决] 自由设置键盘键,但是脚本太长了,想要化简

[复制链接]
梦石
0
星屑
55
在线时间
416 小时
注册时间
2012-11-30
回帖
146
发表于 2013-10-19 11:50:31 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 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 的方式写吗??


<object width="630" height="500" align="middle" id="reader" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" classid="clsid:d27cdb6e-ae6d-11cf-96b8-44455354000
梦石
0
星屑
275
在线时间
1373 小时
注册时间
2005-10-16
回帖
5038

贵宾

发表于 2013-10-19 12:04:49 | 显示全部楼层
这个是主动检测某个键是否被按下,换成case的话,你要被动的得知现在哪个键按下去了,而检测哪个键按下去的方法里,还是依次检测每个键是否被按下…

个人觉得是这样的……也不知道对不对呢。。。

点评

我是脚本白,懂得没那么多。。。。。。  发表于 2013-10-19 12:09
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

梦石
0
星屑
3348
在线时间
1120 小时
注册时间
2009-4-15
回帖
761
发表于 2013-10-19 12:12:55 | 显示全部楼层
不可以。
回复

使用道具 举报

百合控

梦石
0
星屑
6548
在线时间
1275 小时
注册时间
2013-8-21
回帖
3522

开拓者

发表于 2013-10-19 17:27:24 | 显示全部楼层
判定条件依据不同 不可以
萌新瑟瑟发抖
看到我请叫我去干活
回复

使用道具 举报

梦石
0
星屑
50
在线时间
49 小时
注册时间
2013-7-7
回帖
28
发表于 2013-10-27 18:44:43 | 显示全部楼层
我的游戏可以用你的脚本哦!
回复

使用道具 举报

梦石
0
星屑
803
在线时间
2068 小时
注册时间
2011-10-3
回帖
1620
发表于 2013-10-29 10:46:13 | 显示全部楼层
才24行?也没多长啊
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部