このレッスンの学習内容

  1. コインとIntValue(Value変数)を使って、みんな共通のカウントを作る
  2. クローンエリアでコインを無限に出し続ける
  3. コイン数でステージを変化させる

学習準備

Roblox Studio を開いて、自分のアカウントでログインしておきましょう。
前回保存していた「実験用ステージ04」を開いておきます。

使用する機器 何に使うのか
パソコン Roblox Studio を操作するために使用します。

1. コインを作ってみよう

コインにするブロックを1つ作り、名前を「 コイン 」にして「 固定 」しておきましょう。

円柱や球体・金色がおすすめです。

コインを右クリック→複製、または Ctrl+D で2〜3個に増やして、間隔をあけて並べておきましょう。

2. IntValue(カウント変数)を作ってみよう

Lua には「 local 」を使った変数がありましたが、1つのScriptの中でしか使えませんでした。

今回は複数のScriptからカウントを増やしたりチェックしたりするため、「 IntValue 」というもので変数を作ります。

ポ イ ン ト

「 ReplicatedStorage (レプリケーテッドストレージ)」というどのScriptからも見られる場所に、「 IntValue 」を入れていきます。

  • ReplicatedStorage の「+」をクリック
  • フィルターに「int」と入力する
  • 名前を「コインカウント」にする

3. カウントScript を作ってみよう

コインの1つに Script を入れて、名前を「 カウントScript 」にしておきましょう。以下のコードをコピーして貼り付けます。

-- カウント(IntValue)を見つけてcountという名前で使えるようにする
local count = game.ReplicatedStorage:WaitForChild("コインカウント")

-- プレイヤーに触れたら
script.Parent.Touched:Connect(function(hit)
        if hit.Parent:FindFirstChild("Humanoid") then
                count.Value += 1    -- countのValue(値)を1増やす
                print(count.Name..count.Value) -- 出力に表示する

                script.Parent:Destroy() -- 親ブロックを破壊する
        end
end)
カウントScript の解説を見る

1行目:WaitForChild は、指定したものが見つかるまで待ち続けて、見つかり次第変数に入れてくれます。

count.Value += 1 で、count の Value(値)を1増やしています。

Script の親ブロックが「破壊をする」、つまり自身を削除するコードも入っていますね。これからコインはクローンして無限に増やせるようにするので、削除する形にしています。

4. アレンジに挑戦しよう

コインカウント(元の例)

動き

  • 0からスタート
  • 触れるたびに1ずつ増える

ごみカウント(アレンジ例)

動き

  • 10からスタート
  • 触れるたびに1ずつ減る

コインを取るたびにカウントが増えた!これを使えばごみ拾いゲームのカウントも作れそう!

local の変数と IntValue の違い、やっとわかった気がする。IntValue はどのScriptからも見られるのね。

確認テストへ進む前に

コインとIntValueを使って、カウントを増やす仕組みが作れましたか?作れたら、確認テストに挑戦してみましょう!