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

Project1

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

如何在不移动鼠标的情况下自动禁用鼠标?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2008-8-10
帖子
243
跳转到指定楼层
1
发表于 2008-9-21 01:52:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
鼠标在没有使用的情况下老是自己碰到别的光标时候总是要跟键盘抢光标!应该如何解决这个问题呢?有没有什么办法让鼠标暂时禁用?
版务信息:版主帮忙结贴~
哎!要完成这个游戏肯定要使用很多脚本和素材!我想把小樱的动画变成游戏!我相信这并不是不可能的事!

Lv1.梦旅人

梦石
0
星屑
50
在线时间
192 小时
注册时间
2007-7-14
帖子
2746
2
发表于 2008-9-21 01:55:57 | 只看该作者
鼠标脚本选项页的滚动
http://rpg.blue/web/htm/news1021.htm

看下~~~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

辉瑞中国首席研究员<

梦石
0
星屑
50
在线时间
142 小时
注册时间
2008-1-18
帖子
2129
3
发表于 2008-9-21 03:29:05 | 只看该作者
屏蔽按键请改下面

module Input
  if @self_update == nil
    @self_update = method('update')
    @self_press = method('press?')
    @self_trigger = method('trigger?')
    @self_repeat = method('repeat?')
  end
  def self.update
    @self_update.call
    Mouse.update
  end
  def self.press?(key_code)
    if @self_press.call(key_code)
      return true
    end
    if key_code == C
      return Mouse.press?(Mouse::LEFT)
    elsif key_code == B
      return Mouse.press?(Mouse::RIGHT)
    else
      return @self_press.call(key_code)
    end
  end
  def self.trigger?(key_code)
    if @self_trigger.call(key_code)
      return true
    end
    if key_code == C
      return Mouse.trigger?(Mouse::LEFT)
    elsif key_code == B  
      return Mouse.trigger?(Mouse::RIGHT)
    else
      return @self_trigger.call(key_code)
    end
  end
  def self.repeat?(key_code)
    if @self_repeat.call(key_code)
      return true
    end
    if key_code == C
     return Mouse.repeat?(Mouse::LEFT)
    elsif key_code == B
      return Mouse.repeat?(Mouse::RIGHT)
    else
      return @self_repeat.call(key_code)
    end
  end
end


在着这加句判断
if key_code == C


刷新光标

class Window_Selectable
  if @self_alias == nil
    alias self_update update
    @self_alias = true
  end
  def update
    #self.cursor_rect.empty
    self_update
    if self.active and @item_max > 0
      index_var = @index
      tp_index = @index
      mouse_x, mouse_y = Mouse.get_mouse_pos
      mouse_not_in_rect = true
      for i in 0...@item_max
        @index = i
        update_cursor_rect
        top_x = self.cursor_rect.x + self.x + 16
        top_y = self.cursor_rect.y + self.y + 16
        bottom_x = top_x + self.cursor_rect.width
        bottom_y = top_y + self.cursor_rect.height
        if (mouse_x > top_x) and (mouse_y > top_y) and
           (mouse_x < bottom_x) and (mouse_y < bottom_y)
          mouse_not_in_rect = false
          if tp_index != @index
            tp_index = @index
            $game_system.se_play($data_system.cursor_se)
          end
          break
        end
      end
      if mouse_not_in_rect
        @index = index_var
        update_cursor_rect
        Mouse.click_lock
      else
        Mouse.click_unlock               
      end
    end
  end
end

把update_cursor_rect这句用个IF来判断一下

自动禁用的话,可以用变量记录上一次的mouse_pos
如果不动就不刷新


系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
来6r就是等某位仁兄的巨坑

