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

Project1

 找回密码
 注册会员
搜索

求教:关于怎么获取当前活动选项的坐标范围……等2问……

查看数: 2045 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-5-6 14:15

正文摘要:

本帖最后由 Sion 于 2013-5-25 17:53 编辑 小白表示有了点C++基础,就想去到处改默认脚本…… 然后发现自己实在DT,于是下了@Sion 大大的VA鼠标脚本来学习&入门,然后就一堆问题来了…… 背景:1张图就够了…… ...

回复

sssWorld 发表于 2013-5-6 20:03:36
Sion 发表于 2013-5-6 19:59
知道个英文站: http://rgss3doc.tk//en/index.html
不完全汉化的F1档:http://rpg.blue/home.php?mo ...

非常感谢大大的解答和分享!{:2_275:}
Sion 发表于 2013-5-6 19:59:42
本帖最后由 Sion 于 2013-5-6 20:03 编辑
sssWorld 发表于 2013-5-6 19:41
Mouse这段我看懂了,因为之前学过VC++的说……

对,就是指那个RMVA自动生成的默认脚本,如果我没理解错 ...


知道个英文站: http://rgss3doc.tk//en/index.html
不完全汉化的F1档:http://rpg.blue/home.php?mod=spa ... o=blog&id=11217
RGSS3基类源码听说是用C编写的,反正我是没找到- -b

菜单的话,看看默认脚本 + F1帮助档应该能看懂的。主要是 Window_Selectable 和它的父类
sssWorld 发表于 2013-5-6 19:41:58
本帖最后由 sssWorld 于 2013-5-6 19:43 编辑
Sion 发表于 2013-5-6 19:20
1,需要在对应的地方隐藏鼠标精灵。截图存档之类的应该不是使用 SceneManager 里的那个截图

2,初始脚本 ...


Mouse这段我看懂了,因为之前学过VC++的说……

对,就是指那个RMVA自动生成的默认脚本,如果我没理解错的话,【菜单】也是通过 建立一个新window对象 来实现的?那么这样的话应该就可以通过window类的方法获取选项的坐标范围了吧。

另:RMVA应该也封装了一部分基类吧,大大介绍的ruby-doc网站好像只有Ruby的基本语法和数据结构(类似于C++与VC++的区别),有介绍RMVA自己封装的类的网站吗?

顺便吐一句:新人不能发链接……是防广告么……
Sion 发表于 2013-5-6 19:20:58
本帖最后由 Sion 于 2013-5-6 19:37 编辑
sssWorld 发表于 2013-5-6 18:47
也就是说用了这个补丁后,即使以后设置了存档截图之类的功能,也能把鼠标隐藏了?

关于范围如果是初始的 ...


1,需要在对应的地方隐藏鼠标精灵。截图存档之类的应该不是使用 SceneManager 里的那个截图

2,初始脚本是指新建工程的默认脚本?

通过调用API来获取鼠标坐标
  1. module UrMouse

  2.   Get_Cursor_Pos    = Win32API.new('user32', 'GetCursorPos', 'p', 'i')
  3.   Screen_To_Client  = Win32API.new('user32', 'ScreenToClient', 'ip', 'i')
  4.   Get_Active_Window = Win32API.new('user32', 'GetActiveWindow', nil, 'l')
  5.   HWnd                = Get_Active_Window.call

  6.   module_function

  7.   def get_pos
  8.     arg = [0, 0].pack('ll')
  9.     Get_Cursor_Pos.call(arg)
  10.     Screen_To_Client.call(HWnd, arg)
  11.     arg.unpack('ll')
  12.   end
  13. end
复制代码
使用
  1. x, y = UrMouse.get_pos
复制代码
来获取鼠标当前坐标,然后就简单的计算一下就能判定鼠标是不是在指定的范围。
sssWorld 发表于 2013-5-6 18:47:02
本帖最后由 sssWorld 于 2013-5-6 18:48 编辑
Sion 发表于 2013-5-6 18:39
后面的背景是截图,需要在系统截图的时候隐藏鼠标精灵,然后再让它显示出来。
下面是补丁判断范围的代码, ...


也就是说用了这个补丁后,即使以后设置了存档截图之类的功能,也能把鼠标隐藏了?

关于范围如果是初始的脚本集合的话,应该怎样获取呢?
Sion 发表于 2013-5-6 18:39:44
本帖最后由 Sion 于 2013-5-6 18:43 编辑

后面的背景是截图,需要在系统截图的时候隐藏鼠标精灵,然后再让它显示出来。
下面是补丁
  1. class << Mouse
  2. attr_reader :mouse_sprite
  3. end

  4. class << SceneManager
  5.   unless self.method_defined?(:snapshot_for_background_2013_5_6)
  6.     alias_method :snapshot_for_background_2013_5_6, :snapshot_for_background
  7.   end
  8.   def snapshot_for_background
  9.     Mouse.mouse_sprite.visible = false
  10.     snapshot_for_background_2013_5_6
  11.     Mouse.mouse_sprite.visible = true
  12.   end
  13. end
复制代码
判断范围的代码,因为偷懒,借用了系统原来的光标系统,修改起来比较困难。
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-9-29 11:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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