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本体を傾けることで実現している。