![見出し画像](https://assets.st-note.com/production/uploads/images/148747765/rectangle_large_type_2_2656e85bc7eeb5c216a0c0ae4561fe6b.jpeg?width=1200)
PlaydateゲームをLuaで作る - スプライトを表示する
前提
記事を短くするため説明は最小限です
環境はMac
Playdateゲームをビルドできるようにする方法はこちらの記事を参照してください
やり方
画像を用意する
Sourceディレクトリ内に表示したい画像を用意する
Playdate画面は400x240なのでそれ以下の大きさを推奨(これより大きくても表示はできるが、画面に収まらない)
ここではこのような画像を用意しました
![](https://assets.st-note.com/img/1722126246190-Lz5vUTSXy0.png)
拙作「CRANK and SHOOT!!」で描いた適当な敵。なんだこれ
以下、Sourceディレクトリ内の構成が重要
今こういう状態
![](https://assets.st-note.com/img/1722126403784-wL3IT63nZG.png?width=1200)
コード
main.luaを以下のようにする
ついでにコメントで説明も書いておく
import "CoreLibs/graphics"
local gfx <const> = playdate.graphics -- "playdate.graphics" と書く代わりに "gfx" と書けるようにするためのもの
local spriteImage = gfx.image.new("sample_no_gazou") -- 画像をロードする。ファイル名に拡張子は書かなくて良い
assert(spriteImage, "Failed to load image") -- 画像のロードに失敗した場合はエラーを出してここで終了する。ファイル名指定を間違っていたらここでエラーになる
local sprite = gfx.sprite.new(spriteImage) -- 画像を元にスプライトを作成する
sprite:moveTo(100, 100) -- スプライトを移動する 引数は x, y 座標 左上が (0, 0) で右下に行くほど座標が大きくなる
sprite:setZIndex(1) -- スプライトのZインデックスを設定する。Zインデックスが大きいほど手前に表示される 数字は-256から256までの範囲で指定できる
sprite:add() -- スプライトを描画する
function playdate.update()
gfx.clear() -- 画面をクリアする
gfx.sprite:update() -- スプライトを更新する
end
これをビルドしてPlaydate Simulatorで動作させてみると、以下のようになる
![](https://assets.st-note.com/img/1722126928302-yLVpr0rCoF.png)
moveToで指定する値を変えると位置を変更できるので、自分の好きな画像でいろいろやってみよう
終わり
次はこのスプライトを、キー入力に応じて移動させたり、クランクを回すと回転したりするようにします