スペースインベーダのキャラクタを動かす
画像が表示できることができると、昭和レトロ「スペースインベーダ」のキャラクタを動かしたくなりました。
あとはキャラクタを移動させながら、2つのキャラクタを交互に表示させるを懐かしいキャラクタが画面に表示されます。
#include "img_ika1.h"
#include "img_ika2.h"
#include "img_kani1.h"
#include "img_kani2.h"
#include "img_tako1.h"
#include "img_tako2.h"
LGFX gfx;
void setup() {
gfx.init();
}
int x=5, y=10;
void loop() {
gfx.drawPng((std::uint8_t*)img_ika1, sizeof(img_ika1), x+48, y);
gfx.drawPng((std::uint8_t*)img_ika1, sizeof(img_ika1), x+26, y);
gfx.drawPng((std::uint8_t*)img_ika1, sizeof(img_ika1), x+4, y);
gfx.drawPng((std::uint8_t*)img_kani1, sizeof(img_kani1), x+2, y+20);
gfx.drawPng((std::uint8_t*)img_tako1, sizeof(img_tako1), x, y+40);
delay(300);
x++;
gfx.drawPng((std::uint8_t*)img_ika2, sizeof(img_ika2), x+48, y);
gfx.drawPng((std::uint8_t*)img_ika2, sizeof(img_ika2), x+26, y);
gfx.drawPng((std::uint8_t*)img_ika2, sizeof(img_ika2), x+4, y);
gfx.drawPng((std::uint8_t*)img_kani2, sizeof(img_kani2), x+2, y+20);
gfx.drawPng((std::uint8_t*)img_tako2, sizeof(img_tako2), x, y+40);
delay(300);
x++;
if( x> gfx.width() ) x = 5;
}
ここまでの準備で、画面に「グラフィックを描く」、「テキストを表示する」、「画像を表示する」ことができるようになりました。
YouTubeにINVADERが動く様子の動画をアップしました。


0 件のコメント:
コメントを投稿