Menu
CoddyTech

コインのドア

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では条件を満たしません。

challenge icon

チャレンジ

中級

右側には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)
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Robloxゲームのスクリプティングのすべてのレッスン

自分で練習してみよう: Luaオンラインコンパイラ