← 所有教學
第 2 篇教學

做出你的第一個 Tycoon

投放器會掉出方塊,輸送帶把它們運走,收集器把它們變成現金,還有一個按鈕可以買第二個投放器。

免費60 分鐘 · 初學者 · Roblox Studio
1
步驟 1 / 9

設定場景

  1. 打開 Roblox Studio,點 New Experience,然後選 Baseplate 範本。
  2. 在 Explorer 把滑鼠移到 Workspace 上,點 +,新增一個 Folder。把它命名為 Tycoon。
  3. 這篇教學裡你做的所有東西都放進這個 Folder。這樣 Explorer 會很整齊。

更多細節

  • Baseplate 範本在開始畫面的範本清單裡。
  • 點 + 之後會打開一個清單。輸入 Folder 這個字可以很快找到它,然後點它。
  • 要替資料夾改名,點它一下,按 F2,輸入 Tycoon,然後按 Enter。
  • 在 Mac 上,每當教學說 Ctrl 的時候,都改用 Cmd 鍵。
小提示. 每個 Part 一建立就馬上改名。腳本是用名字來找 Part 的,所以還叫 Part 的東西是沒辦法用的。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

2
步驟 2 / 9

給每位玩家現金

  1. 把滑鼠移到 ServerScriptService 上,點 +,新增一個 Script。把它命名為 Leaderstats。
  2. 刪掉原本就有的那一行,貼上這段程式碼。
  3. 按 Play。你的名字會出現在玩家列表裡,旁邊是 Cash 0。
ServerScriptService > Leaderstats
local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(player)
	local stats = Instance.new("Folder")
	stats.Name = "leaderstats"
	stats.Parent = player

	local cash = Instance.new("IntValue")
	cash.Name = "Cash"
	cash.Value = 0
	cash.Parent = stats
end)

每一段在做什麼

  • PlayerAdded 會在每位玩家加入時執行一次。
  • 名叫 leaderstats 的資料夾是特別的。Roblox 會把裡面的值顯示在玩家列表中。
  • IntValue 用來存整數。在這裡它存的是玩家的現金。

更多細節

  • ServerScriptService 在 Explorer 的清單裡。裡面的腳本在伺服器上執行,玩家改不了它們。
  • 腳本會在新的分頁裡打開。點一下程式碼裡面,按 Ctrl+A,再按 Ctrl+V,取代所有內容。
  • 點一下寫著你的場景名稱的分頁,就回到你的世界了。
  • 玩家列表在遊戲的右上角。按 F5 開始,按 Shift+F5 停止。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

3
步驟 3 / 9

做出投放器

  1. 在 Tycoon 這個 Folder 裡新增一個 Part。把 Size 設成 4, 1, 4,打開 Anchored,並命名為 Dropper。
  2. 用 Move 工具 (Ctrl+2) 把它舉到離地板大約 10 studs 高的地方。
  3. 在 Dropper 上新增一個 Script,貼上這段程式碼。
  4. 按 Play。每 2 秒會有一個黃色方塊掉下來。
Dropper > Script
local Debris = game:GetService("Debris")
local dropper = script.Parent

while true do
	task.wait(2)

	local cube = Instance.new("Part")
	cube.Name = "Cube"
	cube.Size = Vector3.new(1.5, 1.5, 1.5)
	cube.Color = Color3.fromRGB(255, 200, 60)
	cube.Position = dropper.Position - Vector3.new(0, 2, 0)
	cube.Parent = workspace

	Debris:AddItem(cube, 20)
end

每一段在做什麼

  • Instance.new 會用程式碼建立一個新的 Part。
  • Position 把方塊放在投放器下方 2 studs 的地方。
  • Debris 會在 20 秒後移除每個方塊,所以舊方塊不會越堆越多。

更多細節

  • 要把零件放進資料夾,就在 Explorer 裡把它的名稱拖到 Tycoon 這個名稱上。
  • 用 Move 工具,把綠色箭頭往上拖。Properties 裡的 Position 欄位中,中間那個數字就是高度。
  • 方塊會出現在投放器下面 2 studs 的地方,然後掉下去。如果投放器太低,方塊就會堆在它下面。
  • 遊戲開始 2 秒後,第一個方塊就會出現。
