roblox 杂记

用户头像
katichar
关注
发布于: 2020 年 12 月 07 日



ForceField



当角色生成在 SpawnLocation 处,且 SpawnLocation.Duration 属性大于零时,就会创建 ForceField 。

ForeField 会影响其父类实例。当父类实例为 Model 时,将会保护该 Model 所有的子级 BasePart 。父类实例为 BasePart 时,只有当该部件与其连接部件都拥有 Forcefield 时,才会为其提供保护。



掉落动画

可以用2种方式实现,一种是给物体加个力,让物体按物理的方式移动,给物体加力可以使用BodyForce



 



为了只给物体一个初始速度,可以配合Debris使用,Debris可以让指定实例在设置的时间删除

local Debris = game:GetService("Debris")

Debris:AddItem(game.Workspace.Part.BodyForce, 1)

为了确定力的大小,可以通过part的质量计算出重力,然后在估算施加多大的力可以让物体飞出来

local mass = part:GetMass()

local gravity = game.Workspace.Gravity * mass

 

如果想指定掉落的路线,可以使用第二种方法,缓动动画

local TweenService = game:GetService("TweenService")

local tween = TweenService:Create(game.Workspace.Part, TweenInfo.new(5), {Position = Vector3.new(4.33, 0.5, 16.35)})

tween:Play()

TweenService api:

https://developer.roblox.com/en-us/api-reference/class/TweenService

TweenInfo第二个参数的效果:

https://developer.roblox.com/en-us/api-reference/enum/EasingStyle

通过设定好相对偏移来计算掉落的轨迹也是可以的。

关于包裹的掉落

建议将包裹分别做成一个Model和一个Tool,玩家装备的包裹是个Tool,掉落的包裹是Model,当火箭筒炸到玩家后,监听火箭的Touched事件,Touched事件完成如下操作,首先将装备的Tool包裹删掉,然后克隆一个Model包裹到场景中

local tool = hitPart.Parent:FindFirstChildWhichIsA("Tool")

tool:Destroy()

local xx = game.ReplicatedStorage.Model:Clone()

xx.Parent = game.Workspace

xx:SetPrimaryPartCFrame(CFrame.new(Vector3.new(x, y, z)))

即可实现掉落效果



1.    将人物传到某一个坐标点

player.Character:SetPrimaryPartCFrame(CFrame.new(Vector3.new(x, y, z)))

相关api

https://developer.roblox.com/en-us/api-reference/function/Model/SetPrimaryPartCFrame



1.    隐藏NPC头顶UI

修改BillboardGui的MaxDistance属性



1.    背包上限

参考Starting Place模板里的宝箱代码 ChestLan - >Script





这部分代码是克隆一个Tool保持引用,并将Tool转化成Model,防止玩家碰到Tool之后,直接给玩家。

这部分代码是玩家碰到宝箱后,宝箱将刚才引用的Tool给玩家,在这里加背包上限判定的方法就好了



用户头像

katichar

关注

Just Do It!!! 2019.04.09 加入

Just Do It!!!

评论

发布
暂无评论
roblox 杂记