Skip to content

Commit

Permalink
Merge pull request #17 from lovyan03/unstable
Browse files Browse the repository at this point in the history
v0.1.9
  • Loading branch information
lovyan03 authored May 21, 2020
2 parents d9e0d71 + f9708f7 commit 5292772
Show file tree
Hide file tree
Showing 19 changed files with 2,314 additions and 48 deletions.
35 changes: 19 additions & 16 deletions examples/HowToUse/3_fonts/3_fonts.ino
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ void setup(void)

drawGradation();

// 文字の表示方法には大きく分けて2通り、print 系の関数と drawString 系の関数があります。
// 文字の描画方法には大きく分けて2通り、print 系の関数と drawString 系の関数があります。

// drawString 関数では、第1引数で文字列を指定し、第2引数でX座標、第3引数でY座標を指定します。
lcd.drawString("string!", 10, 10);
Expand All @@ -31,20 +31,20 @@ void setup(void)
// drawFloat 関数では、第1引数が数値、第2引数が小数点以下の桁数になり、第3引数がX座標、第4引数がY座標になります。
lcd.drawFloat(3.14, 2, 150, 10);

// print 関数では、setCursor関数で指定した座標 (またはprint関数で最後に表示した文字の続き)に表示します
// print 関数では、setCursor関数で指定した座標 (またはprint関数で最後に描画した文字の続き)に描画します
lcd.setCursor(10, 20);
lcd.print("print!");

// printf関数で、第2引数以降の内容を表示できます。(C言語のprintf準拠ですので文字列や浮動小数も表示できます)
// printf関数で、第2引数以降の内容を描画できます。(C言語のprintf準拠ですので文字列や浮動小数も描画できます)
int value = 123;
lcd.printf("test %d", value);

// println関数で、文字列を表示後に改行できます。print("\n");と同じ効果です。
// println関数で、文字列を描画後に改行できます。print("\n");と同じ効果です。
lcd.println("println");

// フォントを変更するには、setFont関数を使用します。
// TFT_eSPIのsetTextFont関数と同じフォントは Font0 ~ Font8 になります。
// ※ エディタの入力支援が使える場合、引数にfonts::まで入力する事でフォント一覧が表示されます
// ※ エディタの入力支援が使える場合、引数に&fonts::まで入力する事でフォント一覧が表示されます
lcd.setFont(&fonts::Font4);
lcd.println("TestFont4");

Expand All @@ -69,15 +69,15 @@ void setup(void)
lcd.print("YellowText ClearBack");


// ※ Font6は時計表示用の文字のみが収録されています
// Font6は時計用の文字のみが収録されています
lcd.setFont(&fonts::Font6);
lcd.print("apm.:-0369");

// Font7は7セグメント液晶風のフォントが収録されています。
// Font7は7セグメント液晶風のフォントが収録されています。
lcd.setFont(&fonts::Font7);
lcd.print(".:-147");

// Font8は数字のみが収録されています。
// Font8は数字のみが収録されています。
lcd.setFont(&fonts::Font8);
lcd.print(".:-258");

Expand Down Expand Up @@ -126,7 +126,7 @@ void setup(void)
lcd.drawString("top_left", lcd.width() / 2, lcd.height() / 2);


// 基準座標に中心線を表示
// 基準座標に中心線を描画
lcd.drawFastVLine(lcd.width() / 2, 0, lcd.height(), 0xFFFFFFU);
lcd.drawFastHLine(0, lcd.height() / 2, lcd.width(), 0xFFFFFFU);

Expand All @@ -145,7 +145,7 @@ void setup(void)
lcd.setClipRect(10, 10, lcd.width() - 20, lcd.height() - 20);


// setTextSize 関数で 文字の表示倍率を指定します
// setTextSize 関数で 文字の拡大率を指定します
// 第1引数で横方向の倍率、第2引数で縦方向の倍率を指定します。
// 第2引数を省略した場合は、第1引数の倍率が縦と横の両方に反映されます。
lcd.setTextSize(3, 4);
Expand All @@ -159,19 +159,22 @@ void setup(void)

