今天來看看怎麼讓一個小烏龜動起來!
從最基本的 Turtle 開始,相關程式碼在
/rom/programs/turtle/ 以及 /rom/apis/turtle/
首先看 /rom/programs/turtle/go.lua
也就是小烏龜的基本移動指令了
可以原地左右轉向,甚至指定轉向次數
go left
go right
go left 3
go right 2
轉向的部分也可以直接用
/rom/programs/turtle/turn.lua
turn left
turn right
turn left 3
turn right 2
或是往四個方位移動:上、下、前進、後退
go up
go down
go forward
go back
不過,你一定會發現,轉向都沒問題,但是要移動時,會說沒燃料了!
補充燃料的指令在 /rom/programs/turtle/refuel.lua
可以作為燃料的東西是煤炭、煤炭方塊、木炭、熔岩桶,這是目前試出來可以當作小烏龜燃料的來源
煤炭補充 80 能源
煤炭方塊補充 800 能源
木炭補充 80 能源
熔岩桶補充 1000 能源
補充能源的指令簡單如下
refuel
refuel 3
refuel all
例如說你有 64 個煤炭,那麼 refuel 就是補充一個煤炭;refuel 3 就是補充 3 個煤炭
refuel all 就是補充小烏龜儲物箱裡面所有可以當作燃料的東西
補充燃料後,就可以讓小烏龜自由的上下左右移動了!
而如果想要知道目前還有多少能源,可以用 turtle API
turtle.getFuelLevel()
事實上,go 指令設計得滿彈性的
可以無限串連各種移動和轉向
例如
左轉後,向後移動兩格,再向上移動一格
go left back back top
右轉兩次後向前移動三格,再向下移動一格
go right 2 forward 3 down
這部分主要是 go.lua 這一段在處理使用者輸入
local sDirection = tArgs[nArg]
local nDistance = 1
if nArg < #tArgs then
local num = tonumber(tArgs[nArg + 1])
if num then
nDistance = num
nArg = nArg + 1
end
end
nArg = nArg + 1
有充足的能源後,就可以開始跳舞了(?
CC: Tweaked 提供了一支給小烏龜手舞足蹈的程式,雖然我有點看不懂這樂趣 XD
程式碼在 /rom/programs/turtle/dance.lua
只要對小烏龜輸入 dance 指令
就可以看到它開始到處移動和轉向,甚至發出聲音
dance 最後的 parallel.waitForAny 模擬多執行緒
持續的在隨機移動和捕捉玩家的任意鍵之間切換
parallel.waitForAny(
function() os.pullEvent("key") end,
function()
while true do
tMoves[math.random(1, #tMoves)]()
end
end
)
之前介紹 Pocket Computer 的時候,有 equip/unequip 指令可以快速為 Pocket Computer 換週邊設備
小烏龜也是有的,相關程式碼在
/rom/programs/turtle/equip.lua 和 /rom/programs/turtle/unequip.lua
從 equip.lua 程式碼可以看到,每隻小烏龜只能在左邊或右邊安裝周邊設備
也就是上一回說到的,小烏龜最多安裝 2 個設備
local nSlot = tonumber(tArgs[1])
local sSide = tArgs[2]
if sSide == "left" then
equip(nSlot, turtle.equipLeft)
elseif sSide == "right" then
equip(nSlot, turtle.equipRight)
else
printUsage()
return
end
安裝的過程就是要先把 Ender Modem / Wireless Modem / Speaker .... 等等設備先放到小烏龜的儲物箱,然後直接指定儲物箱位置來安裝,如圖
而如果在同一個位置 left / right 反覆安裝,就會自動換掉之前安裝的設備
小烏龜的基本指令介紹到這裡
下一回讓它開始作業吧!