PlaydateゲームをLuaで作る - VSCodeの機能を使って簡単にビルドできるようにする
前提
できるだけ記事を短くするため説明は最小限です
環境はMac、使用エディタがVSCodeの場合
この記事の内容を前提としています
やりたいこと
この記事で書いた、Luaで書いたコードをpdxファイルにビルドしてシミュレーターで確認する方法ですが、
ターミナルを開いてpdcコマンドを実行し、ソースファイルと出力ファイルを指定してpdxファイルをビルドする
pdxファイルをシミュレータにドラッグする
この手順を踏む必要があります。
できることはできますが、実際にゲームを作っていくとなるとこの作業を何度も行うことになり、非常に面倒に感じると思います。
(pdcコマンドを実行する時にいちいちSourceディレクトリを指定するのが地味に面倒だったりします)
そこで今回は、VSCodeのタスク機能を使ってこの作業を簡略化する方法について書きます。
どうやるか?
VSCodeには「タスク機能」という、コマンド実行をメニューのような形にして、それを選択することにより事前に設定したコマンドを順次実行させる、という機能があります。
この機能を使って、以下の2つの処理をタスクとして実行できるようにします。
pdcコマンド
できたpdxファイルをシミュレータで起動する
これができると、上述した作業が以下の作業に変わります。
Shift+Command+B を押す
これだけです。これだけでシミュレーターが自動的に起動し、コードのビルド結果を確認できるようになります。
やり方
タスクファイルを作る
プロジェクトディレクトリのルートに 「.vscode」 というディレクトリを作り、その中に 「tasks.json」 というファイルを作ってください。
この tasks.json の中身をこのようにします。
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "sh tools/build.sh"
}
]
}
このファイルを作ることにより、「Shift+Command+B を押した時に tools/build.sh を実行する」という状態になります。
今 Shift+Command+B を押しても何も起こりません(VSCodeの下部のターミナル部分に、「起動が失敗しました」と表示されると思います)。tools/build.sh をまだ作っていないからです。
次は tools/build.sh を作成し、コードをビルドしてもらうようにしましょう。
ビルドスクリプトを作る
プロジェクトディレクトリのルートに 「tools」 というディレクトリを作り、その中に 「build.sh」 と言うファイルを作ってください。
この build.sh の内容をこのようにします
#! /bin/sh
pkg_name="playdate_game_name.pdx" # ここで出力ファイル名を指定する
pdc Source $pkg_name
if [ $? -ne 0 ]; then
echo "Failed to build project."
exit 0
fi
open -a "Playdate Simulator.app" $pkg_name
このスクリプトにはおおよそ、以下のようなことが書かれています。
出力ファイル名は「playdate_game_name.pdx」である
`pdc Source <↑で決めた出力ファイル名>` というコマンドを実行し、ソースコードをビルドする
もしここで何かの理由(ソースに間違いがあるとか)でビルドできなかった場合は「Failed to build project.」というメッセージを出して処理を中断する
ビルドできたら、そのファイルをPlaydateシミュレータで起動する
1つ注意点があります。最後にPlaydateシミュレータを起動する部分ですが、Macの「アプリケーション」に「Playdate Simulator.app」が置かれている必要があります。
これで、Shift+Command+B を押すだけで書いたソースがビルドされ、シミュレータが起動してすぐ結果が確認できると思います!
終わり
僕がVSCodeを使っているのでこのような方法でビルド手順を簡略化していますが、「これも難しい!」という人はPanic社謹製のエディタ「nora」を使うという手もあります。
有料ソフトですがPlaydate関連のデバッガなんかも揃っているようですよ!
他の記事
この記事が気に入ったらサポートをしてみませんか?