常見的錯誤. 沒有方塊出現:檢查腳本是不是放在 Dropper 裡面,還有 Dropper 有沒有打開 Anchored。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

4
步驟 4 / 9

加上輸送帶

  1. 新增一個 Part,把 Size 設成 6, 1, 30,打開 Anchored,並命名為 Conveyor。
  2. 把它放在地板上,讓其中一端剛好在投放器的正下方。
  3. 在 Conveyor 上新增一個 Script,貼上這段程式碼。
  4. 按 Play。方塊會掉在輸送帶上,然後順著滑過去。
Conveyor > Script
local conveyor = script.Parent

conveyor.AssemblyLinearVelocity = conveyor.CFrame.LookVector * 8

每一段在做什麼

  • AssemblyLinearVelocity 告訴 Roblox,放在這個 Part 上面的東西要用多快的速度移動。
  • LookVector 是這個 Part 正面朝的方向。數字 8 是速度,單位是每秒幾 studs。

更多細節

  • 每個零件都有一個正面。輸送帶會把方塊推向它的正面。
  • 輸送帶長的那一邊,也就是 30 studs 的那一邊,必須背對投放器,朝向收集器要放的地方。
  • 輸送帶本身不會動。只有它上面的東西會滑動。
  • 如果方塊從旁邊掉下去,就把輸送帶做寬一點,或是把投放器移到輸送帶的中間。
常見的錯誤. 方塊往錯的方向滑:用 Rotate 工具 (Ctrl+4) 把輸送帶轉 180 度。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

5
步驟 5 / 9

收集方塊

  1. 在輸送帶的最遠端新增一個 Part。把 Size 設成 6, 4, 1,打開 Anchored,把它變成綠色,並命名為 Collector。
  2. 把它像牆一樣立起來,讓方塊會撞上它。
  3. 在 Collector 上新增一個 Script,貼上這段程式碼。
  4. 按 Play。每個到達收集器的方塊,都會讓 Cash 增加 5。
Collector > Script
local Players = game:GetService("Players")
local collector = script.Parent

collector.Touched:Connect(function(hit)
	if hit.Name ~= "Cube" then return end
	hit:Destroy()

	for _, player in ipairs(Players:GetPlayers()) do
		local stats = player:FindFirstChild("leaderstats")
		if stats then
			stats.Cash.Value += 5
		end
	end
end)

每一段在做什麼

  • 腳本會忽略所有名字不是 Cube 的東西。你的腳不算。
  • Destroy 會把方塊從遊戲裡移除。
  • 這個迴圈會給伺服器裡的每位玩家 5 塊現金。每塊地只有一位擁有者的大亨遊戲,是進階課程的內容。

更多細節

  • Size 6, 4, 1 本來就是直立的:寬 6,高 4,厚 1。把它橫放在輸送帶的末端,就像一扇關著的門。
  • 它的下緣應該碰到輸送帶,這樣方塊就不會從下面溜過去。
  • 要把它變成綠色,點 Properties 裡的 Color 欄位。
  • 測試一下:按 F5,看玩家列表。每有一個方塊碰到牆,Cash 就會增加 5。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

6
步驟 6 / 9

準備第二個投放器

  1. 選取 Dropper,按 Ctrl+D。把複製品命名為 Dropper2,移到第一個投放器旁邊,仍然在輸送帶的上方。
  2. 把 Dropper2 從 Workspace 拖進 ServerStorage。
  3. 它會從世界裡消失。放在 ServerStorage 裡的物件會在那裡等著,直到有腳本把它們移回來。

更多細節

  • 複製品剛好在原件上面。用 Move 工具把它往旁邊拖,這樣兩個你都看得到。
  • 用 F2 替複製品改名。名稱必須是 Dropper2,D 要大寫,中間沒有空格。
  • ServerStorage 在 Explorer 的清單裡。把 Dropper2 這個名稱拖到它上面。
  • 複製品裡面的腳本也跟著一起過來了。你不需要再加一次。
小提示. ServerStorage 裡面的腳本不會執行。所以在有人買下它之前,第二個投放器都是安安靜靜的。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

7
步驟 7 / 9

