コンピュータサイエンスやゲーム開発には、多くの事象が繰り返されることがよくあります。たとえば、アプリがフィードのコンテンツを数秒ごとに更新したり、ゲームがプレイヤーがログインしている毎日賞品を与えたりすることがあります。このような動作を実現するために、コーダーはしばしば ループ を使用します。
コンピュータサイエンスにおいて、ループ とは、一連の命令を指定された条件が満たされるまで繰り返すコーディングパターンです。これを練習するために、無限に色を変更するパートをコードします。後のレッスンでは、ループを停止する方法を示します。
パートとスクリプトのセットアップ
この演習には任意の Roblox プロジェクトを使用します。完成したら、このパートは環境を飾る方法として使用できます。
説明的な名前の新しいパートを作成します。このレッスンでは LoopingPart を使用します。
ServerScriptService に新しいスクリプトを追加し、名前を LoopingScript とします。
スクリプト内で Hello World を削除し、このスクリプトの目的を示す コメント を記述します。
-- LoopingPart の色を数秒ごとに変更します
パートを保存する変数を使用
変数は、文字列以外のオブジェクトの参照も保持できます。たとえば、スクリプトがパートの参照を知っている場合、スクリプトでそれを変更できます。
workspace.NameOfYourPart を何度も入力する代わりに、全体の行をローカル変数に保存できます。ローカル変数は local と変数名を入力することで作成されます。
たとえば:local nameOfVariable。
コメントの下に、local loopingPart と入力してローカル変数を作成します。
-- LoopingPart の色を数秒ごとに変更しますlocal loopingPart同じ行で = workspace.LoopingPart と入力して変数をループパートに設定します。= 演算子は、変数の値を右側の内容に設定します。
-- LoopingPart の色を数秒ごとに変更しますlocal loopingPart = workspace.LoopingPart
while ループ
色が変更されるパートのための while ループを作成する前に、その構文を説明することが重要です。while ループには3つのコンポーネントがあります:
- while キーワード。
- 条件、常にキーワードの後に続く。
- do と end キーワードの間の命令。
ループ内の条件は、さまざまな論理文である可能性があります。たとえば、2つの数字が同じかどうかということです。条件が真である限り、ループは実行されます。
以下のサンプルを見てください。条件が真であるため、このループは永遠に実行されます。後のレッスンでは、停止する特定の条件をコーディングします。
while true doprint("このループは実行中です")end
while ループをコードする
次に、色が変更されるパートのための while ループを設定します。
次の行に while true do と入力します。次に、Enter を押して, 自動補完して end を追加します。
-- loopingPart の色を数秒ごとに変更しますlocal loopingPart = workspace.LoopingPart-- ループコードwhile true doend
ループ内にコードを追加
while ループが作成されたので、時間の経過とともにパートの色を変更する命令を追加できます。ループ内で、各色のコード行を追加します。各色は RGB 値を使用し、コンピュータサイエンスにおいて色を数字で保存する方法です。
while true do と end の間に、パートの Color プロパティを Color3.fromRGB() に設定します。
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB()endスタジオ内でカラーピッカーを使用して色を設定できます。そのためには、fromRGB の () 内を左クリックします。次に、カラーホイールアイコンをクリックします。希望の色が見つかったら、OK を押して自動的にコードに色の値を追加します。
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)end
スクリプトに待機を追加
今すぐ色を変更する2行目を追加すると、レンガの色が速すぎて最初の色がどれも見えないかもしれません。次のコード行を実行する前にスクリプトに待機させるためには、task.wait() 関数を使用します。
レンガの色を変更した後の行に task.wait(3) と入力します。 () 内に配置する数字がスクリプトが待機する秒数になります。
local loopingPart = workspace.LoopingPartwhile true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)end待機関数の下に、新しい色を追加する同じプロセスを繰り返します。追加の待機関数で終わります。
while true doloopingPart.Color = Color3.fromRGB(82, 227, 255)task.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)endコードをテストして、色が変更されるか確認します。
トラブルシューティングメモ
この時点で、色が変更されるパートが意図したとおりに動作しない場合は、以下のいずれかを試してください。
問題: 色がスキップされる
- 各色変更の間に待機関数があることを確認してください。特に最終行で。
- すべての色変更および待機コードが while true do と end の間にあることを確認してください。
問題: パートがまだ灰色だったり、意図した通りに色が変わらない
- すべての RGB 値が 0 から 255 の範囲であり、整数または小数であり、コンマで区切られていることを確認してください。
- 待機関数の () 内の数字は 1 より大きい必要があります。待機が短すぎると、その色を見ることができない場合があります。
完全な色のループパートスクリプト
-- パートを保存するための変数を作成local loopingPart = workspace.LoopingPart-- ループコードwhile true do-- loopingPart の色を変更loopingPart.Color = Color3.fromRGB(82, 227, 255)-- 次の命令の前に 3 秒待機task.wait(3)loopingPart.Color = Color3.fromRGB(177, 52, 255)task.wait(3)end
まとめ
ループはほとんどのコンピュータ言語に共通の要素です。特定の条件が満たされるまで命令を繰り返すために使用されます。この記事では、while ループを使用して命令を永遠に繰り返します。永遠に繰り返す while ループを作成するには、以下の構文を使用し、do と end キーワードの間に命令を含めることを確認してください。
while true do-- 命令end