ヒット商品ブログ

グルメからゲームまで

【Robloxゲームの作り方】LUAとは?

Roblox Studioでは、スクリプトはLUAに準じます。
ここでは書き方についてのメモを置いておきます。

LUAの書き方

Moon

LUAとは?

LUAはポルトガル語で月という意味。リオデジャネイロ・カトリカ大学のメンバーらによって開発されたプログラミング言語です。

 

LUAを組み込んだシステムはいろいろとあり、Robloxでも採用されています。

 

コメントアウト

1行は行頭に「--」をいれます。

-- print("test")

 

複数行は「--」「--」で囲みます。

--[[

print("A")

print("B")

--]]

 

文字操作

連結は「..」を使います。

s1 = "日本の首都は "
s2 = "東京"
S3 = s1 .. s2

 

変数

変数はint、stringなど区分せずに「local」でいくようです。

local a= 1

 

IF

IF文も利用できます。「if ~ then」「end」ではさみます。

if x == 1 then

 print("OK")

end

 

「&&」は「AND」、「||」は「OR」です。

 

「elseif」も利用可能。

 

「x ~= y」のように 「~=」が使われる場合があります。これはC言語などでは「!=」であり、xがyと等しくないことを表します。

 

関数

関数も「local」として定義できます。

local function sampleFunc(number)

  return number + 1

end

 

ループ

1から5までのループは以下のような「For」文です。

for count = 1, 5 do

 print(count)

end

 

「While」も利用可能。

while true do

 print("Looping...")

 wait(0.5)

end

 

連想配列

LUAではテーブルと呼ばれる形式を利用します。

local dictionary = {

 val1 = "A",

 val2 = "B"

}

 

キーとして文字列が使われるとpairs関数でループできます。

t = {}

t["str1"] = "str1"

t["str2"] = "str2"
for i, ver in pairs(t) do

    print(ver)

end

 

数字の場合はiparisを使います。

t = {}

t[0] = "str1"

t[1] = "str2"
for i, ver in iparis(t) do

    print(ver)

end

 

 

スクリプト例

タッチしたら実行

タッチしたらヘルスが0になるスクリプトは以下のようになります。

local trapPart = script.Parent

local function onPartTouch(otherPart)

 local partParent = otherPart.Parent

 local humanoid = partParent:FindFirstChildWhichIsA("Humanoid")

 

 if humanoid then

  humanoid.Health = 0

 end

end 

trapPart.Touched:Connect(onPartTouch)

 

ボタンを押したら

ボックスをボタン代わりにしてタッチして反応するスクリプトは以下のようになります。

関数を書いたら、ボタンが押されたときにその関数を実行するように接続します。

local button = script.Parent

 local function onButtonActivated()

 print("Buttonがおされた!")

end 

button.Activated:Connect(onButtonActivated)

 

サンプル集

以下へ移動しました。

 

時間や重力など、ゲーム環境の操作

【Robloxゲームの作り方】スクリプトのサンプル~ワークスペースなど - 困ったー

 

走る速度やジャンプなどのアバターの操作

【Robloxゲームの作り方】スクリプトのサンプル~アバターを操る - 困ったー

 

 オブジェクトの操作

【Robloxゲームの作り方】スクリプトのサンプル~オブジェクトを操る - 困ったー

 

 

Robloxでゲームを作る手順のまとめはこちら。

apicodes.hatenablog.com

 

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

プライバシーポリシー |〇利用規約 |〇問い合わせ