查看: 1173|回复: 0

[讨论] RGU 紫月亮240621.中使用鼠标方法 [补档]

[复制链接]
梦石
0
星屑
14720
在线时间
2175 小时
注册时间
2016-9-20
回帖
777
发表于 2025-3-1 22:27:52 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 ppspssss 于 2025-3-7 22:22 编辑

由于此贴为之前电脑有的草稿存档,被我找到出来,但注释的是没有存档,因而没注释 (发贴日期2024.8.14)
测试系统: windows7 64位 和 windows10 64位 , rgu版本号240621
RGU鼠标脚本: #注意注释里的功能是没有,只剩下按下鼠标的功能
[pre lang="ruby"]#__END__
# Sion 鼠标系统(SionMouseSystem)v2.31 (2014/2/20)

# RGU version by Admenri 220801

# v2.32(2014/6/9)  优化了地图卷动指令、等待指令的衔接过程。
# v2.31(2014/2/20) 事件执行过程中,卷动地图后不会自动跳转到玩家位置了。


=begin 说明  

  主要功能

    1,自动寻路,按住 D 键可以扩大寻路的范围
    2,变量输入框改良
    3,鼠标启动事件:
      在事件中加入“注释”:鼠标启动
      该事件将无法用其它方式启动,只能用鼠标左键点击启动
      
  鼠标指针图片 MouseCursor.png 放入 Graphics\System 文件夹
  路径点指示图片 $Arrow.png 放入 Graphics\Characters 文件夹
  如果未放入会使用RM自带图片代替缺失文件

=end

# RGU version by Admenri 220801

# 基础鼠标模组(Sion_MouseBase)v1.01 (2013/11/5)
# 需求! 白菜组脚本基 (WhiteCabbageBase) v1.0+
#
# 鼠标指针图片 MouseCursor.png 放入 Graphics\System 文件夹
# 按下 Alt + L 将鼠标锁定在屏幕内; Alt + O(字母欧) 解除锁定

Mouse.visible = true

module Mouse end
class << Mouse
  def activate(vp = nil)
  end
  def deactivate
  end
  def set_pos(x, y)
  end
   
  def create_cursor(vp)
  end
  def dispose_cursor
  end

  def trigger?(sym)
    click? sym
  end
  def repeat?(sym)
    false
  end
  def state(sym)
    press? sym
  end
  def double_click?
    dbl_clk? :L
  end
  def click_count
    0
  end
  def show_system_cursor
  end
  def hide_system_cursor
  end
end



class << Mouse
  attr_reader :sprite
end
class << Input
  alias_method :sion_mouse_press?,   :press?
  alias_method :sion_mouse_trigger?, :trigger?
  alias_method :sion_mouse_repeat?,  :repeat?
  unless self.method_defined?(:sion_mouse_update)
    alias_method :sion_mouse_update, :update
  end
  def update
    Mouse.update
    sion_mouse_update
  end
  def press?(key)
    return true if sion_mouse_press?(key)
    return Mouse.press?(Mouse::LEFT) if key == ":L" #b
    return Mouse.press?(Mouse::RIGHT) if key == ":R" #b
    return Mouse.press?(Mouse::MIDDLE) if key == ":M" #b
    return Mouse.press?(:R) if key == :B
    return false
  end
  def trigger?(key)
    return true if sion_mouse_trigger?(key)
    return Mouse.trigger?(:L) if key == :C
    return Mouse.trigger?(:R) if key == :B
    return false
  end
  def repeat?(key)
    return true if sion_mouse_repeat?(key)
    return Mouse.repeat?(:L) if key == :C
    return Mouse.repeat?(:R) if key == :B
    return false
  end
end
[/pre]
Mouse.trigger和Mouse.repeat 都是无效,此脚本原来好像是用于VA所以 :C:B:L:R那些不是XP用法无视即可,我在":L" 加了双引号是 文本 注意其实是没意思,可改成其他名字也行
if (Graphics.frame_rate % 5) == 0 #每5帧刷新一次(此句我测试用,可不看)
p Mouse.x,Mouse.y
# Mouse.x和Mouse.y 用来直接获取鼠标x轴与鼠标y轴
实际使用例字: Scene_Title ,def update ,test
   if  Input.press?(":L")
    p "按住了左键"
   end #if
单击需要自行设置变量计数器

----------------------------------以下为其他关于rgu
键盘按键可F1更改

看开源库貌似作者已废弃RGU,如是的话,240831可能为最终版本
蓝字内容出自https://github.com/Admenri/rguplayer
RGU Player Core (已废弃 / Deprecated)
已废弃
此项目因为某些原因已废弃,如有需要请移步新项目:URGE,本仓库计划在URGE完成后彻底废弃并删除
为什么要开新项目? 答:写的太烂+有争议,索性放弃并开发新架构


rgu.win.240831.7z
贴子只供参考我贴子内容有很多只是我自己标识的内容代指不是原来意思,偏向发贴当时的想法(后来回看贴发现有很多错误,会造成误导 ),如果想靠谱点应 找相关正确的文章   -- 2025/4/19
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

在本版发帖返回顶部