如何利用Reworld做一个一键吸空投箱的效果

功能效果展示

11.gif

运行环境

Win7,Win8,Win10

Reworld版本 体验版

vc_redist.x64 运行环境

针对零基础读者的补充

下载安装 Reworld对应版本

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

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

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

redist.x64下载链接

思路分析

我们想要实现玩家按键吸空投箱的功能,首先我们需要设计一个技能的UI,点击这个UI后,空投箱移动到玩家的位置,因此我们需要获取到玩家的坐标,把所有的空投箱组合成一个集合,集合下的所有空投箱朝玩家坐标移动,当到达玩家坐标后停止移动。

功能搭建

一、空投箱搭建过程
1.首先我们需要在工作区里创建一个文件夹,重命名为ObjList。在文件夹下创建一个自定义零件,取消锚定后,导入一个在商店里下载好的空投箱模型。如下图所示:

2.我们复制几个ObjList下上一步创建好的空投箱零件,然后分散排布它们的位置,方便我们观看效果。如下图所示:

二、技能UI搭建过程
在界面初始化下创建一个2D容器界面,重命名为Test,在2D容器界面下创建一个按钮控件,在按钮控件下创建一个文本控件,调整大小和位置。如下图所示:

核心功能环境搭建

一、服务器脚本搭建过程
在工作区下创建一个服务器脚本。如下图所示:

编写服务器脚本如下:

local list=WorkSpace.ObjList --获取到要聚拢物体的集合
local ren=nil
 
local MoveTrigger=false --控制聚拢效果的开关
Players.PlayerAdded:Connect(function(Uid)
    ren= Players:GetPlayerByUserId(Uid)
end)
 
MessageEvent.ServerEventCallBack("GatherTogether"):Connect(function()--接收按钮回调
    MoveTrigger=true
end)
local index=0
GameRun.Update:Connect(function()
    if ren~=nil and MoveTrigger then
        local objs=list:GetAllChild() --获取objList文件夹下所有子类
        index=0
        for i=1,#objs,1 do
            if Vector3.Distance(objs\[i\].Position,ren.Avatar.Position)>1 then
                --将物体聚拢到人物身边
                objs\[i\].Position=  Vector3.MoveTowards(objs\[i\].Position,ren.Avatar.Position,0.1)
            else
                objs\[i\].Position=objs\[i\].Position
                index=index+1
            end 
            if index==#objs then --当物体全部到达人物身边时停止聚拢
                MoveTrigger=false
            end
        end
 
    end
end)

二、客户端搭建过程
我们在玩家初始化,玩家初始化脚本下创建一个客户端脚本。如下图所示:

编写客户端脚本如下:

GameUI.Test.按钮控件.OnClick:Connect(function() --注册按钮点击事件
    MessageEvent.FireServer("GatherTogether")
end)

二、补充说明

1.__什么是工作区?

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

2.__什么是服务器脚本?

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

3.__什么是客户端脚本?

_只会在客户端执行的脚本,执行的逻辑和表现也只会在本地客户端展现;可在以下几个文件目录下自动执行,客户端脚本在“工作区”下不会自动执行,需要放在以下对象里面:
1. __客户端最先加载 。
2. 工作区中的角色模型玩家初始化中的角色初始化脚本,在运行后会自动移动到角色模型下。
3. 玩家列表中的玩家玩家初始化中的玩家初始化脚本,在运行后会自动移动到玩家下
4. 玩家玩家界面界面初始化的脚本,在运行后会自动移动到玩家界面下。
5. 玩家的背包,例如工具里面的。_

4.什么是2D容器界面?

2D容器界面是显示在玩家屏幕上的2DUI对象的主要存储对象。UI对象若要显示在编辑器中,必须作为容器控件的子级。

游戏运行后,存放在界面初始化_StarterUI下的界面会复制到玩家界面下,只有在玩家界面GameUI下的界面才能在游戏中显示。_

好了,接下来我们开始游戏,点击吸空投这个按钮,所有的空投箱就都被我们吸过来啦。如果有什么问题或者有更好的实现方式,大家可以在下方积极交流讨论,我们也会参与进来和大家一起分享经验,期望能和大家共同进步~~

Image placeholder
Reworld
未设置
  57人点赞

没有讨论,发表一下自己的看法吧

推荐文章
如何用react做一个表格

如何用react做一个表格1、首先使用React.createClass方法创建一个组件;2、在render中通过React.DOM创建table、tr、tbody标签;3、在tr标签中使用map方法

如何利用科技提高效率,降低成本

以前,企业用数据库来存储客户信息,这些信息必须谨慎保存,并且需要实时手动更新。今天,有许多自动化CRM工具在被设计时考虑了各个行业不同的需求。过去,无论企业规模大小,都必须向客户开具纸质发票,并等待数

如何在Reworld里随机生成想要的物体

功能效果展示运行环境Win7,Win8,Win10Reworld版本体验版vc_redist.x64运行环境针对零基础读者的补充下载安装Reworld对应版本Reworld官网链接:http://ww

老焦专栏 | 用 RACI 模式梳理业务流程,提高业务发布的效率

转载本文需注明出处:微信公众号EAWorld,违者必究。最近经常在不同场合说,技术发展已经进入深水区。IT技术发展已经越来越成熟了,尤其在金融行业,以前是解决从无到有的问题,现在该有的系统都有了,是解