加上購買按鈕

  1. 在輸送帶附近的地板上新增一個 Part。把 Size 設成 4, 1, 4,打開 Anchored,把它變成亮藍色,並命名為 BuyDropper。
  2. 在 BuyDropper 上新增一個 Script,貼上這段程式碼。
  3. 要幫按鈕加上標籤,把滑鼠移到 BuyDropper 上,點 +,新增一個 BillboardGui。把它的 Size 設成 {0, 200}, {0, 50},StudsOffset 設成 0, 3, 0。
  4. 在 BillboardGui 裡新增一個 TextLabel。把它的 Size 設成 {1, 0}, {1, 0},打開 TextScaled,並輸入這段文字:Second dropper - 50
BuyDropper > Script
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")

local button = script.Parent
local PRICE = 50
local bought = false

button.Touched:Connect(function(hit)
	if bought then return end

	local player = Players:GetPlayerFromCharacter(hit.Parent)
	local stats = player and player:FindFirstChild("leaderstats")
	if not stats or stats.Cash.Value < PRICE then return end

	bought = true
	stats.Cash.Value -= PRICE
	ServerStorage.Dropper2.Parent = workspace
	button:Destroy()
end)

每一段在做什麼

  • PRICE 是價格。改掉這個數字,按鈕就會變便宜或變貴。
  • 腳本會檢查碰到按鈕的是真正的玩家,而且這位玩家的現金夠不夠。
  • 把 Dropper2 移到 workspace 就會啟動它。它的腳本會馬上開始執行。

更多細節

  • 玩家是走到按鈕上去購買的,所以把按鈕放在地板上,方便走到。
  • 對於 Size 和 StudsOffset,在 Properties 裡點這個欄位,完全照著給的樣子輸入數字,括號和逗號都要有,然後按 Enter。
  • Text 是 TextLabel 的一個屬性。點 Text 欄位,輸入文字,然後按 Enter。
  • 標籤飄在按鈕上方。如果你看不到它,就把 StudsOffset 中間的數字調大。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

8
步驟 8 / 9

測試整個流程

  1. 按 F5。看著方塊掉下來、坐上輸送帶,然後變成現金。
  2. 等到你有 50 現金,再踩上藍色按鈕。
  3. 第二個投放器出現,按鈕消失,你的現金增加的速度變成兩倍。
  4. 按 Shift+F5 停止。如果哪裡出錯,從 Window 選單打開 Output 視窗,看看紅色的字。

更多細節

  • 需要 10 個方塊,也就是至少 20 秒,才能存到 50 現金。
  • 購買之後,Cash 會減少 50。這是對的。你為投放器付了錢。
  • 購買後按鈕會被摧毀,所以不能買兩次。
  • 如果第二個投放器出現在錯誤的位置,就先停止遊戲,把 Dropper2 從 ServerStorage 拖回 Workspace,移動它,再把它拖回 ServerStorage。
常見的錯誤. Cash 一直沒變:掉下來的 Part 一定要叫 Cube,要和投放器腳本裡寫的完全一樣。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

9
步驟 9 / 9

發布遊戲

  1. 選擇 File → Publish to Roblox。幫遊戲取個名字,再寫一小段說明。
  2. 在 Creator Hub 網站打開你的遊戲,填寫 Maturity 問卷。
  3. 把遊戲設成 Public,然後把連結傳給朋友。

更多細節

  • 第一次發布時,Studio 會問你要一個名稱和一段說明。點 Create。
  • Creator Hub 就是網站 create.roblox.com。用同一個帳號登入,然後在清單裡點你的遊戲。
  • 遊戲公開之前,Roblox 可能還會要求更多資料,例如對帳號做年齡驗證。頁面會告訴你還缺什麼。
  • 如果你未滿 18 歲,請和爸媽一起完成這一步。
小提示. 進度還沒有儲存。玩家一離開,現金就不見了。儲存資料是進階課程的內容。
這一步我做不出來

先檢查這三件事

  • 每個零件和腳本的名字都要和教學裡的完全一樣,大小寫也要一樣。
  • 腳本要放在正確的物件裡面。看看程式碼框上方的標籤。
  • 從 Window 選單打開 Output 視窗。紅色的字會告訴你哪個腳本、哪一行有問題。

還是不行嗎?寫信給我們 →

現在自己改改看

  • 讓每個方塊值 10 現金,而不是 5。
  • 加上第三個投放器,價格是 200 現金。
  • 讓第二個投放器比第一個更快。你要改哪個數字?