遊戲迴圈

完全可以將 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()