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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: timmyyayaya
打印 上一主题 下一主题

[已经解决] 想请教关于存档页面

 关闭 [复制链接]

Lv4.逐梦者

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
帖子
271
11
 楼主| 发表于 2011-9-11 17:23:16 | 只看该作者
class Window_SaveFile < Window_Selectable  

def initialize(x, y, width, height)
  (中略)
end

点评

不止4楼,应该有个外来脚本重新定义了Scene_File  发表于 2011-9-11 19:46
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6805
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

12
发表于 2011-9-11 17:37:19 | 只看该作者
我这给你改了个Selectable 的  一改那全都改了.
  1. #==============================================================================
  2. # ■ Window_Selectable
  3. #==============================================================================

  4. class Window_Selectable < Window_Base
  5.   #--------------------------------------------------------------------------
  6.   # ● 刷新画面
  7.   #--------------------------------------------------------------------------
  8.   def update
  9.     super
  10.     # 可以移动光标的情况下
  11.     if self.active and @item_max > 0 and @index >= 0
  12.       # 方向键下被按下的情况下
  13.       if Input.repeat?(Input::DOWN)
  14.         # 列数不是 1 并且不与方向键下的按下状态重复的情况、
  15.         # 或光标位置在(项目数-列数)之前的情况下
  16.         if (@column_max == 1 and Input.trigger?(Input::DOWN)) or
  17.            @index < @item_max - @column_max
  18.           # 光标向下移动
  19.           $game_system.se_play($data_system.cursor_se)
  20.           down_page_row = self.top_row + self.page_row_max
  21.           @index = (@index + @column_max) % @item_max
  22.           row = @index / @column_max
  23.           if row == down_page_row
  24.             self.top_row = row
  25.           end
  26.         end
  27.       end
  28.       # 方向键上被按下的情况下
  29.       if Input.repeat?(Input::UP)
  30.         # 列数不是 1 并且不与方向键下的按下状态重复的情况、
  31.         # 或光标位置在列之后的情况下
  32.         if (@column_max == 1 and Input.trigger?(Input::UP)) or
  33.            @index >= @column_max
  34.           # 光标向上移动
  35.           $game_system.se_play($data_system.cursor_se)
  36.           up_page_row = self.top_row - 1
  37.           h_top_row = self.top_row
  38.           @index = (@index - @column_max + @item_max) % @item_max
  39.           row = @index / @column_max
  40.           if row == up_page_row
  41.             self.top_row = [h_top_row - self.page_row_max, 0].max
  42.           end
  43.         end
  44.       end
  45.       # 方向键右被按下的情况下
  46.       if Input.repeat?(Input::RIGHT)
  47.         # 列数为 2 以上并且、光标位置在(项目数 - 1)之前的情况下
  48.         if @column_max >= 2 and @index < @item_max - 1
  49.           # 光标向右移动
  50.           $game_system.se_play($data_system.cursor_se)
  51.           down_page_row = self.top_row + self.page_row_max
  52.           @index += 1
  53.           row = @index / @column_max
  54.           if row == down_page_row
  55.             self.top_row = row
  56.           end
  57.         end
  58.       end
  59.       # 方向键左被按下的情况下
  60.       if Input.repeat?(Input::LEFT)
  61.         # 列数为 2 以上并且、光标位置在 0 之后的情况下
  62.         if @column_max >= 2 and @index > 0
  63.           # 光标向左移动
  64.           $game_system.se_play($data_system.cursor_se)
  65.           up_page_row = self.top_row - 1
  66.           h_top_row = self.top_row
  67.           @index -= 1
  68.           row = @index / @column_max
  69.           if row == up_page_row
  70.             self.top_row = [h_top_row - self.page_row_max, 0].max
  71.           end
  72.         end
  73.       end
  74.       # R 键被按下的情况下
  75.       if Input.repeat?(Input::R)
  76.         # 显示的最后行在数据中最后行上方的情况下
  77.         if self.top_row + (self.page_row_max - 1) < (self.row_max - 1)
  78.           # 光标向后移动一页
  79.           $game_system.se_play($data_system.cursor_se)
  80.           @index = [@index + self.page_item_max, @item_max - 1].min
  81.           self.top_row += self.page_row_max
  82.         end
  83.       end
  84.       # L 键被按下的情况下
  85.       if Input.repeat?(Input::L)
  86.         # 显示的开头行在位置 0 之后的情况下
  87.         if self.top_row > 0
  88.           # 光标向前移动一页
  89.           $game_system.se_play($data_system.cursor_se)
  90.           @index = [@index - self.page_item_max, 0].max
  91.           self.top_row -= self.page_row_max
  92.         end
  93.       end
  94.     end
  95.     # 刷新帮助文本 (update_help 定义了继承目标)
  96.     if self.active and @help_window != nil
  97.       update_help
  98.     end
  99.     # 刷新光标矩形
  100.     update_cursor_rect
  101.   end
  102. end
