完成動画
はじめに
この記事では、Roblox Studio で コインを取得できるシステム の実装方法を紹介します。 プレイヤーがコインに触れると 効果音が鳴り、コインが消え、スコアが加算される 仕様になっています。
エクスプローラーの構成
プロジェクトのエクスプローラー構成は以下のようになっています。
Workspace
└ Coin(ツールボックスから取得したモデル)
├ Script1
├ Decal
├ …
ServerScriptService
└ Script2
- Coin: プレイヤーが取得するコインオブジェクト。
- Script1: コインに触れた際の処理(効果音、消去、スコア加算)。
- Script2: プレイヤーのスコア(コインの取得数)を管理するリーダーボードを作成。
スクリプトの実装
1. コイン取得のスクリプト(Script1)
このスクリプトは Coin
にアタッチされ、プレイヤーがコインに触れたときに発生する処理 を担当します。
local coin = script.Parent -- コインのオブジェクト
local sound = Instance.new("Sound") -- 効果音の作成
sound.SoundId = "rbxassetid://13114759" -- 効果音のID
sound.Parent = coin -- コインに効果音を設定
local function onTouched(otherPart)
local character = otherPart.Parent
local player = game.Players:GetPlayerFromCharacter(character) -- プレイヤーを取得
if player then -- プレイヤーが存在する場合
local leaderstats = player:FindFirstChild("leaderstats") -- リーダーボードを取得
if leaderstats then
local coins = leaderstats:FindFirstChild("Coins") -- コインのスコアを取得
if coins then
coins.Value = coins.Value + 1 -- スコアを増やす
end
end
sound:Play() -- 効果音を再生
wait(0.1) -- 少し待ってから消す
coin:Destroy() -- コインを削除
end
end
coin.Touched:Connect(onTouched) -- イベントを設定
スクリプトの説明
Touched
イベントを使用し、プレイヤーがコインに触れたときの処理 を実装。game.Players:GetPlayerFromCharacter(character)
で 触れたプレイヤーの情報 を取得。leaderstats
内のCoins
を探し、+1
してスコアを増加。- 効果音を鳴らした後、
coin:Destroy()
でコインを削除。
2. リーダーボードのスクリプト(Script2)
このスクリプトは ServerScriptService
に配置し、プレイヤーが参加した際にコインのスコアを管理するリーダーボードを作成 します。
game.Players.PlayerAdded:Connect(function(player)
-- リーダーボードの作成
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats" -- これがリーダーボードとして表示される
leaderstats.Parent = player
-- コイン数のカウンターを作成
local coins = Instance.new("IntValue")
coins.Name = "Coins" -- 表示されるスコア名
coins.Value = 0 -- 初期値
coins.Parent = leaderstats
end)
スクリプトの説明
PlayerAdded
イベントを使用し、プレイヤーがゲームに参加した際の処理を実装。leaderstats
というフォルダを作成し、プレイヤーに紐づけることでリーダーボードに表示。Coins
というIntValue
を作成し、スコアとして使用。
まとめ
今回の実装では、
コインに触れると効果音が鳴り、コインが消える。取得したコイン数をリーダーボードで管理する。
という機能を実現しました!
このシステムを活用して、より楽しいゲームを作成してみてください!
コメント