设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
Project1 查看内容

全键盘脚本 (夏娜改,优化)

2006-10-27 00:00| 发布者: 柳柳| 查看: 5829| 评论: 0|原作者: 夏娜

摘要:   作者 夏娜 版本 2006-10 相关网址 范例工程 无 教程内容 1、Kboard.press?(key) 同 Input.press?(key)2、Kboard.repeat?(key) 同 Input.repeat?(key)3、Kboard.trigger?(key) 同 Input.trigger?(key) module Kbo
 

作者

夏娜

版本

2006-10

相关网址

范例工程



教程内容

1、Kboard.press?(key) 同 Input.press?(key)
2、Kboard.repeat?(key) 同 Input.repeat?(key)
3、Kboard.trigger?(key) 同 Input.trigger?(key)


module Kboard

 module_function
 
 @R_Key_Hash = {}
 @R_Key_Repeat = {}
 
 GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')

 def press?(rkey)
   return GetKeyState.call(rkey) != 0
 end
 
 def repeat?(rkey)
   result = GetKeyState.call(rkey)
   if result != 0
     if @R_Key_Repeat[rkey].nil?
       @R_Key_Repeat[rkey] = 0
       return true
     end
     @R_Key_Repeat[rkey] += 1
   else
     @R_Key_Repeat[rkey] = nil
     @R_Key_Hash[rkey] = 0
   end
   if !@R_Key_Repeat[rkey].nil? and @R_Key_Repeat[rkey] > 4 # 4乃准确数字
     @R_Key_Repeat[rkey] = 0
     return true
   else
     return false
   end
 end
 
 def trigger?(rkey)
   result = GetKeyState.call(rkey)
   if @R_Key_Hash[rkey] == 1 and result != 0
     return false
   end
   if result != 0
     @R_Key_Hash[rkey] = 1
     return true
   else
     @R_Key_Hash[rkey] = 0
     return false
   end
 end
 
end

 


 

教程的通用说明

本站发布的教程,大多经过一些测试,应该都能够实现相应功能。但不保证所有的教程都是最优化的制作方法。

相关问题,点击发布贴进行讨论。谢谢您的鼓励与支持。

2

鲜花

刚表态过的朋友 (2 人)

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-29 04:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部