プレイヤーの体力を減少させるトラップは、条件付き文が使用できる楽しいゲームプレイ要素です。プレイヤーの体力をタッチするとゼロに設定するパーツを作成して、条件付きを練習する
トラップを設定する
トラップは、動作ベースの課題のあるエクスペリエンスで非常にうまく機能し、例えば obby です。これらのステップは、必要な変数と機能を設定して開始します。最初にコードボックスを見ずに、できるだけ多くのことを行います。
トラップパーツを作成して名前を付ける。パーツにスクリプトを挿入する。
スクリプトで説明コメントを追加し、変数を使用してスクリプトの親を参照します。
-- プレイヤーがこの部分に触れた場合、体力を 0 に設定するlocal trapPart = script.Parentパラメータ onTouch() という名前の関数を作成し、パラメータ otherPart という名前を持つ。
-- プレイヤーがこの部分に触れた場合、体力を 0 に設定するlocal trapPart = script.Parentlocal function onTouch(otherPart)end機能をトラップパーツの Touched イベントに接続して、パーツに何かが触れるたびに実行します。
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.Touched:Connect(onTouch)
プレイヤーのタッチをチェック
パラメータ otherPart は、プレイヤーの一部またはベースプレートのみである可能性のあるトラップパーツに触れることを記録します。
トラップがプレイヤーのみを破壊し、ランダムな装飾アイテムを破壊しないようにするには、if/then 文を使用して otherPart に含まれるものがヒューマノイドオブジェクトかどうかをチェックします。
特定のオブジェクトを見つける
機能 FindFirstChildWhichIsA() は、特定のオブジェクトタイプを検索するのに使用でき、Humanoid タイプのオブジェクトを検索しているので便利です。プレイヤーはおそらくアバターの一部だけでトラップに触れるので、タッチした部分の親を見つけてヒューマノイドを検索するための変数を設定する必要があります。
In onTouch() , type local character = otherPart.Parent 。
local trapPart = script.Parentlocal function onTouch(otherPart)-- 他のパーツの親オブジェクトを見つけるlocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)チェックして、character に Humanoid があるかどうかをタイプして確認します:
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")endtrapPart.Touched:Connect(onTouch)
if 文でチェック
ヒューマノイドが見つかった場合は、ヒューマノイドの健康をゼロに設定します。
if 文を使用して、ヒューマノイドが local humanoid に成功して割り当てられたかどうかをチェックします。
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- ヒューマノイドが見つかったかどうかを評価するif humanoid thenendendtrapPart.Touched:Connect(onTouch)印刷文を追加し、これまでのコードをチェックします。
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- ヒューマノイドが見つかったかどうかを評価するif humanoid thenprint("Found a Humanoid")endendtrapPart.Touched:Connect(onTouch)コードを実行して、プレイヤーがパーツに触れるたびに出力が表示できるか確認する
プレイヤーの体力を変更
文が真である場合、同じヒューマノイド変数を使用して、プレイヤーの健康を 0 に設定できます。
間の then と end 、タイプ humanoid.Health = 0 。
完了したスクリプトlocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- ヒューマノイドが見つかったかどうかを評価するif humanoid thenprint("Found a Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)トラップをテストする。
概要
このトラップパーツは条件を使用してヒューノイドパーツを検出し、ヒューノイドの健康をゼロに設定しました。このスクリプトは、何であれ触れるオブジェクトを破壊した以前のトラップスクリプトの改良です。
しかし、まだいくつかの欠点があります。ヒューマノイドはプレイヤーだけにいるのではありません。ヒューマノイドは、プレイできないキャラクターにも見つかります。スクリプトは、プレイヤーの健康をゼロに設定するのにも良いだけです。少量の健康を控除する実験を行うことができますが、健康が想定よりも速く控除される可能性が高いです。後でレッスンを提供すると、プレイヤーからどの程度の健康が控除されるかをより大きく制御できるようになります。