使用 Workerman 做一个聊天室

为什么要写这篇文章? 我学习Workerman好几次了,每次都失败(没做成想要的功能,原谅我比较笨)。但是这次也花了好几个小时,把之前没做成的功能实现了。其实就是两个简单的功能:一对一发送消息,广

如何用react做增删

如何用react做增删1、使用react做一个输入框,点击提交在下面列表展示,点击对应的列表项,删除该项,如下:2、项目的数据结构,首先分析需求,一个input框,一个button,一个列表。可以把i

如何用react写页面跳转

如何用react写页面跳转1、使用react-router-dom中的Link实现页面跳转一般适用于,点击按钮或其他组件进行页面跳转,具体使用方式如下:import{Link}from'react-r

如何用react写轮播?

前提:安装好Node.js安装。【推荐阅读:nodejs怎么下载安装?】步骤:1、安装swiper使用node包管理器npm来安装swipernpminstallswiper--save2、在轮播组件

如何引用react-dom

如何引用react-dom引用react-dom很简单,首先你需要创建一个react项目,这里我们介绍两种方式,第一种是使用npm来创建,另一种是采用script标签引入react的方式创建项目。●使

如何使用react做安卓app

如何使用react做安卓app一、首先,我们先创建一个react项目作为演示。1.全局安装create-react-app#全局安装 npminstall-gcreate-react-app2.构建一

如何使用react开发项目

如何使用react开发项目1、环境搭建开发react项目,环境搭建是第一步,react开发需要搭建nodejs环境,因为使用官方的脚手架搭建项目最为简单,而脚手架和webpack依赖于nodejs。w

如何用react构建单页面

如何用react构建单页面react构建单页面需要使用react-router-dom库,所以我们需要先安装npminstallreact-router-dom-S下面以一个例子讲解,react构建单

如何下载使用react.js

如何下载使用react.js一、下载react.js、react-dom.js和babel.js在浏览器中输入这三个地址,将得到的页面全选后复制粘贴到本地的文件中,分别对应react.js、react

如何使用react native

如何使用reactnative一、首先安装react-native-cli脚手架工具npminstall-greact-native-cli二、使用react-native-cli创建一个初始化的工程

Go编程语言教程_1.3. Golang的Hello World

你好,世界!是任何编程语言中的第一个基本程序。让我们使用以下步骤用Go语言编写第一个程序: 首先打开Go编译器。在Go语言中,该程序以.go扩展名保存,它是UTF-8文本文件。 现在,首先在程序中添加

gRPC-Go 和 Java 的一次 HelloWorld(十)

都说grpc是跨语言的一个rpc框架,当团队内部有多种流行编程语言时,那么grpc可以为他们提供通信,今天我们就通过一个HelloWorld来看看Java和Go是怎么通信的,一起实践吧,只有亲身实践才

Go语言高级编程_1.2 Hello, World 的革命

1.2Hello,World的革命 在创世纪章节中我们简单介绍了Go语言的演化基因族谱,对其中来自于贝尔实验室的特有并发编程基因做了重点介绍,最后引出了Go语言版的“Hello,World”程序。其实

献给 Hello World!的建筑师 (写于版主第一天)

写在前面的话时长13周,终于坚持下来了。感觉这个过程就是一个几度想放弃,但又“真香”的过程,期待更多人坚持下来,加油!实习版主的历程当时为什么选择申请实习版主,老实说我是受上一任版主@Epona影响的

陶建辉:通过技术“Leave a dent in the world”

“让我们一起奔跑,去追求卓越而不是平庸的一生!”今年8月份北京涛思数据创始人CEO陶建辉以此为题在自己的公众号“爱倒腾的程序员”上重发旧文自勉,提醒自己,提醒团队,不忘初心。涛思数据创始人CEO陶建辉

《2019 Dell Technologies World》观后感

这是我第二次参加DellTechnologiesWorld大会:同样的时间、同样的地点、不一样的内容、不一样的感受!五一劳动节期间,一年一度的戴尔科技集团全球大会在拉斯维加斯隆重举行。今年是戴尔公司成

深入浅出百亿请求高可用Redis(codis)分布式集群揭秘

摘要:作为noSql中的kv数据库的王者,redis以其高性能,低时延,丰富的数据结构备受开发者青睐,但是由于redis在水平伸缩性上受限,如何做到能够水平扩容,同时对业务无侵入性是很多使用redis

怎么用react写界面

怎么用react写界面用react写页面,官方的做法是采用jsx语法,JSX是一种JavaScript的语法扩展,运用于React架构中,其格式比较像是模版语言,但事实上完全是在JavaScript内

怎么用react写登陆框

怎么用react写登陆框1、创建一个Login组件,添加userName和userPassword状态;2、为输入框绑定onChange事件到changeUsername和changePassword

用react怎么做移动端

用react怎么做移动端1、首先使用create-react-app脚手架创建react项目;2、然后打开index.html文件,在头部添加meta元数据,设置用户网页的可视区域宽度为设备的宽度,初

用react怎么插图片

用react怎么插图片1、img标签引入图片因为react其实是通过js的reader函数渲染的页面,所以直接写src=“路径”是无法引入图片需要用下面的方式引入2、背景图片引入1第一种就是常规的新建