广场
工具/教程/素材
超评测活动结果
第29届极短篇游戏制作比赛
优秀游戏推荐
非官方运行时(20250730)
登录
RPGMaker工具集[20250416]
基础教程
授权素材推广
优秀原创游戏区
精品推荐贴
【RGD】DirectX驱动的RMVA
RGSS3 - runtime by Lanza
【RGM】RGModern - RMXP新runtime
【URGE】兼容 XP/VX/Ace 三系通用跨平台游戏引擎
Project1
»
广场
›
›
游戏制作组
›
RMVA
›
《RMVA传》相关
›
[难以理解的脚本]Window_Help的自动换行
返回列表
发新帖
查看:
1141
|
回复:
0
[难以理解的脚本]Window_Help的自动换行
[复制链接]
timiesea
timiesea
当前离线
赞
0
VIP
好人卡
积分
1
经验
最后登录
2021-6-21
在线时间
297 小时
写轮眼
梦石
0
星屑
105
在线时间
297 小时
注册时间
2009-1-7
回帖
155
发消息
发表于 2015-6-27 23:58:22
|
显示全部楼层
|
阅读模式
加入我们,或者,欢迎回来。
您需要
登录
才可以下载或查看,没有账号?
注册会员
×
#encoding:utf-8
#==============================================================================
# ■ Window_Help
#------------------------------------------------------------------------------
# 显示特技和物品等的说明、以及角色状态的窗口
#==============================================================================
class Window_Help < Window_Base
#--------------------------------------------------------------------------
# ● 设置内容(窗口宽度为516,文字内容超过则自动换行)
# 字符串下标从0开始 到 长度 - 1
# 通过text_size(text).width获取指定文本的显示宽度
#--------------------------------------------------------------------------
def set_text(text)
tmp = "";#最终拼凑而成的文本
bool = false;#记录是否曾经换行,如果已经换行则不再进行二次换行,因为只有2行
if text != @text#如果已经在显示的文本不和新的文本一致,则进行设置
l = text.length - 1;#获取新文本的长度,并减去1用来循环迭代
for i in 0..l do#进行循环,对字符串的每一个字符进行迭代
if text[i] != "\r" and text[i] != "\n" then#跳过文本中的换行符和回车符
if !bool then#如果没有进行过换行才进行计算
tmpw = text_size(tmp).width;#已经处理好的字符串的宽度
textw = text_size(text[i]).width;#下一个字符的宽度
w = tmpw + textw;#新的字符串总宽度
if w <= 516 then#如果文本的宽度没有超过516,还能显示下一个字符
tmp = tmp + text[i];#进行追加
else#如果已经显示不下
tmp = tmp + "\r" + "\n" + text[i];#进行换行后追加
bool = true;#表示已经换过行了
end
else#如果已经换过行了。
tmp = tmp + text[i];#进行追加
end
end
end
@text = tmp;#返回结果
refresh#进行刷新
end
end
end
复制代码
无论描述的内容是否有换行,都会强制这么转换
游戏群组:
https://rpg.blue/forum.php?mod=group&fid=565
在这里你可以看到我在制作游戏过程中分享的内容。
回复
使用道具
举报
提升卡
沉默号角
喧嚣号角
变色卡
升龙剑
返回列表
发新帖
Archiver
|
手机版
|
小黑屋
|
Project1游戏制作
Powered by
Discuz!
X5.0
© 2001-2026
Discuz! Team
.
在本发帖
返回顶部
快速回复
返回顶部
返回列表