如果要在執行程式碼之前,需要滿足多個需求的話。 關鍵字 and 允許你組合關鍵字。 以下程式碼評估先是要在兩個以上的情況下評估,再在四個以下的情況下評估。如果兩個關鍵字都是真的,程式碼就會執行。
-- 不會執行if 2 + 2 == 6 and 4 ~= 6 thenprint("Both statements are true")end-- 會執行if 4 + 2 == 6 and 4 ~= 6 thenprint("Both statements are true")end
創建強化道具
強化道具是體驗道具,可以給玩家特殊能力,例如飛行、隱形或速度。這個強化道具會每次強化玩家的走路速度。持續添加強化道具可以讓玩家走得太快,因此 and 將用於控制上限。
設定強化道具
使用此代碼與簡單零件或模型,例如水晶、硬幣或發光的霓虹球。
創建名為 Powerup 的新零件,並且插入名為 WalkSpeedManager 的指令碼。
宣告變量名稱 speedBoost 並且設定指定的 script 的父級對物件。
-- 觸摸時提供暫時速度提升local speedBoost = script.Parent設置名為 onTouch 的函數,並將其連接到親對物件的 Touched 事件。然後玩測並檢查您的工作。
local speedBoost = script.Parentlocal function onTouch(otherPart)print("Something touched speedBoost")endspeedBoost.Touched:Connect(onTouch)WalkSpeed 屬性在人形物件上找到。使用創建陷阱零件時使用的樣式,並且在創建條件中檢查人形物件。
尋找人形零件local function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenprint("A Humanoid was found")endend
向上滾動玩家
速度提升會讓虛擬人偶每次觸發速度提升時走得更快。這會很快變得非常快。關鍵字 and 會確保玩家只能啟用速度提升,如果玩家位於特定速度下。
如果找到人形,請取得目前的 WalkSpeed 值,並且在 10 上面加。 測試,您的虛擬人偶每次碰觸速度提升時會獲得更快。
增加目前的 WalkSpeedlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenhumanoid.WalkSpeed += 10endendspeedBoost.Touched:Connect(onTouch)在 if 句中,使用關鍵字 and 來添加第二個條件,即目前的 WalkSpeed 值小於 50。 之後,加速後的最快走路速度將為 60。
檢查目前的 WalkSpeed 是否為 50 或更低if humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10end
精細調整速度強化
OnTouch 會在速度強化每次觸摸時呼叫。 每個步驟或輕微彈跳都會喚發 Touched 事件並呼叫連接的函數。 零件的屬性, CanTouch 可以讓 Touched 事件從發射到關閉。 利用 CanTouch 並在速度強化啟動時關閉速度強化。
在添加強化後,將零件的 CanTouch 屬性設為 false。請進行遊戲測試並確認強化只適用於一次。
停用速度提升local speedBoost = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10speedBoost.CanTouch = falseendendspeedBoost.Touched:Connect(onTouch)使用 task.wait(1) 暫停指令碼,然後將 CanTouch 設定為 true。請測試並確認速度強化可以在一秒後重新套用。
已完成的指令碼local speedBoost = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10speedBoost.CanTouch = falsetask.wait(1)speedBoost.CanTouch = trueendendspeedBoost.Touched:Connect(onTouch)玩值在完成的指令碼中。WalkSpeed 可以去 100。預設的WalkSpeed 值是 16。
摘要
關鍵字 and 可以用來在執行代碼塊前需要多個條件,例如值是 0 或小於 100。或者,如果有人形和其走路速度是 50 或小於 100 。