今天,我們將會做出像以下動畫的跑酷遊戲
這應該沒什麼難度啦,Part拉一拉放一放,然後記得固定就好
接下來,在每一塊紅色霓虹材質的Part裡新增一個腳本
接下來,這項程式的邏輯會是當這個Part被碰到的時候,先判斷碰到的Part的父項目是否為玩家的角色,如果是的話則把玩家角色內的Humanoid屬性的Health (生命值)屬性設為0
首先,先定義好函式
function OnTouch()
end
接著在函式內放入一項參數,這項參數是碰到這個Part的物件
function OnTouch(Hit)
end
在函式內先定義好如何取得玩家的資訊,以便後續的判斷
function OnTouch(Hit)
local Player = game.Players:GetPlayerFromCharacter(Hit.Parent)
end
上述所使用的函式為從玩家的角色模型取得完整的玩家資訊,以便後續判斷碰到的是否為玩家
接著就是判斷
function OnTouch(Hit)
local Player = game.Players:GetPlayerFromCharacter(Hit.Parent)
if Player == true then --我們在判斷式那章節有講過,這個== true可以省略
end
end
然後再來取得玩家角色內的Humanoid屬性物件
function OnTouch(Hit)
local Player = game.Players:GetPlayerFromCharacter(Hit.Parent)
if Player then
local Humanoid = Player.Character.Humanoid
end
end
取得生命值屬性並設為0
function OnTouch(Hit)
local Player = game.Players:GetPlayerFromCharacter(Hit.Parent)
if Player then
local Humanoid = Player.Character.Humanoid
Humanoid.Health = 0
end
end
最後在連接函式就完成了
function OnTouch(Hit)
local Player = game.Players:GetPlayerFromCharacter(Hit.Parent)
if Player then
local Humanoid = Player.Character.Humanoid
Humanoid.Health = 0
end
end
script.Parent.Touched:Connect(OnTouch)
然後記得把這些程式碼貼到所有的死亡方塊裡面
接下來我們可以直接拿剛剛寫好的死亡方塊來改
首先,先複製一份死亡方塊的腳本並貼到一個消失方塊裡面
然後打開腳本,把剛剛將玩家的生命值設為0的指令刪掉
function OnTouch(Hit)
local Player = game.Players:GetPlayerFromCharacter(Hit.Parent)
if Player then
end
end
script.Parent.Touched:Connect(OnTouch)
這項程式的邏輯為當此物件被碰到時,先判斷是否為玩家,若碰到的對象為玩家則等待0.5秒,然後將此物件的透明度設為1 (完全透明),並將可觸碰設為否,在等0.5秒後將上述步驟回復
首先,先使用task.wait指令讓程式等待0.5秒
function OnTouch(Hit)
local Player = game.Players:GetPlayerFromCharacter(Hit.Parent)
if Player then
task.wait(0.5)
end
end
script.Parent.Touched:Connect(OnTouch)
然後將物件的透明度設為1、可觸碰設為否
function OnTouch(Hit)
local Player = game.Players:GetPlayerFromCharacter(Hit.Parent)
if Player then
task.wait(0.5)
script.Parent.Transparency = 1
script.Parent.CanCollide = false
end
end
script.Parent.Touched:Connect(OnTouch)
接著再等待0.5秒,將上述步驟反過來做
function OnTouch(Hit)
local Player = game.Players:GetPlayerFromCharacter(Hit.Parent)
if Player then
task.wait(0.5)
script.Parent.Transparency = 1
script.Parent.CanCollide = false
task.wait(0.5)
script.Parent.Transparency = 0
script.Parent.CanCollide = true
end
end
script.Parent.Touched:Connect(OnTouch)
最後的成果會像這樣
我們在這次的賽程中會時不時出現像今天這種小小的應用單元,用來檢核自己在前面的單元是否都有學會,而我們在後續的應用單元2會繼續使用這項專案,還請各位寫完後不要刪掉。
好啦今天太嚴肅了講個好笑的,昨天我跟朋友在做遊戲的時候,我們就剩最後的部分了,而我的部分已經寫完了,剩下他的動畫,但我運行的時候就覺得很奇怪,明明看的時候動畫是正確位置的,但運行的時候它的位置就是往下移了三格,我就一直找我的程式裡面有沒有動到動畫,但都沒有找到,結果在最後是我那個白癡朋友沒有把那的動畫的角色固定 XP
註: 他是做建模的