今日学んだ障害物とパワーアップアイテムを組み合わせて、自分だけのステージを作ってみましょう。
回転バーに当たったら本当に吹っ飛んだ!これは避けたくなる緊張感がある!
今日学んだ障害物とパワーアップアイテムを組み合わせて、自分だけのステージを作ってみましょう。
🌀 ゆれる振り子
CFrame.Anglesの数字を行ったり来たりさせると、回転ではなく「 ゆれる 」動きになります。
💥 爆発するブロック
触れた瞬間に大きなダメージを与えて、ブロック自体も消えるようにしてみましょう。
❤️ 回復アイテム
humanoid.Health を増やす(増やしすぎないよう100を超えないような工夫にも挑戦)アイテムです。
回転する障害物に当たった時、ダメージだけでなく「 吹き飛ばす 」演出を加えると、より迫力のある障害物になります。
local part = script.Parent
local power = 50 -- 吹き飛ばす強さ
part.Touched:Connect(function(hit)
local humanoid = hit.Parent:FindFirstChild("Humanoid")
local root = hit.Parent:FindFirstChild("HumanoidRootPart")
if humanoid and root then
local direction = (root.Position - part.Position).Unit
root.Velocity = direction * power + Vector3.new(0, 20, 0) -- 少し上にも飛ばす
end
end)
回転バーに当たったら本当に吹っ飛んだ!これは避けたくなる緊張感がある!
回転ではなく「 揺れる 」動きにも挑戦してみましょう。円柱を1本(バー)、球体を1つ(おもり)用意し、WeldConstraintで固定してから、以下のようなScriptをバーの根本(支点にしたいパーツ)に入れます。
local part = script.Parent
local basePos = part.CFrame -- 最初の向きを覚えておく
local amplitude = 45 -- 振れ幅(度)
local speed = 2 -- 揺れる速さ
game:GetService("RunService").Heartbeat:Connect(function(deltaTime)
local time = tick() * speed
local angle = math.sin(time) * amplitude
part.CFrame = basePos * CFrame.Angles(0, 0, math.rad(angle))
end)
数式は難しいけど、動きはすごく自然な振り子になった!これは避けるタイミングを考えるのが楽しそう!
Well done!
次のステップに進みましょう!