Rule Making

スイッチ

踏むと何かが起きる、コースのルールを変えるボタン

[]

黄色いボタンを踏むと、近くのランプが緑に変わる。

このギミックのルール

プレイヤーがスイッチを踏んだら、別のパーツに合図を送る。

Studioで作るもの

SwitchLampScript
  1. Partを1つ置いて、名前を Switch にする。
  2. もう1つPartを置いて、名前を Lamp にする。
  3. Switchの中にScriptを入れる。
  4. LampはWorkspaceの中に置いておく。

考え方の図解

1

スイッチが踏まれる

2

Lampを探す

3

色を変える

4

スイッチを少しへこませる

Typing Time

手で書いてみよう

黄色の行は、コードの道案内です。声に出して読んでから、その下の命令をゆっくり手打ちしてみよう。

1行ずつ写す黄色の説明を読む数字を変えて実験する
-- 1. 踏むスイッチをつかまえるlocal switch = script.Parent -- 2. 動かしたい別パーツをWorkspaceから探すlocal lamp = workspace:WaitForChild("Lamp") -- 3. もう押したかどうかをメモするlocal pushed = false -- 4. スイッチに触ったら、この中が動くswitch.Touched:Connect(function(hit)    local humanoid = hit.Parent:FindFirstChild("Humanoid")     if humanoid and pushed == false then        pushed = true        -- ランプを緑にして「成功!」を見せる        lamp.BrickColor = BrickColor.new("Lime green")        -- スイッチを少し下げて、押した感じにする        switch.Position = switch.Position + Vector3.new(0, -0.2, 0)    endend)
workspace:WaitForChild("Lamp") は、Workspaceの中からLampを探す命令。
pushedは「もう押したかな?」を覚える変数。
BrickColorを変えると、スイッチが効いたことが見た目で分かる。
このスイッチをドアや橋とつなげると、コースのしかけになる。

Remix Missions

改造ミッション

Power Up Code

改造ミッションのコード

できたギミックに少し足すだけで、ステージのルールが変わります。まず1つ選んで、黄色の説明を読みながら書いてみよう。

押したら音を鳴らす

Switchの中にSoundを入れて、名前を PushSound にします。

-- Scriptの最初のほうに追加local sound = switch:WaitForChild("PushSound") -- スイッチが押されたところに追加sound:Play()

押したら橋を出す

WorkspaceにBridgeを作り、最初は透明で通れないようにしておきます。

-- Scriptの最初のほうに追加local bridge = workspace:WaitForChild("Bridge")bridge.Transparency = 1bridge.CanCollide = false -- スイッチが押されたところに追加bridge.Transparency = 0bridge.CanCollide = true

もう一度踏むと元に戻るスイッチにする

pushedをオン/オフ切り替えると、トグルスイッチになります。

-- if humanoid then の中をこれに変えるpushed = not pushed if pushed then    lamp.BrickColor = BrickColor.new("Lime green")else    lamp.BrickColor = BrickColor.new("Really red")end