Reworld做一个黄金矿工游戏

功能效果展示:

运行环境

Win7,Win8,Win10

Reworld版本 体验版

vc_redist.x64 运行环境

针对零基础读者的补充

下载安装 Reworld对应版本

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

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

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

功能介绍

射线是一种看不到的线。射线用于通过玩家的客户端输入方式获得3D场景内实体,从而实现玩家与3D的实体单位进行交互的功能。常见的用法有射击获得射击目标,鼠标点击场景等。

射线也可用于实体的物体之间,从一个物体发出射线,从而获得射线方向上的零件和角色。可用于判定指定物体的某个方向上是否有目标,或者计算物体之间的距离等。

功能之间对比

相同:点击触发器和射线都可以实现与实体交互;

区别:只有添加了点击触发器的零件或者角色才可以交互,射线与任何零件都可以交互。

功能用法限制

射线在击中角色时返回的是整个角色。

思路分析:

功能效果为角色点击金矿,生成一条线连接角色和金矿,金矿被拉向角色,靠近后消失,金矿数量增加并显示。

角色点击金矿,用鼠标点击事件,点击后获得被点击的金矿零件,使用射线功能可以获得。生成线采用全局服务中的画线服务;金矿被拉向角色,使用坐标计算。靠近消失并增加数量显示在界面上,用销毁函数和文本控件即可。

功能搭建:

1、用地形刷一条道路出来

2、用基础零件做一个金矿,因为最终需要通过坐标计算实现移动,所以金矿要是一整个零件。

3、调整镜头参数,使视角合适,将数值记录下来:

4、做一个显示金矿数量的UI界面:

5、关闭不必要的UI模板:

6、设定为一个单机游戏,所以代码都可以写在客户端脚本里。创建客户端脚本,编写代码如下。

wait(2)

local player = Players:GetLocalPlayer()--获取玩家

local speed = 5--金矿的移动速度

local iscd = true--是否已经拉着一个金矿

local goldtxt = GameUI.黄金界面.黄金数--金币数的UI界面

local goldnum = 0--金币获得总数

GameUI.黄金界面.黄金数.Text = goldnum--金币数显示初始化

WorkSpace.CurCamera.MaxZoomDistance = 30--设置相机参数

WorkSpace.CurCamera.Distance = 15

WorkSpace.CurCamera.Pitch = 3.6

WorkSpace.CurCamera.Offset = Vector3(0,-4,0)

WorkSpace.CurCamera.Yaw = 90

WorkSpace.CurCamera.CameraType = Enum.CameraType.Fixed

localfunction CollectGold()--定义方法

if iscd == truethen--如果没有正在采集的金矿

iscd = false--进入采集状态,不可以再次采集

local ray = WorkSpace.摄像机:ScreenToRay(Mouse.MousePosition) -- 根据鼠标的屏幕位置发射射线,

local e,p = WorkSpace:FindObjOnRay(ray,WorkSpace.新底板) --检测射线打中的零件对象

if e and e.Name == "金矿"then--如果打中了金矿

local path = {player.Avatar.Position,e.Position}--将角色和零件为起始点

local dspos = e.Position

DrawLine(path)--使用划线服务画出线

while Vector3.Distance(e.Position,player.Avatar.Position) > 1 do--当金矿与人的距离大于1时,金矿逐渐向角色移动

local lenth = Vector3.Normalize(e.Position - player.Avatar.Position)

e.Position = e.Position - lenth*(0.01*speed)

UnDrawLine()--刷新线条

local startpos = player.Avatar.Position+ Vector3(0,0.5,0)

local uppath = {startpos,e.Position}

DrawLine(uppath)

wait(0.01)

end

e:Destroy()--金矿距离足够近时,销毁金矿

UnDrawLine()--取消线条

goldnum = goldnum + 1--增加金矿数量

GameUI.黄金界面.黄金数.Text = goldnum--显示金矿数目

iscd = true--可以再次采集

end

end

end

Mouse.MouseButtonLeftDown:Connect(CollectGold)--鼠标左键点击触发

以上是 Reworld做一个黄金矿工游戏 的全部内容, 来源链接: utcz.com/a/19104.html

回到顶部