こんな悩みを解消します
この記事の内容
- ドラクエ風毒の沼の作り方
- 歩いたときに体力が減り、動かなければ減らないプログラム
- 参考:溶岩に落ちたらすぐに体力を0になるプログラム
- サンプルプログラムの提供
ドラクエと一緒でRPG感が出てわくわくしますね!
スクリプトは床でも、壁でもパーツになら応用できます
☑ ロブロックスでプログラミング学ぶならD-SCHOOL!【コスパ最強】
子供向けオンラインプログラミング教室4選+1!送迎なし【2024年最新】
子供がプログラミングに興味を持ち始めたけどどうしたらいい?親にプログラミングの知識はないからどうやって選んでいいかわからないと悩んでいる方に、オンラインプログラミング教室を紹介します
すぐにプログラムを使いたい方はこちらを写してください
local poisonFloor = script.Parent
local function poisonDamage(fureteruMono)
local hito = fureteruMono.Parentlocal humanoid = hito:FindFirstChild(“Humanoid”) if humanoid then
humanoid.Health = humanoid.Health – 1
end
endpoisonFloor.Touched:Connect(poisonDamage)
local function poisonDamage(fureteruMono)
local hito = fureteruMono.Parentlocal humanoid = hito:FindFirstChild(“Humanoid”) if humanoid then
humanoid.Health = humanoid.Health – 1
end
endpoisonFloor.Touched:Connect(poisonDamage)
毒の沼を作るにはざっくり3つの工程
- 毒の沼に触れたら poisonDamage 関数を呼び出す
- poisonDamage 関数の中で触れたものがアバターかどうか判断し
- もしアバターだったら体力を -1 する
毒の沼にする床のパーツとスクリプトを作成する
- パーツの「ブロック」を作り「PoisonFroor」と変更
- 「PoisonFroor」の右側の+をクリックし「Script」をクリック
- スクリプト名を「PoisonScript」に変更
色を暗めの紫に設定し、素材を「ホイル」に設定すると、ドラクエっぽい毒の沼になります
色や素材は自分の好みで決めてください
PoisonScript のスクリプトを書く
以下のようにスクリプトを書きます
local poisonFloor = script.Parent
このスクリプトで使える spoisonFloor 変数に スクリプトの親を入れる
基本的に書いとくとよいおまじないということですね
— poisonDamage という関数を作り、引数をfureteruMonoにする
local function poisonDamage(fureteruMono)
local function poisonDamage(fureteruMono)
このスクリプトで使える poisonDamage という関数をつくり、引数(ひきすう)をfureteruMonoにする
関数を作るときは function を使うのでしたね
— 触れているオブジェクトfureteruMonoの親をhito変数に格納
local hito = fureteruMono.Parent
local hito = fureteruMono.Parent
触れているオブジェクトをこのスクリプトで使える hito 変数に格納
— hito の中にHumanoidがあるか探し、humanoid変数に格納
local humanoid = hito:FindFirstChild(“Humanoid”)
local humanoid = hito:FindFirstChild(“Humanoid”)
FindFirstChild は子の中を探して、Humanoid 、つまりプレイヤー(アバター)を見つけます
Humanoid が見つかれば、それはプレイヤーということです
では、Humanoid はいったいどこにあるのか?という疑問がわきますね
一例として、ゲームをプレイ中に「エクスプローラ」を見ると
「Workspace」の中に「自分のプレイヤー名」があり、さらに下に「Humanoid」がありましたね
— もしhumanoid だったらHealth から1を引く
if humanoid then
humanoid.Health = humanoid.Health – 1
end
end
if humanoid then
humanoid.Health = humanoid.Health – 1
end
end
humanoid.Health は体力です
これが 0になるとプレイヤー(アバター)はバラバラになってしまいます
— poisonFloorに触れた時、poisonDamage 関数につなげる
poisonFloor.Touched:Connect(poisonDamage)
poisonFloor.Touched:Connect(poisonDamage)
毒の沼に触ったとき、自作の poisonDamage 関数を呼び出します
これにより、上に書かれた poisonDamage 関数が実行されます
FindFirstChildに関してはディベロッパーROBLOXに詳細があります
Instance | Documentation - Roblox Creator Hub
Instance is the base class for all classes in the Roblox class hierarchy.
参考:溶岩にして落ちたらすぐに体力を0にしたい場合
もし humanoid だったらの部分のHealth を 0 にすればアバターがバラバラになります
if humanoid then
humanoid.Health = 0
end
humanoid.Health = 0
end
色を赤っぽくし、素材もネオンにするとそれらしい溶岩になります
パーツの色も黒やグレーを中心にまとめれば魔王城のような雰囲気になりますね
ロブロックススタジオ(RobloxStudio)ダメージ床を作る:まとめ
プレイヤーが歩くたびに体力が1減るという毒の沼ができました
- 毒の沼に触れたら poisonDamage 関数を呼び出す
- poisonDamage 関数の中で触れたものがアバターかどうか判断し
- もしアバターだったら体力を -1 する
このスクリプトは床でも、壁でもパーツになら応用できます
アイデアを駆使して楽しいものを作ってください
☑ ロブロックスでプログラミング学ぶならD-SCHOOL!【コスパ最強】
子供向けオンラインプログラミング教室4選+1!送迎なし【2024年最新】
子供がプログラミングに興味を持ち始めたけどどうしたらいい?親にプログラミングの知識はないからどうやって選んでいいかわからないと悩んでいる方に、オンラインプログラミング教室を紹介します