Project1
标题:
选项窗口,如何判断选中项变化?
[打印本页]
作者:
冰舞蝶恋
时间:
2011-3-28 18:36
标题:
选项窗口,如何判断选中项变化?
如题,选中项的变化怎么判断?就是光标移位。。
作者:
Rion幻音
时间:
2011-3-28 18:55
本帖最后由 Rion幻音 于 2011-3-28 18:57 编辑
看看默认脚本里的Window_Selectable或者Window_Command就有了吧?
作者:
冰舞蝶恋
时间:
2011-3-28 19:18
回复
Rion幻音
的帖子
有啊,就是@index嘛,可是怎么判断它变化??
作者:
Rion幻音
时间:
2011-3-29 13:40
回复
冰舞蝶恋
的帖子
可以找看Window_MenuStatus里的更新光标看一看
作者:
DeathKing
时间:
2011-3-30 22:46
本帖最后由 DeathKing 于 2011-3-30 22:50 编辑
将 Window_Selectable 提供的下面方法认为是“事件”(VB6的事件驱动思想)
※
cursor_down
※
cursor_up
※
cursor_right
※
cursor_left
※
cursor_pagedown
※
cursor_pageup
上述的事件都会引起 @index 的变动。如果有特殊需要的话,可对这些方法进行处理,以响应最初目的。
譬如:
class Window_Selectable
alias new_cursor_down cursor_down
def cursor_down(wrap = false)
new_cursor_down(wrap)
p "DK now is requiring loli~"
end
end
复制代码
将其用于默认脚本,运行尝试效果,很有趣~
当然,通过
refresh
方法判定 @index 的值不失为一种妙法。
作者:
冰舞蝶恋
时间:
2011-3-31 13:39
回复
DeathKing
的帖子
呃 谢谢前辈
咱找到了四个def!
感谢……!
冰舞蝶恋于2011-3-31 13:41补充以下内容:
#--------------------------------------------------------------------------
# ● 光标下移
# wrap : 允许循环
#--------------------------------------------------------------------------
def cursor_down(wrap = false)
if (@index < @item_max - @column_max) or (wrap and @column_max == 1)
@index = (@index + @column_max) % @item_max
end
end
#--------------------------------------------------------------------------
# ● 光标上移
# wrap : 允许循环
#--------------------------------------------------------------------------
def cursor_up(wrap = false)
if (@index >= @column_max) or (wrap and @column_max == 1)
@index = (@index - @column_max + @item_max) % @item_max
end
end
#--------------------------------------------------------------------------
# ● 光标右移
# wrap : 允许循环
#--------------------------------------------------------------------------
def cursor_right(wrap = false)
if (@column_max >= 2) and
(@index < @item_max - 1 or (wrap and page_row_max == 1))
@index = (@index + 1) % @item_max
end
end
#--------------------------------------------------------------------------
# ● 光标左移
# wrap : 允许循环
#--------------------------------------------------------------------------
def cursor_left(wrap = false)
if (@column_max >= 2) and
(@index > 0 or (wrap and page_row_max == 1))
@index = (@index - 1 + @item_max) % @item_max
end
end
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1