Rule Making

動く床

足場が左右にすべって、タイミングを見てジャンプするギミック

->

床が「A地点」と「B地点」のあいだを行ったり来たりする。

このギミックのルール

時間がたつと、床の位置が少しずつ変わる。

Studioで作るもの

MovingPlatformScript
  1. Partを1つ置いて、名前を MovingPlatform にする。
  2. 床を少し横長にして、Anchoredをオンにする。
  3. 床の中にScriptを入れる。
  4. 床が動く道を考えて、右へ10マスくらい動くようにする。

考え方の図解

1

最初の場所をおぼえる

2

右の場所を決める

3

少しずつ動かす

4

反対向きに動かす

Typing Time

手で書いてみよう

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

1行ずつ写す黄色の説明を読む数字を変えて実験する
-- 1. まず、このScriptが入っている床をつかまえるlocal platform = script.Parent -- 2. スタート地点とゴール地点を決めるlocal startPosition = platform.Positionlocal endPosition = startPosition + Vector3.new(12, 0, 0) -- 3. 動く速さを決める。数字を大きくすると速くなるlocal speed = 0.03 -- 4. ずっと行ったり来たりするwhile true do    -- A地点からB地点へ、少しずつ動く    for i = 0, 1, speed do        platform.Position = startPosition:Lerp(endPosition, i)        task.wait()    end     -- B地点からA地点へ、少しずつ戻る    for i = 0, 1, speed do        platform.Position = endPosition:Lerp(startPosition, i)        task.wait()    endend
script.Parent は「このScriptが入っているパーツ」という意味。
Vector3.new(12, 0, 0) は「横に12マス」という意味。
Lerpは、2つの場所のあいだをなめらかに動かす命令。
speedの数字を大きくすると速くなる。

Remix Missions

改造ミッション

Power Up Code

改造ミッションのコード

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

上下に動く床に変える

endPositionのYだけを変えると、エレベーターみたいに動きます。

-- 横ではなく、上に12マス動かすlocal endPosition = startPosition + Vector3.new(0, 12, 0)

動く距離を短くする

12を6にすると、行ったり来たりする距離が半分になります。

-- 近い場所まで動く床になるlocal endPosition = startPosition + Vector3.new(6, 0, 0)

スピードを変えて難しくする

speedを大きくすると速く、小さくするとゆっくりになります。

-- 速い床にチャレンジlocal speed = 0.06