Rule Making

タイマー

制限時間を作って、コースにハラハラ感を出すギミック

00

画面の上に残り時間が出て、ゴールまで急ぎたくなる。

このギミックのルール

1秒ごとに数字をへらして、0になったら失敗にする。

Studioで作るもの

ScreenGuiTimerLabelLocalScript
  1. StarterGuiにScreenGuiを入れる。
  2. ScreenGuiの中にTextLabelを入れて、名前を TimerLabel にする。
  3. TextLabelの中にLocalScriptを入れる。
  4. まずは画面に数字を出すところから始める。

考え方の図解

1

残り時間を決める

2

画面に表示する

3

1秒待つ

4

数字を1へらす

5

0までくり返す

Typing Time

手で書いてみよう

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

1行ずつ写す黄色の説明を読む数字を変えて実験する
-- 1. 画面の文字をつかまえるlocal label = script.Parent -- 2. 残り時間を決めるlocal timeLeft = 60 -- 3. 残り時間が0より大きいあいだ、くり返すwhile timeLeft > 0 do    -- 画面に残り時間を出す    label.Text = "のこり " .. timeLeft .. " 秒"    task.wait(1)    -- 1秒たったので、数字を1へらす    timeLeft = timeLeft - 1end -- 4. 0になったら、最後の文字を出すlabel.Text = "タイムアップ!"
LocalScriptは、画面表示などプレイヤーごとの動きに使う。
.. は文字と数字をつなげる記号。
while timeLeft > 0 do は、残り時間が0より大きいあいだくり返すという意味。
慣れたら、0になった時にスタート地点へ戻す処理を足せる。

Remix Missions

改造ミッション

Power Up Code

改造ミッションのコード

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

30秒タイマーにする

最初の数字を変えるだけで、短いチャレンジコースになります。

-- 60秒から30秒に変えるlocal timeLeft = 30

10秒以下で文字を赤くする

残り時間が少ない時だけ、文字の色を変えます。

-- whileの中、label.Textのあとに追加if timeLeft <= 10 then    label.TextColor3 = Color3.fromRGB(255, 60, 60)end

ゴールしたらタイマーを止める

WorkspaceにGoalを置き、触ったらfinishedをtrueにします。

-- Scriptの最初のほうに追加local goal = workspace:WaitForChild("Goal")local finished = false goal.Touched:Connect(function(hit)    local humanoid = hit.Parent:FindFirstChild("Humanoid")     if humanoid then        finished = true        label.Text = "ゴール!"    endend) -- whileの条件をこれに変えるwhile timeLeft > 0 and finished == false do