スプライト
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)
- スプライトを座標指定、あるいは相対距離で移動させます。
- Collide Rect (衝突矩形)
- スプライト本体とは別に設定できる、当たり判定用の長方形領域です。
- Collision Groups (衝突グループ)
- スプライトをカテゴリ分け(例:敵、弾、壁)するための数値(1〜32)です。どのグループ同士が当たるかを設定できます。
- moveWithCollisions(x, y)
- 単なる移動ではなく、「何かにぶつかったら止まる・滑る」といった物理的な挙動を計算しながら移動させる高度な関数です。
5. 管理・識別
- Tag (タグ)
- スプライトに任意の整数を割り当てる機能です。画面上の全スプライトから「敵(タグ1)だけを取得する」といったフィルタリングに使われます。
- remove()
- スプライトをDisplay Listから外し、画面に表示されないようにします。
関連ページ
最終更新:2026年05月03日 10:33