褴褛着身行无端,囊中羞涩空心酸。
平生几无得意事,倒塔泡面宅寝室。
惟羡隔壁高帅富,雨露春风月夜声。
青丝无处觅其踪,只有硬盘苍井空。
莫云男儿空悲愁,鸿鹄岂不天际游。
坐断天下执鹿首,千百金帛万兜鍪。
夜深忽梦某年月,再见女神欲语迟。
吊丝终有逆袭日,木耳再无回粉时。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2008-8-10
帖子
243
4
 楼主| 发表于 2008-9-21 04:19:10 | 只看该作者
以下引用dbshy于2008-9-20 19:29:05的发言:

屏蔽按键请改下面

module Input
if @self_update == nil
   @self_update = method('update')
   @self_press = method('press?')
   @self_trigger = method('trigger?')
   @self_repeat = method('repeat?')
end
def self.update
   @self_update.call
   Mouse.update
end
def self.press?(key_code)
   if @self_press.call(key_code)
     return true
   end
   if key_code == C
     return Mouse.press?(Mouse::LEFT)
   elsif key_code == B
     return Mouse.press?(Mouse::RIGHT)
   else
     return @self_press.call(key_code)
   end
end
def self.trigger?(key_code)
   if @self_trigger.call(key_code)
     return true
   end
   if key_code == C
     return Mouse.trigger?(Mouse::LEFT)
   elsif key_code == B  
     return Mouse.trigger?(Mouse::RIGHT)
   else
     return @self_trigger.call(key_code)
   end
end
def self.repeat?(key_code)
   if @self_repeat.call(key_code)
     return true
   end
   if key_code == C
    return Mouse.repeat?(Mouse::LEFT)
   elsif key_code == B
     return Mouse.repeat?(Mouse::RIGHT)
   else
     return @self_repeat.call(key_code)
   end
end
end


在着这加句判断
if key_code == C


刷新光标

class Window_Selectable
if @self_alias == nil
   alias self_update update
   @self_alias = true
end
def update
   #self.cursor_rect.empty
   self_update
   if self.active and @item_max > 0
     index_var = @index
     tp_index = @index
     mouse_x, mouse_y = Mouse.get_mouse_pos
     mouse_not_in_rect = true
     for i in 0...@item_max
       @index = i
       update_cursor_rect
       top_x = self.cursor_rect.x + self.x + 16
       top_y = self.cursor_rect.y + self.y + 16
       bottom_x = top_x + self.cursor_rect.width
       bottom_y = top_y + self.cursor_rect.height
       if (mouse_x > top_x) and (mouse_y > top_y) and
          (mouse_x < bottom_x) and (mouse_y < bottom_y)
         mouse_not_in_rect = false
         if tp_index != @index
           tp_index = @index
           $game_system.se_play($data_system.cursor_se)
         end
         break
       end
     end
     if mouse_not_in_rect
       @index = index_var
       update_cursor_rect
       Mouse.click_lock
     else
       Mouse.click_unlock               
     end
   end
end
end

把update_cursor_rect这句用个IF来判断一下

自动禁用的话,可以用变量记录上一次的mouse_pos
如果不动就不刷新




[本贴由作者于 2008-9-20 19:49:24 最后编辑]


老大!看不懂!郁闷中……需要售后服务!谢谢!{/hx}
哎!要完成这个游戏肯定要使用很多脚本和素材!我想把小樱的动画变成游戏!我相信这并不是不可能的事!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2008-8-10
帖子
243
5
 楼主| 发表于 2008-9-23 05:50:54 | 只看该作者
老大!我研究不出来啊!bug满天飞!再找个高手帮我看看吧
哎!要完成这个游戏肯定要使用很多脚本和素材!我想把小樱的动画变成游戏!我相信这并不是不可能的事!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2008-8-10
帖子
243
6
 楼主| 发表于 2008-9-23 08:39:14 | 只看该作者
ok!搞定了!不过还是有点问题!鼠标被禁用后光标还是不听话自动跑掉一次!{/jy}怎么会这样
哎!要完成这个游戏肯定要使用很多脚本和素材!我想把小樱的动画变成游戏!我相信这并不是不可能的事!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-24 02:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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