スプライトを考える


R1.12.20 ゲーム風に仕立ててみた

 スプライト機能といえば、昔は一旦画面に描いたキャラをget@で読み込んで、put@で自由に表示するといった感じだったと思う。BASICだけど。その記憶が結構邪魔した。

 先ずは、
TFT_eSprite spr1 = TFT_eSprite(&M5.Lcd);
によって初期化する。この時、spr1 という部分は任意の名前を使うことができる。さらに、spr1 spr2 spr3 といくらでも作ることができる。

 次に、色ビット数を選択し spr1.setColorDepth(8);
 縦横の大きさを決める。 spr1.createSprite(Size, Size);

 あとはこの大きさに準じた画像を描く。

 描き方は、
M5.Lcd.drawString(.....) ではなく、spr1.drawString(.....) という書式になる。詳しくは調べてね。

 上のスケッチでは、球のスプライトと球を消す黒のスプライト、ブロックのスプライトを作った。配列変数にブロックの位置を0と1で記しておき、1とある場所にspr1.pushSprite(.....)すれば、そこにブロックが表示する。

 球が動くときに、動く方向の位置にブロックがあれば(1であれば)球は動けないとなる。そうプログラムすればいい。この辺は子供にプログラムさせても面白いだろうね。

 さらに、2として得点キャラでも作るか、3として敵キャラを作ればゲームができそうだ。面白いかどうかは別として。ただ、自分としては興味がないな(^^;)

 そうそう、球を動かすのは、加速度を調べているので、ボタン操作ではなく、M5Stack本体を傾けることで実現している。