横にスライドするドアにする
YではなくXを動かすと、横にスーッと開きます。
-- 上ではなく、横に少しずつ動かすdoor.Position = door.Position + Vector3.new(0.2, 0, 0)
Rule Making
スイッチや鍵で道が開く、冒険感のあるギミック
閉まっているドアが、スイッチを踏むと上に上がる。
このギミックのルール
スイッチを踏む
Doorを探す
ドアを上へ動かす
通れる道ができる
Typing Time
黄色の行は、コードの道案内です。声に出して読んでから、その下の命令をゆっくり手打ちしてみよう。
-- 1. ドアを開けるスイッチをつかまえるlocal switch = script.Parent -- 2. 開けたいドアをWorkspaceから探すlocal door = workspace:WaitForChild("Door") -- 3. もう開いたかどうかをメモするlocal opened = false -- 4. スイッチに触ったら、この中が動くswitch.Touched:Connect(function(hit) local humanoid = hit.Parent:FindFirstChild("Humanoid") if humanoid and opened == false then opened = true -- 30回くり返して、ドアを少しずつ上げる for i = 1, 30 do door.Position = door.Position + Vector3.new(0, 0.2, 0) task.wait(0.02) end endend)
Remix Missions
Power Up Code
できたギミックに少し足すだけで、ステージのルールが変わります。まず1つ選んで、黄色の説明を読みながら書いてみよう。
YではなくXを動かすと、横にスーッと開きます。
-- 上ではなく、横に少しずつ動かすdoor.Position = door.Position + Vector3.new(0.2, 0, 0)
開く前の位置を覚えておけば、あとで元に戻せます。
-- Scriptの最初のほうに追加local closedPosition = door.Position -- ドアを開いたあとに追加task.wait(3)door.Position = closedPositionopened = false
WorkspaceにKeyを置いて、鍵に触れたらドアを上げます。
-- Keyの中にScriptを入れるlocal key = script.Parentlocal door = workspace:WaitForChild("Door") key.Touched:Connect(function(hit) local humanoid = hit.Parent:FindFirstChild("Humanoid") if humanoid then key:Destroy() door.Position = door.Position + Vector3.new(0, 6, 0) endend)