遊戲迴圈
完全可以將 PICO-8 用作互動式 shell ,但你可能想要進入遊戲迴圈。為此,你必須至少建立一個這些回撥函式:
_update()
_update60()
( v0.1.8 之後 )_draw()
最小的遊戲可能只是在螢幕上畫出一些東西:
function _draw()
cls()
print("a winner is you")
end
如果定義 _update60()
,則遊戲迴圈嘗試以 60fps 執行並忽略 update()
(以 30fps 執行)。在 _draw()
之前呼叫更新函式。如果系統檢測到丟幀,則會每隔一幀跳過繪製功能,因此最好將遊戲邏輯和播放器輸入保留在更新功能中:
function _init()
x = 63
y = 63
cls()
end
function _update()
local dx = 0 dy = 0
if (btn(0)) dx-=1
if (btn(1)) dx+=1
if (btn(2)) dy-=1
if (btn(3)) dy+=1
x+=dx
y+=dy
x%=128
y%=128
end
function _draw()
pset(x,y)
end
嚴格來說,_init()
函式是可選的,因為在啟動時執行任何函式之外的命令。但是,這是一種將遊戲重置為初始條件而無需重啟墨盒的方便方法:
if (btn(4)) _init()