查看: 3136|回复: 3

[已经过期] 请教一个Window_Base窗口内容翻页的问题。

[复制链接]
梦石
0
星屑
55
在线时间
2 小时
注册时间
2006-11-10
回帖
899
发表于 2013-1-31 02:21:34 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
咳咳……总之,这个,那个,各位好久不见{:2_258:}

现在出于某种原因,想制作一个内容超过一屏的文字可以自由上下卷动的Window_Base类窗口(不想要Window_Selectable的光标),但是没什么思路,特来求助。谢过各位
……………………啊咧?
梦石
0
星屑
34467
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2013-1-31 14:38:07 | 显示全部楼层
本帖最后由 芯☆淡茹水 于 2013-1-31 14:46 编辑

本人愚见:
   首先要看LZ所做的窗口有多大,能显示多少个字。
   窗口显示文字“draw_txt”,如果显示不完,再新建个窗口继续显示。

   最后建立场景,加入新建的所有显示文字窗口。
   在“update”里面条件分歧:if Input.trigger?(Input::DOWN)
                                 或者:if Input.trigger?(Input::UP)
    也就是上下键翻页,来显示窗口内容。

  当然这只是大概思路,如果做起来还有很多需要注意的地方,
  比如直接draw_txt 不会自动换行,需要计算好字体大小和显示
  的坐标,多draw几次。还有场景里面上下键翻页和窗口切换
  问题。
  如果LZ有需要,本人可做个范例。

评分

参与人数 1星屑 +66 收起 理由
hys111111 + 66 感谢忽地

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
55
在线时间
2 小时
注册时间
2006-11-10
回帖
899
 楼主| 发表于 2013-2-1 17:10:39 | 显示全部楼层
芯☆淡茹水 发表于 2013-1-31 14:38
本人愚见:
   首先要看LZ所做的窗口有多大,能显示多少个字。
   窗口显示文字“draw_txt”,如果显示不完 ...

嗯,我也觉得差不多是这个思路,不过问题就在文字超过一页的情况下按down方向键时对窗口内容的重新描绘上。主楼我的描述并不准确,我应该是希望窗口内容能像Selectable类型一样“随按键的方向滚动”,而“翻页”只是按pagedown等键时“一次滚动过一屏内容,看起来像是翻了页”

Window_Base是一个很愚蠢的玩意,不知道自动换行,只能用些笨办法,比如
   for c in text.scan(/./)
     if x + self.contents.text_size(c).width >= self.width - 40
      x = 4; y += 28
     end
     self.contents.draw_text(x, y, 40, 32, c, align, 3, color)
     x += self.contents.text_size(c).width
    end
这样来换行,也就是说它是写一个字累积一次宽度,超过窗框就换行的,不像Selectable每行有个index。
但是如果人为地手动把32个字分成某个数组的一个单元,判定起来是容易了,但是如果录入长篇日志之类几百几千字的东西,大概负责录入的人就会很想死{:2_254:}
设想中的这种窗口最好还能跟对话加强脚本一样,可以自动换行,用特定命令给文字上色,手动换行,然后还要能翻页。蛋疼{:2_253:}
……………………啊咧?
回复

使用道具 举报

梦石
0
星屑
34467
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2013-2-2 13:54:34 | 显示全部楼层
Benavii 发表于 2013-2-1 17:10
嗯,我也觉得差不多是这个思路,不过问题就在文字超过一页的情况下按down方向键时对窗口内容的重新描绘上 ...

  其实输入TEXT的话,LZ可参照Window_NameInput。

文字颜色的话,可在描绘文字前定义:self.contents.font.color = text_color(n) 【文本文字色,n为编号0~8】
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部