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

Project1

 找回密码
 注册会员
搜索
查看: 3006|回复: 3
打印 上一主题 下一主题

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
2 小时
注册时间
2006-11-10
帖子
931
跳转到指定楼层
1
 楼主| 发表于 2013-1-31 02:21:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

现在出于某种原因,想制作一个内容超过一屏的文字可以自由上下卷动的Window_Base类窗口(不想要Window_Selectable的光标),但是没什么思路,特来求助。谢过各位
……………………啊咧?

Lv5.捕梦者

梦石
0
星屑
33642
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

2
发表于 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 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
2 小时
注册时间
2006-11-10
帖子
931
3
 楼主| 发表于 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:}
……………………啊咧?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33642
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

4
发表于 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 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-1 15:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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