アットウィキロゴ

main.lua

Playdate の開発において、main.lua はプログラムのエントリーポイント(開始地点)となる最も重要なファイルです。
Playdate OS は実行時にまずこのファイルを探し、中身を読み込みます。


概要

1. main.lua の主な役割
初期設定
グラフィックス、スプライト、変数の初期化を行います。
ライブラリの読み込み
SDK が提供する便利な機能(CoreLibs)をインポートします。
ゲームループの定義
毎フレーム実行される処理(描画や入力検知)を記述します。

2. 基本的なコード構造
もっともシンプルな main.lua は、以下のような構成になります。
-- 1. ライブラリのインポート
import "CoreLibs/graphics"
import "CoreLibs/sprites"
 
-- ショートカットの作成(コードを短くするため)
local gfx <const> = playdate.graphics
 
-- 2. 初期化処理
local x, y = 200, 120
 
-- 3. メインループ(毎秒30回呼ばれる)
function playdate.update()
    -- 画面をクリア
    gfx.clear()
 
    -- 入力検知
    if playdate.buttonIsPressed(playdate.kButtonRight) then
        x += 2
    end
 
    -- 描画
    gfx.drawText("Hello, Playdate!", x, y)
end
 

3. 重要な構成要素
CoreLibs のインポート
Playdate SDK は、標準では最小限の機能しか読み込みません。アニメーションスプライトタイマーなどを使うには、ファイルの先頭で import する必要があります。
  • import "CoreLibs/graphics":図形描画や画像操作。
  • import "CoreLibs/sprites":スプライトシステムの利用。
playdate.update()
これが Playdate におけるゲームループです。
  • デフォルトでは 毎秒 30 回 (30 FPS)呼び出されます。
  • この関数内に、キャラクターの移動ロジックや、画面の更新処理を記述します。
  • この関数を定義しないと、画面は何も更新されません。
画面スペックの意識
main.lua で描画コードを書く際、Playdate 特有の制限を意識する必要があります。
  • 解像度: 400 × 240 ピクセル。
  • 色: 1ビット(黒と白の2色のみ)。
  • 座標系: 左上が (0, 0)、右下が (400, 240) です

4. 開発のヒント
const の活用
Lua 5.4 を採用しているため、local gfx <const> = playdate.graphics のように変数を定数として宣言すると、パフォーマンスが向上します。
ファイルの分割
ゲームが大きくなってきたら、main.lua ですべてを書くのではなく、他の .lua ファイルを作成して import で呼び出すのが一般的です。
システムのイベント
playdate.update() 以外にも、ゲームが一時停止されたときの playdate.gameWillPause() や、クランクが動かされたときの playdate.cranked() などのコールバック関数を main.lua に定義できます。


関連ページ

最終更新:2026年04月29日 07:28