如何在Reworld里实现逐字弹出文字的效果

功能效果展示

运行环境

Win7,Win8,Win10

Reworld版本 体验版

vc_redist.x64 运行环境

针对零基础读者的补充

下载安装 Reworld对应版本

Reworld官网链接http://www.reworlder.com/

Reworld创作者之家论坛:http://bbs.reworlder.com

下载后安装后注册账号打开空地图

下载安装 vc_redist.x64.rar运行环境

redist.x64下载链接

思路分析

想要实现文字逐字弹出的效果,我们将要弹出的文本自定义到文本控件中,计算文本的字符长度,利用字符长度判断,协程循环弹出字符。

功能搭建

1.在界面初始化下创建一个2D容器界面,调整位置和大小,如下图所示:

如何在Reworld里实现逐字弹出文字的效果_第1张图片

2.在2D容器界面下创建一个文本控件按钮控件客户端脚本。如下图所示:

如何在Reworld里实现逐字弹出文字的效果_第2张图片3.编写客户端脚本如下:

`local Button = script.Parent.按钮控件;`

`local Txt =  script.Parent.文本控件;`

`-- 需要打印的字存储在 _Txt 这个变量中`

`local  _Txt = ``"党的十八大后我考察调研的第一站就是深圳改革开放四十周年之际再来这里就是要向世界宣示中国改革不停顿开放不止步中国一定会有让世界刮目相看的新的更大奇迹"` 

`local function StartCornerProram() `

`coroutine.start(function()`

`local times = 0.05`

`local i = 1;`

`local j = 3;`

`local n = ``string``.len(_Txt);`

`while` `(j <= n) `

`do`

`Txt.Text=_Txt:sub(0,j)..``'\0'``;`

`coroutine.wait(times);`

`if``(i == 3) then times = 0.03  end --第三次循环时使出字时间加快`

`--  ``if``(i == 7) then Txt.Text = _Txt;``break``; end -- 第七次循环时结束出字效果,如果想实现这个效果请接触注释`

`j = j+3;`

`i = i+1;`

`end`

`Txt.Text = _Txt;`

`end)   `

`end`

`Button.OnClick:Connect(StartCornerProram)`

补充说明

1.什么是2D容器界面?
2D容器界面是显示在玩家屏幕上的2DUI对象的主要存储对象。UI对象若要显示在编辑器中,必须作为容器控件的子级。
游戏运行后,存放在界面初始化下的界面会复制到玩家界面下,只有在玩家界面下的界面才能在游戏中显示。

2.什么是文本控件?
文本控件显示非交互文本,经常用于标题或者标签使用。

3.什么是按钮控件?
按钮控件用于响应来自用户的事件,经常用于启动或者确认某项操作使用。

4.什么是客户端脚本?
只会在客户端执行的脚本,执行的逻辑和表现也只会在本地客户端展现;可在以下几个文件目录下自动执行,客户端脚本在“工作区”下不会自动执行

好了,接下来我们开始游戏,当点击按钮时,自定义的文本就会逐字弹出了。如果有什么问题或者有更好的实现方式,大家可以在下方积极交流讨论,我们也会参与进来和大家一起分享经验,期望能和大家共同进步~~

你可能感兴趣的:(reworld,游戏,游戏开发,游戏引擎,lua)