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

Project1

 找回密码
 注册会员
搜索
查看: 1780|回复: 3
打印 上一主题 下一主题

[已经解决] 怎么找不到快捷建呼出存档,物品等的脚本了?

[复制链接]

Lv1.梦旅人

幻想天神

梦石
0
星屑
55
在线时间
166 小时
注册时间
2012-3-24
帖子
404
跳转到指定楼层
1
发表于 2012-5-4 19:32:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给那个脚本。。
比如:点K建进入存档,Z建进入物品

Lv1.梦旅人

梦石
0
星屑
49
在线时间
186 小时
注册时间
2012-5-8
帖子
987
4
发表于 2012-5-12 12:30:41 | 只看该作者
楼上正解,按键可以自己调整。
看什么看,没看过大坑啊!
-------------------------炫翼-----------------------------
剧情:4%
地图:2%
系统:7%
优化:3%
脚本:25%
--------------------------炫翼----------------------------

      工作室


广告位招租....  
回复

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3185
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

3
发表于 2012-5-4 19:45:44 | 只看该作者
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================
  4. #
  5. #  全键盘
  6. # ★、Kboard.press?(键位)  返回是否按下这个键的判断。
  7. #     比如条件分歧:Kboard.keyboard($R_Key_H)
  8. #                   则当按下键盘H键的时候条件分歧成立
  9. #
  10. # ★、Kboard.repeat?(键位) == 1 当连续按住某键返回真,否则为false
  11. #     比如条件分歧:Kboard.keyb($R_Key_U) == 1
  12. #                   则当持续按下键盘U的时候条件分歧成立
  13. #
  14. # ★、Kboard.trigger?(键位,1) 似乎可以做开关用。按下一次变为true,再按变false
  15. #  修改:夏娜
  16. #
  17. #============================================================================

  18. module Kboard
  19.   #==========================================================================
  20.   # 以下是全键盘按键列表
  21.   #--------------------------------------------------------------------------
  22.   $Rmouse_BUTTON_L = 0x01        # left mouse button
  23.   $Rmouse_BUTTON_R = 0x02        # right mouse button
  24.   $Rmouse_BUTTON_M = 0x04        # middle mouse button
  25.   $Rmouse_BUTTON_4 = 0x05        # 4th mouse button
  26.   $Rmouse_BUTTON_5 = 0x06        # 5th mouse button
  27.   #--------------------------------------------------------------------------
  28.   $R_Key_BACK      = 0x08        # BACKSPACE key
  29.   $R_Key_TAB       = 0x09        # TAB key
  30.   $R_Key_RETURN    = 0x0D        # ENTER key
  31.   $R_Key_SHIFT     = 0x10        # SHIFT key
  32.   $R_Key_CTLR      = 0x11        # CTLR key
  33.   $R_Key_ALT       = 0x12        # ALT key
  34.   $R_Key_PAUSE     = 0x13        # PAUSE key
  35.   $R_Key_CAPITAL   = 0x14        # CAPS LOCK key
  36.   $R_Key_ESCAPE    = 0x1B        # ESC key
  37.   $R_Key_SPACE     = 0x20        # SPACEBAR
  38.   $R_Key_PRIOR     = 0x21        # PAGE UP key
  39.   $R_Key_NEXT      = 0x22        # PAGE DOWN key
  40.   $R_Key_END       = 0x23        # END key
  41.   $R_Key_HOME      = 0x24        # HOME key
  42.   $R_Key_LEFT      = 0x25        # LEFT ARROW key
  43.   $R_Key_UP        = 0x26        # UP ARROW key
  44.   $R_Key_RIGHT     = 0x27        # RIGHT ARROW key
  45.   $R_Key_DOWN      = 0x28        # DOWN ARROW key
  46.   $R_Key_SELECT    = 0x29        # SELECT key
  47.   $R_Key_PRINT     = 0x2A        # PRINT key
  48.   $R_Key_SNAPSHOT  = 0x2C        # PRINT SCREEN key
  49.   $R_Key_INSERT    = 0x2D        # INS key
  50.   $R_Key_DELETE    = 0x2E        # DEL key
  51.   #--------------------------------------------------------------------------
  52.   $R_Key_0         = 0x30        # 0 key
  53.   $R_Key_1         = 0x31        # 1 key
  54.   $R_Key_2         = 0x32        # 2 key
  55.   $R_Key_3         = 0x33        # 3 key
  56.   $R_Key_4         = 0x34        # 4 key
  57.   $R_Key_5         = 0x35        # 5 key
  58.   $R_Key_6         = 0x36        # 6 key
  59.   $R_Key_7         = 0x37        # 7 key
  60.   $R_Key_8         = 0x38        # 8 key
  61.   $R_Key_9         = 0x39        # 9 key
  62.   #--------------------------------------------------------------------------
  63.   $R_Key_A         = 0x41        # A key
  64.   $R_Key_B         = 0x42        # B key
  65.   $R_Key_C         = 0x43        # C key
  66.   $R_Key_D         = 0x44        # D key
  67.   $R_Key_E         = 0x45        # E key
  68.   $R_Key_F         = 0x46        # F key
  69.   $R_Key_G         = 0x47        # G key
  70.   $R_Key_H         = 0x48        # H key
  71.   $R_Key_I         = 0x49        # I key
  72.   $R_Key_J         = 0x4A        # J key
  73.   $R_Key_K         = 0x4B        # K key
  74.   $R_Key_L         = 0x4C        # L key
  75.   $R_Key_M         = 0x4D        # M key
  76.   $R_Key_N         = 0x4E        # N key
  77.   $R_Key_O         = 0x4F        # O key
  78.   $R_Key_P         = 0x50        # P key
  79.   $R_Key_Q         = 0x51        # Q key
  80.   $R_Key_R         = 0x52        # R key
  81.   $R_Key_S         = 0x53        # S key
  82.   $R_Key_T         = 0x54        # T key
  83.   $R_Key_U         = 0x55        # U key
  84.   $R_Key_V         = 0x56        # V key
  85.   $R_Key_W         = 0x57        # W key
  86.   $R_Key_X         = 0x58        # X key
  87.   $R_Key_Y         = 0x59        # Y key
  88.   $R_Key_Z         = 0x5A        # Z key
  89.   #--------------------------------------------------------------------------
  90.   $R_Key_LWIN      = 0x5B        # Left Windows key (Microsoft Natural keyboard)
  91.   $R_Key_RWIN      = 0x5C        # Right Windows key (Natural keyboard)
  92.   $R_Key_APPS      = 0x5D        # Applications key (Natural keyboard)
  93.   #--------------------------------------------------------------------------
  94.   $R_Key_NUMPAD0   = 0x60        # Numeric keypad 0 key
  95.   $R_Key_NUMPAD1   = 0x61        # Numeric keypad 1 key
  96.   $R_Key_NUMPAD2   = 0x62        # Numeric keypad 2 key
  97.   $R_Key_NUMPAD3   = 0x63        # Numeric keypad 3 key
  98.   $R_Key_NUMPAD4   = 0x64        # Numeric keypad 4 key
  99.   $R_Key_NUMPAD5   = 0x65        # Numeric keypad 5 key
  100.   $R_Key_NUMPAD6   = 0x66        # Numeric keypad 6 key
  101.   $R_Key_NUMPAD7   = 0x67        # Numeric keypad 7 key
  102.   $R_Key_NUMPAD8   = 0x68        # Numeric keypad 8 key
  103.   $R_Key_NUMPAD9   = 0x69        # Numeric keypad 9 key
  104.   $R_Key_MULTIPLY  = 0x6A        # Multiply key (*)
  105.   $R_Key_ADD       = 0x6B        # Add key (+)
  106.   $R_Key_SEPARATOR = 0x6C        # Separator key
  107.   $R_Key_SUBTRACT  = 0x6D        # Subtract key (-)
  108.   $R_Key_DECIMAL   = 0x6E        # Decimal key
  109.   $R_Key_DIVIDE    = 0x6F        # Divide key (/)
  110.   #--------------------------------------------------------------------------
  111.   $R_Key_F1        = 0x70        # F1 key
  112.   $R_Key_F2        = 0x71        # F2 key
  113.   $R_Key_F3        = 0x72        # F3 key
  114.   $R_Key_F4        = 0x73        # F4 key
  115.   $R_Key_F5        = 0x74        # F5 key
  116.   $R_Key_F6        = 0x75        # F6 key
  117.   $R_Key_F7        = 0x76        # F7 key
  118.   $R_Key_F8        = 0x77        # F8 key
  119.   $R_Key_F9        = 0x78        # F9 key
  120.   $R_Key_F10       = 0x79        # F10 key
  121.   $R_Key_F11       = 0x7A        # F11 key
  122.   $R_Key_F12       = 0x7B        # F12 key
  123.   #--------------------------------------------------------------------------
  124.   $R_Key_NUMLOCK   = 0x90        # NUM LOCK key
  125.   $R_Key_SCROLL    = 0x91        # SCROLL LOCK key
  126.   #--------------------------------------------------------------------------
  127.   $R_Key_LSHIFT    = 0xA0        # Left SHIFT key
  128.   $R_Key_RSHIFT    = 0xA1        # Right SHIFT key
  129.   $R_Key_LCONTROL  = 0xA2        # Left CONTROL key
  130.   $R_Key_RCONTROL  = 0xA3        # Right CONTROL key
  131.   $R_Key_L_ALT    = 0xA4        # Left ALT key
  132.   $R_Key_R_ALT    = 0xA5        # Right ALT key
  133.   #--------------------------------------------------------------------------
  134.   $R_Key_SEP      = 0xBC        # , key
  135.   $R_Key_DASH      = 0xBD        # - key
  136.   $R_Key_DOTT      = 0xBE        # . Key
  137.   
  138.   
  139.   
  140. module_function

  141. @R_Key_Hash = {}
  142. @R_Key_Repeat = {}

  143. GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')

  144. def press?(rkey)
  145.    return GetKeyState.call(rkey) != 0
  146. end

  147. def repeat?(rkey)
  148.    result = GetKeyState.call(rkey)
  149.    if result != 0
  150.      if @R_Key_Repeat[rkey].nil?
  151.        @R_Key_Repeat[rkey] = 0
  152.        return true
  153.      end
  154.      @R_Key_Repeat[rkey] += 1
  155.    else
  156.      @R_Key_Repeat[rkey] = nil
  157.      @R_Key_Hash[rkey] = 0
  158.    end
  159.    if !@R_Key_Repeat[rkey].nil? and @R_Key_Repeat[rkey] > 4 # 4乃准确数字
  160.      @R_Key_Repeat[rkey] = 0
  161.      return true
  162.    else
  163.      return false
  164.    end
  165. end

  166. def trigger?(rkey)
  167.    result = GetKeyState.call(rkey)
  168.    if @R_Key_Hash[rkey] == 1 and result != 0
  169.      return false
  170.    end
  171.    if result != 0
  172.      @R_Key_Hash[rkey] = 1
  173.      return true
  174.    else
  175.      @R_Key_Hash[rkey] = 0
  176.      return false
  177.    end
  178. end

  179. end

  180. #==============================================================================
  181. # ■ Scene_Save
  182. #------------------------------------------------------------------------------
  183. #  处理存档画面的类。
  184. #==============================================================================

  185. class Scene_Save2 < Scene_File
  186.   #--------------------------------------------------------------------------
  187.   # ● 初始化对像
  188.   #--------------------------------------------------------------------------
  189.   def initialize
  190.     super("要保存到这个文件吗?")
  191.   end
  192.   #--------------------------------------------------------------------------
  193.   # ● 确定时的处理
  194.   #--------------------------------------------------------------------------
  195.   def on_decision(filename)
  196.     # 演奏存档 SE
  197.     $game_system.se_play($data_system.save_se)
  198.     # 写入存档数据
  199.     file = File.open(filename, "wb")
  200.     write_save_data(file)
  201.     file.close
  202.     # 如果被事件调用
  203.     if $game_temp.save_calling
  204.       # 清除存档调用标志
  205.       $game_temp.save_calling = false
  206.       # 切换到地图画面
  207.       $scene = Scene_Map.new
  208.       return
  209.     end
  210.     # 切换到菜单画面
  211.     $scene = Scene_Menu.new(4)
  212.   end
  213.   #--------------------------------------------------------------------------
  214.   # ● 取消时的处理
  215.   #--------------------------------------------------------------------------
  216.   def on_cancel
  217.     # 演奏取消 SE
  218.     $game_system.se_play($data_system.cancel_se)
  219.     # 如果被事件调用
  220.     if $game_temp.save_calling
  221.       # 清除存档调用标志
  222.       $game_temp.save_calling = false
  223.       # 切换到地图画面
  224.       $scene = Scene_Map.new
  225.       return
  226.     end
  227.     # 切换到菜单画面
  228.     $scene = Scene_Map.new
  229.   end
  230.   #--------------------------------------------------------------------------
  231.   # ● 写入存档数据
  232.   #     file : 写入用文件对像 (已经打开)
  233.   #--------------------------------------------------------------------------
  234.   def write_save_data(file)
  235.     # 生成描绘存档文件用的角色图形
  236.     characters = []
  237.     for i in 0...$game_party.actors.size
  238.       actor = $game_party.actors[i]
  239.       characters.push([actor.character_name, actor.character_hue])
  240.     end
  241.     # 写入描绘存档文件用的角色数据
  242.     Marshal.dump(characters, file)
  243.     # 写入测量游戏时间用画面计数
  244.     Marshal.dump(Graphics.frame_count, file)
  245.     # 增加 1 次存档次数
  246.     $game_system.save_count += 1
  247.     # 保存魔法编号
  248.     # (将编辑器保存的值以随机值替换)
  249.     $game_system.magic_number = $data_system.magic_number
  250.     # 写入各种游戏对像
  251.     Marshal.dump($game_system, file)
  252.     Marshal.dump($game_switches, file)
  253.     Marshal.dump($game_variables, file)
  254.     Marshal.dump($game_self_switches, file)
  255.     Marshal.dump($game_screen, file)
  256.     Marshal.dump($game_actors, file)
  257.     Marshal.dump($game_party, file)
  258.     Marshal.dump($game_troop, file)
  259.     Marshal.dump($game_map, file)
  260.     Marshal.dump($game_player, file)
  261.   end
  262. end

  263. #==============================================================================
  264. # ■ Scene_Item
  265. #------------------------------------------------------------------------------
  266. #  处理物品画面的类。
  267. #==============================================================================

  268. class Scene_Item2
  269.   #--------------------------------------------------------------------------
  270.   # ● 主处理
  271.   #--------------------------------------------------------------------------
  272.   def main
  273.     # 生成帮助窗口、物品窗口
  274.     @help_window = Window_Help.new
  275.     @item_window = Window_Item.new
  276.     # 关联帮助窗口
  277.     @item_window.help_window = @help_window
  278.     # 生成目标窗口 (设置为不可见・不活动)
  279.     @target_window = Window_Target.new
  280.     @target_window.visible = false
  281.     @target_window.active = false
  282.     # 执行过度
  283.     Graphics.transition
  284.     # 主循环
  285.     loop do
  286.       # 刷新游戏画面
  287.       Graphics.update
  288.       # 刷新输入信息
  289.       Input.update
  290.       # 刷新画面
  291.       update
  292.       # 如果画面切换就中断循环
  293.       if $scene != self
  294.         break
  295.       end
  296.     end
  297.     # 装备过渡
  298.     Graphics.freeze
  299.     # 释放窗口
  300.     @help_window.dispose
  301.     @item_window.dispose
  302.     @target_window.dispose
  303.   end
  304.   #--------------------------------------------------------------------------
  305.   # ● 刷新画面
  306.   #--------------------------------------------------------------------------
  307.   def update
  308.     # 刷新窗口
  309.     @help_window.update
  310.     @item_window.update
  311.     @target_window.update
  312.     # 物品窗口被激活的情况下: 调用 update_item
  313.     if @item_window.active
  314.       update_item
  315.       return
  316.     end
  317.     # 目标窗口被激活的情况下: 调用 update_target
  318.     if @target_window.active
  319.       update_target
  320.       return
  321.     end
  322.   end
  323.   #--------------------------------------------------------------------------
  324.   # ● 刷新画面 (物品窗口被激活的情况下)
  325.   #--------------------------------------------------------------------------
  326.   def update_item
  327.     # 按下 B 键的情况下
  328.     if Input.trigger?(Input::B)
  329.       # 演奏取消 SE
  330.       $game_system.se_play($data_system.cancel_se)
  331.       # 切换到菜单画面
  332.       $scene = Scene_Map.new
  333.       return
  334.     end
  335.     # 按下 C 键的情况下
  336.     if Input.trigger?(Input::C)
  337.       # 获取物品窗口当前选中的物品数据
  338.       @item = @item_window.item
  339.       # 不使用物品的情况下
  340.       unless @item.is_a?(RPG::Item)
  341.         # 演奏冻结 SE
  342.         $game_system.se_play($data_system.buzzer_se)
  343.         return
  344.       end
  345.       # 不能使用的情况下
  346.       unless $game_party.item_can_use?(@item.id)
  347.         # 演奏冻结 SE
  348.         $game_system.se_play($data_system.buzzer_se)
  349.         return
  350.       end
  351.       # 演奏确定 SE
  352.       $game_system.se_play($data_system.decision_se)
  353.       # 效果范围是我方的情况下
  354.       if @item.scope >= 3
  355.         # 激活目标窗口
  356.         @item_window.active = false
  357.         @target_window.x = (@item_window.index + 1) % 2 * 304
  358.         @target_window.visible = true
  359.         @target_window.active = true
  360.         # 设置效果范围 (单体/全体) 的对应光标位置
  361.         if @item.scope == 4 || @item.scope == 6
  362.           @target_window.index = -1
  363.         else
  364.           @target_window.index = 0
  365.         end
  366.       # 效果在我方以外的情况下
  367.       else
  368.         # 公共事件 ID 有效的情况下
  369.         if @item.common_event_id > 0
  370.           # 预约调用公共事件
  371.           $game_temp.common_event_id = @item.common_event_id
  372.           # 演奏物品使用时的 SE
  373.           $game_system.se_play(@item.menu_se)
  374.           # 消耗品的情况下
  375.           if @item.consumable
  376.             # 使用的物品数减 1
  377.             $game_party.lose_item(@item.id, 1)
  378.             # 再描绘物品窗口的项目
  379.             @item_window.draw_item(@item_window.index)
  380.           end
  381.           # 切换到地图画面
  382.           $scene = Scene_Map.new
  383.           return
  384.         end
  385.       end
  386.       return
  387.     end
  388.   end
  389.   #--------------------------------------------------------------------------
  390.   # ● 刷新画面 (目标窗口被激活的情况下)
  391.   #--------------------------------------------------------------------------
  392.   def update_target
  393.     # 按下 B 键的情况下
  394.     if Input.trigger?(Input::B)
  395.       # 演奏取消 SE
  396.       $game_system.se_play($data_system.cancel_se)
  397.       # 由于物品用完而不能使用的场合
  398.       unless $game_party.item_can_use?(@item.id)
  399.         # 再次生成物品窗口的内容
  400.         @item_window.refresh
  401.       end
  402.       # 删除目标窗口
  403.       @item_window.active = true
  404.       @target_window.visible = false
  405.       @target_window.active = false
  406.       return
  407.     end
  408.     # 按下 C 键的情况下
  409.     if Input.trigger?(Input::C)
  410.       # 如果物品用完的情况下
  411.       if $game_party.item_number(@item.id) == 0
  412.         # 演奏冻结 SE
  413.         $game_system.se_play($data_system.buzzer_se)
  414.         return
  415.       end
  416.       # 目标是全体的情况下
  417.       if @target_window.index == -1
  418.         # 对同伴全体应用物品使用效果
  419.         used = false
  420.         for i in $game_party.actors
  421.           used |= i.item_effect(@item)
  422.         end
  423.       end
  424.       # 目标是单体的情况下
  425.       if @target_window.index >= 0
  426.         # 对目标角色应用物品的使用效果
  427.         target = $game_party.actors[@target_window.index]
  428.         used = target.item_effect(@item)
  429.       end
  430.       # 使用物品的情况下
  431.       if used
  432.         # 演奏物品使用时的 SE
  433.         $game_system.se_play(@item.menu_se)
  434.         # 消耗品的情况下
  435.         if @item.consumable
  436.           # 使用的物品数减 1
  437.           $game_party.lose_item(@item.id, 1)
  438.           # 再描绘物品窗口的项目
  439.           @item_window.draw_item(@item_window.index)
  440.         end
  441.         # 再生成目标窗口的内容
  442.         @target_window.refresh
  443.         # 全灭的情况下
  444.         if $game_party.all_dead?
  445.           # 切换到游戏结束画面
  446.           $scene = Scene_Gameover.new
  447.           return
  448.         end
  449.         # 公共事件 ID 有效的情况下
  450.         if @item.common_event_id > 0
  451.           # 预约调用公共事件
  452.           $game_temp.common_event_id = @item.common_event_id
  453.           # 切换到地图画面
  454.           $scene = Scene_Map.new
  455.           return
  456.         end
  457.       end
  458.       # 无法使用物品的情况下
  459.       unless used
  460.         # 演奏冻结 SE
  461.         $game_system.se_play($data_system.buzzer_se)
  462.       end
  463.       return
  464.     end
  465.   end
  466. end


  467. class Scene_Map
  468.   #--------------------------------------------------------------------------
  469.   # ● 刷新画面
  470.   #--------------------------------------------------------------------------
  471.   alias xy_Key_update update
  472.   def update
  473.     xy_Key_update
  474.     if Kboard.press?($R_Key_K)
  475.       $scene = Scene_Save2.new
  476.     end
  477.     if Kboard.press?($R_Key_Z)
  478.       $scene = Scene_Item2.new
  479.     end
  480.   end
  481. end
