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