纯属小虫 发表于 2023-4-17 13:56 那你要多来客串啊 |
金芒芒 发表于 2023-4-17 13:27 恭喜,一旦上路就会上瘾~~~ |
纯属小虫 发表于 2023-4-14 22:32 弄了3天终于搞定了,不动脚本的我跟瞎子摸路爬着过来了
|
本帖最后由 金芒芒 于 2023-4-15 08:22 编辑 纯属小虫 发表于 2023-4-14 22:32 def page_row_max #@column_max = 2 # 窗口的高度,设置画面的高度减去 32 ,除以 1 行的高度 32 return 3 #头像行数 end 头像图片 x =10 +@index% 4 * (84 + 1) y =5+ @index/ 4 * 120 @right.y = self.y+12+self.top_row.to_f*120.0*(3*120)/(@item_max.to_f*120)#3就是限制的高度 光标 x =10 +@index% 4 * (84 + 1) y =5+ @index/ 4 * 120 @right.y = self.y+12+self.top_row.to_f*120.0*(3*120)/(@item_max.to_f*120) 一个4的倍数 一个3行的限制 有点跑偏 真的不行我就也来个4行限制把头像改小拉伸一下背景图片 |
金芒芒 发表于 2023-4-14 14:54 哦,要翻页啊,那也还是参考 Window_Selectable Window_Selectable 你看170-189行怎么操作的,那么就让光标在页面最下方按↓ 或光标在页面最上方按↑ 的时候,仿造它写就行了 # R 键被按下的情况下 if Input.repeat?(Input::R) # 显示的最后行在数据中最后行上方的情况下 if self.top_row + (self.page_row_max - 1) < (self.row_max - 1) # 光标向后移动一页 $game_system.se_play($data_system.cursor_se) @index = [@index + self.page_item_max, @item_max - 1].min self.top_row += self.page_row_max end end # L 键被按下的情况下 if Input.repeat?(Input::L) # 显示的开头行在位置 0 之后的情况下 if self.top_row > 0 # 光标向前移动一页 $game_system.se_play($data_system.cursor_se) @index = [@index - self.page_item_max, 0].max self.top_row -= self.page_row_max end end |
本帖最后由 纯属小虫 于 2023-4-14 13:58 编辑 首先得知道这个 @item 在这个类中被定义成了什么,得把整个class的代码,或者这个class的名称发上来 如果是原版的@item.scope,应该是指的物品作用范围 敌单体,敌群体,我单体....之类 另外,想做 4*3 的选项页面是比较简单的,用Window类直接就能做出来 具体可以参照 class Window_Selectable < Window_Base 基于这个框架几乎能做出所有的需要光标的窗口 def initialize(x, y, width, height) super(x, y, width, height) @item_max = 1 @column_max = 1 @index = -1 end @item_max 是指总量,你这里是12的话,那就是12 @column_max 是指列数,你的4*3如果4是指的是横排一排中的个数,这里填4即可 def update_cursor_rect # 光标位置不满 0 的情况下 if @index < 0 self.cursor_rect.empty return end # 获取当前的行 row = @index / @column_max # 当前行被显示开头行前面的情况下 if row < self.top_row # 从当前行向开头行滚动 self.top_row = row end # 当前行被显示末尾行之后的情况下 if row > self.top_row + (self.page_row_max - 1) # 从当前行向末尾滚动 self.top_row = row - (self.page_row_max - 1) end # 计算光标的宽 cursor_width = self.width / @column_max - 32 # 计算光标坐标 x = @index % @column_max * (cursor_width + 32) y = @index / @column_max * 32 - self.oy # 更新国标矩形 self.cursor_rect.set(x, y, cursor_width, 32) end 这个定义了每个光标的大小,根据需求按照备注所写修改即可 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-24 13:13
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.