--:-- LUA API

アプリのフォルダと app.cfg

アプリのフォルダに置くファイルと、app.cfg に書ける設定の一覧

フォルダの中身

/lua/apps/わたしのゲーム/
  main.lua        必須。アプリを開くと実行される
  app.cfg         任意。名前・アイコン・権限などの設定
  icon.pimg       任意。ランチャのアイコン(app.cfg の icon で指定)
  util.lua        任意。require("util") で読むモジュール
  ui/menu.lua     任意。require("ui.menu") で読むモジュール
  background.lua  任意。閉じている間に動かすスクリプト(app.cfg の background で指定)
  store.json      pico.store_save() が書くセーブデータ
  settings.cfg    pico.settings_set() が書く設定
  • main.lua は16KiBまでです。大きくなったら機能ごとにファイルを分け、require で読みます(1ファイル32KiBまで)。日本語のコメントは1文字3バイトなので、コメントの多いスクリプトは早めに分けてください。
  • 同じフォルダに lib.lua があると main.lua より先に実行されます(古い書き方です。新しいアプリは require を使ってください)。
  • 画像やデータのパスは、pico.path_join(pico.app_dir(), "img", "title.pimg") のようにアプリのフォルダから組み立てます(フォルダ名を書き込まずに済みます)。
  • アプリが書いたファイル(store.json など)は、アプリストアでアプリを更新しても残ります。

app.cfg

1行に1つ key=value で書きます。# で始まる行はコメントです。知らないキーは無視されます。

name=わたしのゲーム
icon=icon.pimg
id=my-game
version=1.0.0
permission_network=true
キー既定意味
nameフォルダ名ランチャに出す名前
descriptionなしアプリの説明
icon標準のアイコンランチャのアイコン。アプリのフォルダからの相対パスで、48×48の .pimg
idなしアプリストアで配るときの名前(英小文字・数字・-・_、23文字まで)。アプリストアで配る
versionなし版(1.2.0 のような数字と .)。アプリストアで更新を見分けるのに使う
permission_networkfalseHTTP通信を許す
permission_sd_outside_app_dirfalseアプリのフォルダの外のSDを読み書きできるようにする
permission_notifyfalse通知(pico.notify)を許す
permission_microphonefalseマイクを許す
permission_backgroundfalse閉じている間のスクリプト(background)を許す
backgroundなし閉じている間に動かすスクリプト。バックグラウンド
background_interval900background を動かす間隔(秒、10以上)
strip_debugfalserequire したモジュールの行番号を落としてメモリを減らす。モジュール

権限の意味と、権限が無いときの動きは 権限 にまとめてあります。

app.cfg はアプリ自身からは書き換えられません(スクリプトが自分で権限を足せないように)。アプリの設定は settings.cfg など別のファイルへ書いてください。

画像(.pimg)を作る

アイコンや絵は、OS独自の .pimg(16色・RLE圧縮)が一番軽く読めます。PNGなどからは、リポジトリの script/generate_pimg.py で変換します。BMPとJPEGもそのまま読めます(画像)。