Skip to content

Instantly share code, notes, and snippets.

@mongonta0716
Created May 14, 2020 03:52
Show Gist options
  • Save mongonta0716/ee59eb3e163a90bb1e166774beb09b36 to your computer and use it in GitHub Desktop.
Save mongonta0716/ee59eb3e163a90bb1e166774beb09b36 to your computer and use it in GitHub Desktop.
スプライトの最大数を調査するためのサンプル(Investigate the maximum number of sprites.)
// スプライトの最大数調査用サンプル
// 使い方
// 下記の変数を変えることにより、使用可能なSpriteの最大数を調べることができます。
// ・MAX_SPRITE 表示したいスプライトの数
// ・sprite_w スプライトの幅
// ・sprite_h スプライトの高さ
// ・color_depth スプライトのカラー深度
// ●PSRAMを使う場合
// ・use_psramをtrueにしてください。
// 表示できた数字が最大の枚数です。
#include <LovyanGFX.hpp>
static LGFX lcd;
#define MAX_SPRITE 32
uint16_t sprite_w = 320;
uint16_t sprite_h = 240;
uint16_t color_depth = 16;
bool use_psram = true;
static LGFX_Sprite sprite[MAX_SPRITE](&lcd);
static uint16_t colors[16] = {
0x0000, 0x000F, 0x03e0, 0x03ef,
0x7800, 0x780f, 0x7be0, 0xd69a,
0x7bef, 0x001f, 0x07e0, 0x07ff,
0xf8ff, 0xf81f, 0xffe0, 0xffff,
};
void setup() {
lcd.init();
for (int i=0; i<MAX_SPRITE; i++) {
sprite[i].setSwapBytes(true);
sprite[i].setPsram(use_psram);
sprite[i].setColorDepth(color_depth);
sprite[i].createSprite(sprite_w, sprite_h);
uint16_t x = 20*(i%16);
uint16_t y = (20*(i/16)) % 240;
uint16_t color = colors[i%16];
sprite[i].fillSprite(color);
sprite[i].setTextSize(1);
sprite[i].printf("%d", i);
sprite[i].pushSprite(x, y);
}
}
void loop() {
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment