如何让零件表面的贴花动起来

功能效果展示

运行环境

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.在工作区内创建一个零件,将其锚定,修改零件的属性作为传送带。零件的属性如下图所示:

2.在零件下添加一个X轴的速度。如下图所示:

二、贴花搭建过程

在零件创建一个贴花,导入一个下载好的箭头贴图,将贴花方式改为平铺,修改X轴的平铺率。如下图所示:

2.在零件下创建一个服务器脚本。如下图所示:

编写服务器脚本如下:

--[[
 1.获取自身零件或自己创建零件
 2.定义局部变量 local x 
 3.创建更改贴图世界坐标函数
 4.创建贴图移动函数
 5.使用GameRun.Update事件调用3和4
 注:控制运动时长方法(按帧计算)
   1.将步骤3创建的函数【change()函数】和代码末尾调用此函数的语句删除
   2.步骤4创建的函数【move()函数】每帧运行一次,       while (move()函数中的x == local x) 贴图停止运动
 ]]--
 local part = script.Parent.贴花     -- 获取零件贴花
 local x = 1               -- 不能与更改贴图世界坐标函数中if判断语句中的x值相等
 local function change()         -- 创建更改贴图世界坐标函数
 if(x <= -1) then            -- 判断贴图的世界坐标是否等于当前坐标
          x = 1          -- while(贴图偏移量) == -1 贴图停止运动         
                       -- 注:赋给x的值越接近if语句中x的值贴图运动越快
 end
 end
 local function move()          -- 创建贴图移动函数        
          x = x - 0.005     -- 贴图偏移量 注:被减数值越小 贴图运动越慢
          part.Offset = Vector2(-x,0) -- 官方API文档中贴花(Decal)Offset()函数   
 end
 GameRun.Update:Connect(move)          -- 官方API文档中游戏运行服务(GameRun)Update()函数
 GameRun.Update:Connect(change)

补充说明

1.什么是工作区?

工作区中的对象是会被可视化显示到3D场景中的,并且只有在工作区中的对象才会发生物理交互。

2.什么是贴花?

为零件表面的其中一个面添加自定义贴图的对象。

3.什么是服务器脚本?

只会在服务器运行的Lua脚本代码,用于编写服务器逻辑。

好了,接下来我们开始游戏,传送带上的箭头贴图就会随着传送带一起移动啦。如果有什么问题或者有更好的实现方式,大家可以在下方积极交流讨论,我们也会参与进来和大家一起分享经验,期望能和大家共同进步~~

发布了35 篇原创文章 · 获赞 2 · 访问量 5816

猜你喜欢

转载自blog.csdn.net/weixin_41987154/article/details/103026361