复制代码
应LZ要求,完全整理了脚本……
K打开存档,Z打开物品
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
2188 小时
注册时间
2011-6-23
帖子
1044
2
发表于 2012-5-4 19:37:35 | 只看该作者
本帖最后由 lsu666666 于 2012-5-4 19:37 编辑

套用全鍵盤腳本
可用事件或公共事件調用
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #============================================================================
  5. # ■ Keyboard Script
  6. #----------------------------------------------------------------------------
  7. #  By: Cybersam
  8. #   Date: 25/05/05
  9. #   Version 4
  10. #============================================================================
  11. # 66对此脚本使用方法的说明(可能不是很准确,反正大体能用):
  12. #
  13. # ★、Kboard.keyboard(键位)  返回是否按下这个键的判断。
  14. #     比如条件分歧:Kboard.keyboard($R_Key_H)$R_Key_NUMPAD1
  15. #                   则当按下键盘H键的时候条件分歧成立
  16. #
  17. # ★、Kboard.keyb(键位) 当连续按住某键返回真,否则为false
  18. #     比如条件分歧:Kboard.keyb($R_Key_U)
  19. #                   则当持续按下键盘U的时候条件分歧成立
  20. #
  21. # ★、Kboard.key(键位,1) 似乎可以做开关用。按下一次变为true,再按变false
  22. #============================================================================

  23. module Kboard
  24.   #==========================================================================
  25.   # 以下是全键盘按键列表
  26.   #--------------------------------------------------------------------------
  27.   $Rmouse_BUTTON_L = 0x01        # left mouse button
  28.   $Rmouse_BUTTON_R = 0x02        # right mouse button
  29.   $Rmouse_BUTTON_M = 0x04        # middle mouse button
  30.   $Rmouse_BUTTON_4 = 0x05        # 4th mouse button
  31.   $Rmouse_BUTTON_5 = 0x06        # 5th mouse button
  32.   #--------------------------------------------------------------------------
  33.   $R_Key_BACK      = 0x08        # BACKSPACE key
  34.   $R_Key_TAB       = 0x09        # TAB key
  35.   $R_Key_RETURN    = 0x0D        # ENTER key
  36.   $R_Key_SHIFT     = 0x10        # SHIFT key
  37.   $R_Key_CTLR      = 0x11        # CTLR key
  38.   $R_Key_ALT       = 0x12        # ALT key
  39.   $R_Key_PAUSE     = 0x13        # PAUSE key
  40.   $R_Key_CAPITAL   = 0x14        # CAPS LOCK key
  41.   $R_Key_ESCAPE    = 0x1B        # ESC key
  42.   $R_Key_SPACE     = 0x20        # SPACEBAR
  43.   $R_Key_PRIOR     = 0x21        # PAGE UP key
  44.   $R_Key_NEXT      = 0x22        # PAGE DOWN key
  45.   $R_Key_END       = 0x23        # END key
  46.   $R_Key_HOME      = 0x24        # HOME key
  47.   $R_Key_LEFT      = 0x25        # LEFT ARROW key
  48.   $R_Key_UP        = 0x26        # UP ARROW key
  49.   $R_Key_RIGHT     = 0x27        # RIGHT ARROW key
  50.   $R_Key_DOWN      = 0x28        # DOWN ARROW key
  51.   $R_Key_SELECT    = 0x29        # SELECT key
  52.   $R_Key_PRINT     = 0x2A        # PRINT key
  53.   $R_Key_BB        = 0x2B        # SELECT key
  54.   $R_Key_SNAPSHOT  = 0x2C        # PRINT SCREEN key
  55.   $R_Key_INSERT    = 0x2D        # INS key
  56.   $R_Key_DELETE    = 0x2E        # DEL key
  57.   #--------------------------------------------------------------------------
  58.   $R_Key_0         = 0x30        # 0 key
  59.   $R_Key_1         = 0x31        # 1 key
  60.   $R_Key_2         = 0x32        # 2 key
  61.   $R_Key_3         = 0x33        # 3 key
  62.   $R_Key_4         = 0x34        # 4 key
  63.   $R_Key_5         = 0x35        # 5 key
  64.   $R_Key_6         = 0x36        # 6 key
  65.   $R_Key_7         = 0x37        # 7 key
  66.   $R_Key_8         = 0x38        # 8 key
  67.   $R_Key_9         = 0x39        # 9 key
  68.   #--------------------------------------------------------------------------
  69.   $R_Key_A         = 0x41        # A key
  70.   $R_Key_B         = 0x42        # B key
  71.   $R_Key_C         = 0x43        # C key
  72.   $R_Key_D         = 0x44        # D key
  73.   $R_Key_E         = 0x45        # E key
  74.   $R_Key_F         = 0x46        # F key
  75.   $R_Key_G         = 0x47        # G key
  76.   $R_Key_H         = 0x48        # H key
  77.   $R_Key_I         = 0x49        # I key
  78.   $R_Key_J         = 0x4A        # J key
  79.   $R_Key_K         = 0x4B        # K key
  80.   $R_Key_L         = 0x4C        # L key
  81.   $R_Key_M         = 0x4D        # M key
  82.   $R_Key_N         = 0x4E        # N key
  83.   $R_Key_O         = 0x4F        # O key
  84.   $R_Key_P         = 0x50        # P key
  85.   $R_Key_Q         = 0x51        # Q key
  86.   $R_Key_R         = 0x52        # R key
  87.   $R_Key_S         = 0x53        # S key
  88.   $R_Key_T         = 0x54        # T key
  89.   $R_Key_U         = 0x55        # U key
  90.   $R_Key_V         = 0x56        # V key
  91.   $R_Key_W         = 0x57        # W key
  92.   $R_Key_X         = 0x58        # X key
  93.   $R_Key_Y         = 0x59        # Y key
  94.   $R_Key_Z         = 0x5A        # Z key
  95.   #--------------------------------------------------------------------------
  96.   $R_Key_LWIN      = 0x5B        # Left Windows key (Microsoft Natural keyboard)
  97.   $R_Key_RWIN      = 0x5C        # Right Windows key (Natural keyboard)
  98.   $R_Key_APPS      = 0x5D        # Applications key (Natural keyboard)
  99.   #--------------------------------------------------------------------------
  100.   $R_Key_NUMPAD0   = 0x60        # Numeric keypad 0 key
  101.   $R_Key_NUMPAD1   = 0x61        # Numeric keypad 1 key
  102.   $R_Key_NUMPAD2   = 0x62        # Numeric keypad 2 key
  103.   $R_Key_NUMPAD3   = 0x63        # Numeric keypad 3 key
  104.   $R_Key_NUMPAD4   = 0x64        # Numeric keypad 4 key
  105.   $R_Key_NUMPAD5   = 0x65        # Numeric keypad 5 key
  106.   $R_Key_NUMPAD6   = 0x66        # Numeric keypad 6 key
  107.   $R_Key_NUMPAD7   = 0x67        # Numeric keypad 7 key
  108.   $R_Key_NUMPAD8   = 0x68        # Numeric keypad 8 key
  109.   $R_Key_NUMPAD9  = 0x69        # Numeric keypad 9 key
  110.   $R_Key_MULTIPLY  = 0x6A        # Multiply key (*)
  111.   $R_Key_ADD       = 0x6B        # Add key (+)
  112.   $R_Key_SEPARATOR = 0x6C        # Separator key
  113.   $R_Key_SUBTRACT  = 0x6D        # Subtract key (-)
  114.   $R_Key_DECIMAL   = 0x6E        # Decimal key
  115.   $R_Key_DIVIDE    = 0x6F        # Divide key (/)
  116.   #--------------------------------------------------------------------------
  117.   $R_Key_F1        = 0x70        # F1 key
  118.   $R_Key_F2        = 0x71        # F2 key
  119.   $R_Key_F3        = 0x72        # F3 key
  120.   $R_Key_F4        = 0x73        # F4 key
  121.   $R_Key_F5        = 0x74        # F5 key
  122.   $R_Key_F6        = 0x75        # F6 key
  123.   $R_Key_F7        = 0x76        # F7 key
  124.   $R_Key_F8        = 0x77        # F8 key
  125.   $R_Key_F9        = 0x78        # F9 key
  126.   $R_Key_F10       = 0x79        # F10 key
  127.   $R_Key_F11       = 0x7A        # F11 key
  128.   $R_Key_F12       = 0x7B        # F12 key
  129.   #--------------------------------------------------------------------------
  130.   $R_Key_NUMLOCK   = 0x90        # NUM LOCK key
  131.   $R_Key_SCROLL    = 0x91        # SCROLL LOCK key
  132.   #--------------------------------------------------------------------------
  133.   $R_Key_LSHIFT    = 0xA0        # Left SHIFT key
  134.   $R_Key_RSHIFT    = 0xA1        # Right SHIFT key
  135.   $R_Key_LCONTROL  = 0xA2        # Left CONTROL key
  136.   $R_Key_RCONTROL  = 0xA3        # Right CONTROL key
  137.   $R_Key_L_ALT    = 0xA4        # Left ALT key
  138.   $R_Key_R_ALT    = 0xA5        # Right ALT key
  139.   #--------------------------------------------------------------------------
  140.   $R_Key_SEP      = 0xBC        # , key
  141.   $R_Key_DASH      = 0xBD        # - key
  142.   $R_Key_DOTT      = 0xBE        # . Key
  143.   #--------------------------------------------------------------------------
  144.   $R_Key_Hash = {}
  145.   $R_Key_Repeat = {}

  146.   GetKeyState = Win32API.new("user32","GetAsyncKeyState",['I'],'I')
  147.   #--------------------------------------------------------------------------
  148.   module_function
  149.   #--------------------------------------------------------------------------
  150.   def keyb(rkey)
  151.      if GetKeyState.call(rkey) != 0
  152.        return true
  153.      end
  154.      return false
  155.   end
  156.    #--------------------------------------------------------------------------
  157.   def keyboard(rkey)
  158.     result = GetKeyState.call(rkey)
  159.     if $R_Key_Hash[rkey] == 1 and result != 0
  160.       return false
  161.     end
  162.     if result != 0
  163.       $R_Key_Hash[rkey] = 1
  164.       return true
  165.     else
  166.       $R_Key_Hash[rkey] = 0
  167.       return false
  168.     end
  169.     #GetKeyState.call(rkey) & 0x01 == 1  #
  170.   end
  171.   #--------------------------------------------------------------------------
  172.   def key(rkey, key = 0)
  173.     GetKeyboardState.call(rkey) & 0x01 == key #
  174.   end
  175. end
复制代码
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 10:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表