lcd.setTextSize(1);

// setTextWrap 関数で、print 関数が画面端に到達した時の折り返し動作を指定します
// 第1引数が行末での折り返し、第2引数で画面下端で上端への折り返しを指定します
// 第2引数は省略時 false として扱われます。
// setTextWrap 関数で、print 関数が画面端(描画範囲端)に到達した時の折り返し動作を指定します
// 第1引数をtrueにすると、右端到達後に左端へ移動します
// 第2引数をtrueにすると、下端到達後に上端へ移動します。(省略時:false)
lcd.setTextWrap(false);
lcd.setTextColor(0x00FFFFU, 0);
lcd.println("setTextWrap(false) testing... long long long long string wrap test string ");
// false指定時は位置調整されず、描画範囲外にはみ出した部分は描画されません。

lcd.setTextWrap(true);
lcd.setTextColor(0xFFFF00U, 0);
lcd.println("setTextWrap(true) testing... long long long long string wrap test string ");
// true指定時は描画範囲内に収まるよう座標を自動調整します。

delay(1000);

// 第2引数にtrue指定時は、画面下端に到達すると続きを上端から描画します。
lcd.setTextColor(0xFFFFFFU, 0);
lcd.setTextWrap(true, true);
lcd.println("setTextWrap(true, true) testing...");
Expand All @@ -184,7 +187,7 @@ void setup(void)
drawGradation();

// setTextScroll 関数で、画面下端に到達した時のスクロール動作を指定します。
// setScrollRect 関数でスクロールする矩形範囲を指定できます。
// setScrollRect 関数でスクロールする矩形範囲を指定します。(未指定時は画面全体がスクロールします)
// ※ スクロール機能は、LCDが画素読出しに対応している必要があります。
lcd.setTextScroll(true);

Expand All @@ -196,10 +199,10 @@ void setup(void)
}


// setClipRectの範囲指定を解除
// setClipRectの範囲指定を解除します。
lcd.clearClipRect();

// setScrollRectの範囲指定を解除
// setScrollRectの範囲指定を解除します。
lcd.clearScrollRect();


Expand Down
50 changes: 50 additions & 0 deletions examples/Sprite/PartyParrot/PartyParrot.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@

// The parrot image data is from this site.
// https://cultofthepartyparrot.com/

#include "parrot00.h"
#include "parrot01.h"
#include "parrot02.h"
#include "parrot03.h"
#include "parrot04.h"
#include "parrot05.h"
#include "parrot06.h"
#include "parrot07.h"
#include "parrot08.h"
#include "parrot09.h"

#include <LovyanGFX.hpp>

static LGFX lcd;
static LGFX_Sprite sprite[10];

static std::uint32_t count = 0;
static float zoom = 0;

void setup()
{
lcd.init();
lcd.setRotation(0);
if (lcd.width() < lcd.height()) { lcd.setRotation(1); }

zoom = std::min((float)lcd.width() / 128, (float)lcd.height() / 96);

lcd.setPivot(lcd.width() >> 1, lcd.height() >> 1);
lcd.fillScreen(0xFFFFFFU);

sprite[0].createFromBmp(parrot00, ~0u);
sprite[1].createFromBmp(parrot01, ~0u);
sprite[2].createFromBmp(parrot02, ~0u);
sprite[3].createFromBmp(parrot03, ~0u);
sprite[4].createFromBmp(parrot04, ~0u);
sprite[5].createFromBmp(parrot05, ~0u);
sprite[6].createFromBmp(parrot06, ~0u);
sprite[7].createFromBmp(parrot07, ~0u);
sprite[8].createFromBmp(parrot08, ~0u);
sprite[9].createFromBmp(parrot09, ~0u);
}

void loop() {
if (++count == 10) count = 0;
sprite[count].pushRotateZoom(&lcd, lcd.width() >> 1, lcd.height() >> 1, 0, zoom, zoom);
}
Loading

0 comments on commit 5292772

Please sign in to comment.