Project1

标题: 当Scene_Map上有已激活的指令窗口时,如何按Enter不激活选项? [打印本页]

作者: 黑白界    时间: 2015-5-13 18:35
标题: 当Scene_Map上有已激活的指令窗口时,如何按Enter不激活选项?
本帖最后由 黑白界 于 2015-5-13 18:36 编辑

是这样:
我装了Sion的鼠标插件,所以可以在Scene_Map(地图场景)上加Window_Command,然后用鼠标来点击它。

如图

然而,这导致每次我用键盘走到事件面前,按Enter时,都会选择窗口选项而不是和事件对话。
这是很不好的体验。

如何调整呢?

附带范例
界面与战斗的UI设计.zip (2.24 MB, 下载次数: 79)
作者: VIPArcher    时间: 2015-5-13 22:52
做法很简单,生成窗口时不要激活窗口。
然后判断鼠标是否在窗口的内部,如果在则激活窗口,否则冻结窗口。这里给个例子
  1. class Window_VIPArcher < Window_Command
  2.   #----------------------------------------------------------------------------
  3.   #  初始化
  4.   #----------------------------------------------------------------------------
  5.   def initialize
  6.     super
  7.     self.deactivate
  8.   end
  9.   #----------------------------------------------------------------------------
  10.   #   判断是否在范围内  Mouse 鼠标模块
  11.   #----------------------------------------------------------------------------
  12.   def in_the_range?
  13.     Mouse.x > x && Mouse.x < x + width && Mouse.y > y && Mouse.y < y + height
  14.   end
  15.   #----------------------------------------------------------------------------
  16.   #   更新画面
  17.   #----------------------------------------------------------------------------
  18.   def update
  19.     super
  20.     self.active = in_the_range?
  21.   end
  22. end
复制代码

作者: 黑白界    时间: 2015-5-14 17:47
VIPArcher 发表于 2015-5-13 22:52
做法很简单,生成窗口时不要激活窗口。
然后判断鼠标是否在窗口的内部,如果在则激活窗口,否则冻结窗口。 ...

谢谢你,完美地解决了问题。
不过大神懂底层吗?这个检查消耗的资源如何?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1