If文は、コードを実行する前に真である必要がある複数の要件を持つことができます。andキーワードを使用すると、ステートメントを組み合わせることができます。以下のコードは、最初に2足す2が6に等しいかどうかを評価し、次に4が6に等しくないかどうかを評価します。両方のステートメントが真であれば、コードが実行されます。
-- 実行されません
if 2 + 2 == 6 and 4 ~= 6 then
print("両方のステートメントが真です")
end
-- 実行されます
if 4 + 2 == 6 and 4 ~= 6 then
print("両方のステートメントが真です")
endパワーアップを作成する
パワーアップは、プレイヤーに飛行、透明、またはスピードなどの特別な能力を与えるゲーム内アイテムです。このパワーアップは、パワーアップが触れられるたびにプレイヤーの歩行速度をブーストします。ブーストを継続的に適用すると、プレイヤーが非常に速くなりすぎる可能性があるため、andを使用して上限の歩行速度を制御します。
パワーアップの設定
このコードを、クリスタル、コイン、または光るネオンオーブなどのシンプルなパートまたはモデルと一緒に使用します。
Powerupという名前の新しいパートを作成し、WalkSpeedManagerという名前のスクリプトを挿入します。
speedBoostという名前の変数を宣言し、スクリプトの親オブジェクトを割り当てます。
-- 触れたときに一時的なスピードブーストを与えますlocal speedBoost = script.ParentonTouchという名前の関数を設定し、それを親オブジェクトのTouchedイベントに接続します。次に、プレイテストを行い、作業を確認します。
local speedBoost = script.Parentlocal function onTouch(otherPart)print("何かがspeedBoostに触れました")endspeedBoost.Touched:Connect(onTouch)WalkSpeedプロパティはHumanoidオブジェクトにあります。トラップパートを作成する際に使用したのと同じパターンを使用して、Humanoidオブジェクトをチェックする条件を作成します。
Humanoidパーツを探しますlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenprint("Humanoidが見つかりました")endend
プレイヤーを速くする
スピードブーストは、スピードブーストに触れるたびにアバターを速く歩かせます。それはすぐに非常に速くなります。andキーワードは、プレイヤーが特定の速度未満である場合にのみスピードブーストを有効にすることで、プレイヤーが速くなりすぎないようにします。
Humanoidが見つかった場合、現在のWalkSpeed値に10を加えます。プレイテストを行うと、アバターはスピードブーストに触れるたびに速くなります。
現在のWalkSpeedを増加させますlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenhumanoid.WalkSpeed += 10endendspeedBoost.Touched:Connect(onTouch)if文の中で、andキーワードを使用して、現在のWalkSpeed値が50未満であるという2つ目の条件を追加します。ブーストを追加した後、最速のWalkSpeed値は60になります。
現在のWalkSpeedが50以下かどうかをチェックしますif humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10end
スピードブーストを微調整する
onTouchは、スピードブーストに触れるたびに呼び出されます。すべてのステップやわずかなバウンドがTouchedイベントをトリガーし、接続された関数を呼び出します。パートのプロパティCanTouchは、Touchedイベントが発火するのを防ぐことができます。CanTouchを利用して、アクティブ化されるたびに1秒間スピードブーストをオフにします。
ブーストを適用した後、パートのCanTouchプロパティをfalseに設定します。プレイテストを行い、ブーストが1回だけ適用されることを確認します。
スピードブーストを無効にしますlocal speedBoost = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10speedBoost.CanTouch = falseendendspeedBoost.Touched:Connect(onTouch)task.wait(1)を使用してスクリプトを1秒間一時停止し、その後CanTouchをtrueに設定します。プレイテストを行い、1秒後にスピードブーストが再適用できることを確認します。
完成したスクリプトlocal speedBoost = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10speedBoost.CanTouch = falsetask.wait(1)speedBoost.CanTouch = trueendendspeedBoost.Touched:Connect(onTouch)完成したスクリプトの値で遊んでみてください。WalkSpeedは100まで上昇できます。デフォルトのWalkSpeed値は16です。
まとめ
andキーワードは、コードのチャンクを実行する前に複数の条件を要求するために使用できます。たとえば、値が0より大きく100未満であることや、Humanoidが存在し、そのWalkSpeedが50以下であることなどです。