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