【animeA】【攻略】如何做一个马里奥顶方块的效果

功能效果展示

image

思路分析

想要实现马里奥顶方块这样的效果,当角色碰撞到方块时,方块四散开来,就需要利用Touched碰撞事件API接口来触发事件。

方块的搭建

1、首先我们创建四个方块,每个颜色都不一样,用来代表不同的效果

image

2、在这些方块下都添加一个服务器脚本

image

3、接着在脚本下添加以下代码

1)、(白色方块)

local Part = script.Parent
Part.Touched:Connect(function(avr)
if avr and avr.Parent and avr.Parent:FindFirstChild(“Humanoid”) and avr.Name == “Head” then
Part.Position = Part.Position + Vector3.new(0,4,0)
end
end)

2)、(绿色方块)

local Part = script.Parent
local true_ = true
Part.Touched:Connect(function(avr)
if avr and avr.Parent and avr.Parent:FindFirstChild(“Humanoid”) and avr.Name == “Head” and true_ == true then
true_ = false
Part.Position = Part.Position + Vector3.new(0,4,0)
Part.Anchored = false
end
end)

3)、(红色方块)

local Part = script.Parent
local TweenService = game:GetService(“TweenService”)
Part.Touched:Connect(function(avr)
if avr and avr.Parent and avr.Parent:FindFirstChild(“Humanoid”) and avr.Name == “Head” then
Part.Position = Part.Position + Vector3.new(0,4,0)
local tweenInfo = TweenInfo.new(
1, – Time
Enum.EasingStyle.Linear, – EasingStyle
Enum.EasingDirection.Out, – EasingDirection
0, – RepeatCount (小于零时 tween 会无限循环)
false, – Reverses (tween 完成目标后会反转)
0 – DelayTime
)
local tween = TweenService:Create(Part, tweenInfo, {Position = Part.Position + Vector3.new(0,4,0), Transparency = 1})
tween.Completed:Connect(function(playbackState) --当前状态
Part:Destroy()
end)
tween:Play()
end
end)

4)、(黄色方块)

local Part = script.Parent
local TweenService = game:GetService(“TweenService”)
local true_ = true
Part.Touched:Connect(function(avr)
if avr and avr.Parent and avr.Parent:FindFirstChild(“Humanoid”) and avr.Name == “Head” and true_ == true then
true_ = false
Part.CanCollide = false
local tweenInfo = TweenInfo.new(
0.2, – Time
Enum.EasingStyle.Linear, – EasingStyle
Enum.EasingDirection.Out, – EasingDirection
0, – RepeatCount (小于零时 tween 会无限循环)
true, – Reverses (tween 完成目标后会反转)
0 – DelayTime
)
local tween = TweenService:Create(Part, tweenInfo, {Position = Part.Position + Vector3.new(0,4,0), Transparency = 1})
tween.Completed:Connect(function(playbackState) --当前状态
true_ = true
Part.CanCollide = true
end)
tween:Play()
end
end)

4、开始测试

补充说明

1.什么是工作区(Workspace)?

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

服务对象。

不可创建。

不可复制。

不可删除。

2.什么是零件?

零件是一个物理对象,当零件在工作区Workspace中时,零件可以移动、变化外形体积、并与其他零件交互。零件是构建世界的基础元件,几乎所有物体都是用零件构建的,可以改变零件大小制作大底板,也可以零件合并、切割创建异形块,也可以使用零件制作角色和工具。

3.什么是服务器脚本?

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

关于我们    加入我们    条款    隐私政策
©2021 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。
粤ICP备20013629号