アットウィキロゴ

スプライト

Playdate SDKにおける「スプライト(Sprite)」は、単なる画像表示以上の役割を持つ「ゲームオブジェクト管理システム」の中核となるクラスです。



概要

1. 基本概念と描画
Sprite (スプライト)
画面上を動くキャラクター、背景、UI要素など、独立して管理される表示オブジェクトの総称です。
Display List (ディスプレイリスト)
システムが管理する「描画待ち行列」です。スプライトを add() するとこのリストに入り、自動的に描画対象となります。
Z-Index (Zインデックス)
描画の重なり順を制御する数値です。値が大きいほど手前に表示されます。setZIndex() で設定します。
Dirty (ダーティ / 汚れ)
スプライトが移動したり画像が変わったりした際、再描画が必要な領域としてマークされる状態です。Playdateは全画面を書き換えず、この「ダーティ」な領域(行単位)のみを効率的に更新します。

2. スプライトの定義方法
setImage
スプライトに静止画(ビットマップ)を割り当てます。
draw() コールバック
画像を割り当てる代わりに、描画処理をコードで自作する方法です。この場合、setSize() でスプライトの大きさを明示する必要があります。
Background Drawing Callback
スプライトが描画される「さらに後ろ」に背景を直接描画するための仕組みです。

3. 移動と更新
playdate.graphics.sprite.update()
1フレームに一度呼び出す共通関数です。リストにある全スプライトの update() メソッドを呼び、画面描画を確定させます。
self:update()
各スプライト固有のロジック(移動や状態変化)を記述するメソッドです。
moveTo(x, y) / moveBy(dx, dy)
スプライトを座標指定、あるいは相対距離で移動させます。

4. 衝突判定 (コリジョン)
Collide Rect (衝突矩形)
スプライト本体とは別に設定できる、当たり判定用の長方形領域です。
Collision Groups (衝突グループ)
スプライトをカテゴリ分け(例:敵、弾、壁)するための数値(1〜32)です。どのグループ同士が当たるかを設定できます。
moveWithCollisions(x, y)
単なる移動ではなく、「何かにぶつかったら止まる・滑る」といった物理的な挙動を計算しながら移動させる高度な関数です。

5. 管理・識別
Tag (タグ)
スプライトに任意の整数を割り当てる機能です。画面上の全スプライトから「敵(タグ1)だけを取得する」といったフィルタリングに使われます。
remove()
スプライトをDisplay Listから外し、画面に表示されないようにします。


関連ページ

最終更新:2026年05月03日 10:33