コインのドア
CoddyのLuaジャーニー「Robloxゲームのスクリプティング」セクションの一部。レッスン 16/24。
ifはnilを確認するだけではありません。数値を比較でき、比較が偽の場合はelseの部分が実行されます:
local score = player.leaderstats.Score.Value
if score >= 10 then
print("You win!")
else
print("Keep going")
end比較演算子は==(等しい)、~=(等しくない)、<、>、<=、>=です。二重の==に注意してください。単一の=は変数に値を代入するもので、比較はしません。
>= 3は「3以上」を意味します。> 3は「3より大きい」を意味するため、ちょうど3では条件を満たしません。
チャレンジ
中級右側には3枚のコインが浮かび、木製のドアが壁をふさいでいます。ワールドがコインの数を数えてくれます。このスクリプトはドアにあり、プレイヤーがドアの前にある青いパッドを踏むと、そのTouched関数が実行されます。
- プレイヤーがコインを
3枚以上持っている場合は、ドアを開けます。CanCollideをfalseにし、Transparencyを0.5にします。 - それ以外の場合は、
You need 3 coinsと正確に出力します。
Playを押し、まずパッドを試してから、コインを集めてもう一度試します。その後、Checkを押します。
自分で試してみよう
local Players = game:GetService("Players")
local door = script.Parent
local pad = workspace.DoorPad
pad.Touched:Connect(function(hit)
local player = Players:GetPlayerFromCharacter(hit.Parent)
if player then
local coins = player.leaderstats.Coins.Value
-- コインが3枚以上なら、ドアを開ける
-- それ以外の場合は、"You need 3 coins"を出力する
end
end)
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
Robloxゲームのスクリプティングのすべてのレッスン
自分で練習してみよう: Luaオンラインコンパイラ