もし/その後、トラップで練習する

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

プレイヤーの体力を減少させるトラップは、条件付き文が使用できる楽しいゲームプレイ要素です。プレイヤーの体力をタッチするとゼロに設定するパーツを作成して、条件付きを練習する

トラップを設定する

トラップは、動作ベースの課題のあるエクスペリエンスで非常にうまく機能し、例えば obby です。これらのステップは、必要な変数と機能を設定して開始します。最初にコードボックスを見ずに、できるだけ多くのことを行います。

  1. トラップパーツを作成して名前を付ける。パーツにスクリプトを挿入する。

  2. スクリプトで説明コメントを追加し、変数を使用してスクリプトの親を参照します。


    -- プレイヤーがこの部分に触れた場合、体力を 0 に設定する
    local trapPart = script.Parent
  3. パラメータ onTouch() という名前の関数を作成し、パラメータ otherPart という名前を持つ。


    -- プレイヤーがこの部分に触れた場合、体力を 0 に設定する
    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
  4. 機能をトラップパーツの Touched イベントに接続して、パーツに何かが触れるたびに実行します。


    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
    trapPart.Touched:Connect(onTouch)

プレイヤーのタッチをチェック

パラメータ otherPart は、プレイヤーの一部またはベースプレートのみである可能性のあるトラップパーツに触れることを記録します。

トラップがプレイヤーのみを破壊し、ランダムな装飾アイテムを破壊しないようにするには、if/then 文を使用して otherPart に含まれるものがヒューマノイドオブジェクトかどうかをチェックします。

特定のオブジェクトを見つける

機能 FindFirstChildWhichIsA() は、特定のオブジェクトタイプを検索するのに使用でき、Humanoid タイプのオブジェクトを検索しているので便利です。プレイヤーはおそらくアバターの一部だけでトラップに触れるので、タッチした部分の親を見つけてヒューマノイドを検索するための変数を設定する必要があります。

  1. In onTouch() , type local character = otherPart.Parent


    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- 他のパーツの親オブジェクトを見つける
    local character = otherPart.Parent
    end
    trapPart.Touched:Connect(onTouch)
  2. チェックして、characterHumanoid があるかどうかをタイプして確認します:

    local humanoid = character:FindFirstChildWhichIsA("Humanoid")


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    end
    trapPart.Touched:Connect(onTouch)

if 文でチェック

ヒューマノイドが見つかった場合は、ヒューマノイドの健康をゼロに設定します。

  1. if 文を使用して、ヒューマノイドが local humanoid に成功して割り当てられたかどうかをチェックします。


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- ヒューマノイドが見つかったかどうかを評価する
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. 印刷文を追加し、これまでのコードをチェックします。


    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- ヒューマノイドが見つかったかどうかを評価する
    if humanoid then
    print("Found a Humanoid")
    end
    end
    trapPart.Touched:Connect(onTouch)
  3. コードを実行して、プレイヤーがパーツに触れるたびに出力が表示できるか確認する

プレイヤーの体力を変更

文が真である場合、同じヒューマノイド変数を使用して、プレイヤーの健康を 0 に設定できます。

  1. 間の thenend 、タイプ humanoid.Health = 0

    完了したスクリプト

    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- ヒューマノイドが見つかったかどうかを評価する
    if humanoid then
    print("Found a Humanoid")
    humanoid.Health = 0
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. トラップをテストする。

概要

このトラップパーツは条件を使用してヒューノイドパーツを検出し、ヒューノイドの健康をゼロに設定しました。このスクリプトは、何であれ触れるオブジェクトを破壊した以前のトラップスクリプトの改良です。

しかし、まだいくつかの欠点があります。ヒューマノイドはプレイヤーだけにいるのではありません。ヒューマノイドは、プレイできないキャラクターにも見つかります。スクリプトは、プレイヤーの健康をゼロに設定するのにも良いだけです。少量の健康を控除する実験を行うことができますが、健康が想定よりも速く控除される可能性が高いです。後でレッスンを提供すると、プレイヤーからどの程度の健康が控除されるかをより大きく制御できるようになります。