チャプター 4
Step 04
AIに聞いてみよう - トロフィーがバラバラになる!
追加したい機能についてAIに聞いてみる
火の玉がトロフィーにぶつかった時に、派手にバラバラになる感じにしたいと考えました。そこでこんな質問をしてみます。「このコードを変えて、火の玉がtrophyに当たったらバラバラに壊れて、破片が飛び散るようにしたいです」
それに続いてGenerateTrophyのスクリプトをそのままコピペします。
するとこんな関数を教えてくれました。
-- トロフィーを壊す関数
function breakTrophy(trophy)
for i = 1, 10 do
local fragment = Instance.new("Part")
fragment.Size = Vector3.new(1, 1, 1)
fragment.Position = trophy.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
fragment.Velocity = Vector3.new(math.random(-50, 50), math.random(50, 100), math.random(-50, 50))
fragment.BrickColor = trophy.BrickColor
fragment.Anchored = false
fragment.CanCollide = true
fragment.Parent = game:GetService("Workspace")
game:GetService("Debris"):AddItem(fragment, 5) -- 5秒後に破片を削除
end
trophy:Destroy()
end
-- トロフィーを5秒ごとに生成
while true do
createTrophy()
wait(5) --5秒に一回出現する
end
function breakTrophy(trophy)
for i = 1, 10 do
local fragment = Instance.new("Part")
fragment.Size = Vector3.new(1, 1, 1)
fragment.Position = trophy.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
fragment.Velocity = Vector3.new(math.random(-50, 50), math.random(50, 100), math.random(-50, 50))
fragment.BrickColor = trophy.BrickColor
fragment.Anchored = false
fragment.CanCollide = true
fragment.Parent = game:GetService("Workspace")
game:GetService("Debris"):AddItem(fragment, 5) -- 5秒後に破片を削除
end
trophy:Destroy()
end
-- トロフィーを5秒ごとに生成
while true do
createTrophy()
wait(5) --5秒に一回出現する
end
これをぶつかった時に呼び出せば、バラバラに破片が飛び散るようになります。
機能を追加したいところのコードを見せてAIに質問すると、よい回答が得られる確率が上がりそうですね!
ここまでの完成版はこちら!