复制代码











你知道得太多了

回复

使用道具 举报

Lv4.逐梦者

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
帖子
271
13
 楼主| 发表于 2011-9-11 23:43:06 | 只看该作者
本帖最后由 timmyyayaya 于 2011-9-11 23:45 编辑
后知后觉 发表于 2011-9-11 17:37
我这给你改了个Selectable 的  一改那全都改了.


感谢版主热心回应

套用上去后,在要选到存盘04的时候就会跳到下一页,
显示04、05、06、07,
在存盘01使用PageDown会翻到下一页,
也是显示04、05、06、07,

请问要怎么调整才能选到04时,接着按「下」跳到下一页,
显示05、06、07、08呢@@”
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6805
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

14
发表于 2011-9-12 00:19:19 | 只看该作者
本帖最后由 后知后觉 于 2011-9-12 00:37 编辑

因为你 8 楼放的那段脚本的关系所以出现了你说的问题.
那段脚本把 @cursorOffset 这个东西加入了计算.
在计算 page_row_max 的时候 计算出来是 3  所以你从3到4就算作翻页了.
这个东西的意思是计算每一页可以显示多少行.
你可以尝试把 @cursorOffset 稍微改小一点点.让计算 page_row_max 的结果为 4 就可以了.
根据 8 楼给的
  def page_row_max
    # 視窗的高度,設定畫面的高度減去 32 ,除以 1 行的高度 32
    return (self.height - @cursorOffset) / @cursorOffset
  end
@cursorOffset 需要设置为窗口的 height 的 1/5 的时候计算出来才是每页 4 个

或者是在 Window_SaveFile 的定义里 重新定义一下这个东西的计算

  1. class Window_SaveFile  < Window_Selectable
  2.   def page_row_max
  3.     return 4
  4.   end
  5. end
复制代码
你给的脚本东一块西一块的.我懒得测试.大概就这样了.

点评

感谢版主的热心解答, 在 Window_SaveFile 重新定义后翻页已经正常。  发表于 2011-9-12 11:53











你知道得太多了

回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
15
发表于 2011-9-12 08:52:26 | 只看该作者
本帖最后由 Wind2010 于 2011-9-12 08:58 编辑

存档读档画面的选项其实各是一个窗口,改Window_Selectable没用的吧- -
LZ当真确定没用过这个以外的外来脚本么,这个只是改了窗口而已


想起自己有过一个增加存档的脚本,情况和LZ的差不多。LZ的是这个脚本吗?
复制代码
↑好吧不是这个,已经删了


LZ请确定是不是用的什么配套脚本,因为有以下几个参数找不到:
  1. $SAVE_FILE_MAX_NUM
  2. cursorOffset
复制代码

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv4.逐梦者

梦石
7
星屑
2585
在线时间
567 小时
注册时间
2009-4-30
帖子
271
16
 楼主| 发表于 2011-9-12 11:47:21 | 只看该作者
Wind2010 发表于 2011-9-12 08:52
存档读档画面的选项其实各是一个窗口,改Window_Selectable没用的吧- -
LZ当真确定没用过这个以外的外来脚 ...

感谢六翼天使热心回复,
已经使用版主的方式解决问题了,
cursorOffset是重新定义光标大小,
如版主所说,他取的范围过大导致翻页计算错误。



timmyyayaya于2011-9-12 11:52补充以下内容:
感谢版主的热心解答,
在 Window_SaveFile 重新定义后翻页已经正常,
因为脚本是朋友写的,
他在写@cursorOffset的时候,
说主要影响的是Window_Selectable和Window_SaveFile,
在下不是很清楚该贴上哪些脚本,所以才只贴了那两块…
很抱歉贴的东一块西一块...:'(
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2025-2-20 07:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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