/**************************************************************************
**************************************************************************/
#include <Adafruit_GFX.h> // Core graphics library
#include <SPI.h> // Arduino SPI library
// ST7789 display module connections
#define TFT_CS 10
#define TFT_RST 8 // define reset pin, or set to -1 and connect to Arduino RESET pin
#define TFT_DC 9 // define data/command pin
//#define STTXX
#ifndef STTXX
#include <Adafruit_ILI9341.h>
Adafruit_ILI9341 display = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
#else
#include <Adafruit_ST7789.h>
Adafruit_ST7789 display = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);
#endif
// Initialize Adafruit ST7789 TFT library
#define ST77XX_BLACK 0x0000
#define ST77XX_GRAY 0x8410
#define ST77XX_WHITE 0xFFFF
#define ST77XX_RED 0xF800
#define ST77XX_ORANGE 0xFA60
#define ST77XX_YELLOW 0xFFE0
#define ST77XX_LIME 0x07F0
#define ST77XX_GREEN 0x07E0
#define ST77XX_CYAN 0x07FF
#define ST77XX_AQUA 0x04FF
#define ST77XX_BLUE 0x001F
#define ST77XX_MAGENTA 0xF81F
#define ST77XX_PINK 0xF8FF
#define pinoA 4
#define pinoB 5
void margem(void);
void creditos(void);
void ranking(void);
void fechar(void);
int botao(void);
void seta(int a);
void novo(char * b);
void dinossauro(void);
void obstaculo (void);
void OVNI (void);
void setup() {
Serial.begin(9600);
pinMode(pinoA, INPUT_PULLUP);
pinMode(pinoB, INPUT_PULLUP);
#ifdef STTXX
display.init(240, 240, SPI_MODE2);
#else
display.begin();
#endif
display.setTextWrap(false);
display.fillScreen(ST77XX_CYAN);
}
void loop() {
//dinossauro();
//display.fillScreen(ST77XX_CYAN);
OVNI();
}
void OVNI(void)
{
int i=0;
for(i=0;i<270;i++)
{
display.fillRect(45+i,155,18,3,ST77XX_BLACK);//primeira linha
display.fillRect(42+i,155,3,3,ST77XX_CYAN);//Apaga rastro
display.fillRect(45+i,152,18,3,ST77XX_GRAY);//segunda linha
display.fillRect(42+i,152,3,3,ST77XX_BLACK);//Borda esquerda da segunda linha
display.fillRect(39+i,152,3,3,ST77XX_CYAN);//Apaga rastro
display.fillRect(63+i,152,3,3,ST77XX_BLACK);//Borda direita da segunda linha
display.fillRect(36+i,149,36,3,ST77XX_BLACK);//Terceira linha
display.fillRect(33+i,149,3,3,ST77XX_CYAN);//Apaga rastro
display.fillRect(36+i,146,36,3,ST77XX_GRAY);//Quarta linha
display.fillRect(33+i,146,3,3,ST77XX_BLACK);//Borda da quarta linha
display.fillRect(30+i,146,3,3,ST77XX_CYAN);//Apaga rastro
display.fillRect(72+i,146,3,3,ST77XX_BLACK);//Borda da quarta linha
display.fillRect(30+i,137,3,9,ST77XX_BLACK);//Borda de 3 linhas da esquerda
display.fillRect(27+i,137,3,9,ST77XX_CYAN);//Apaga rastro
display.fillRect(33+i,143,42,3,ST77XX_GRAY);//Quinta linha
display.fillRect(75+i,137,3,9,ST77XX_BLACK);//Borda de 3 linhas da direita
display.fillRect(33+i,140,15,3,ST77XX_GRAY);//Sexta linha começo
display.fillRect(48+i,140,12,3,ST77XX_BLACK);//Preto no meio da sexta linha
display.fillRect(60+i,140,15,3,ST77XX_GRAY);//Sexta linha fim
display.fillRect(33+i,137,12,3,ST77XX_GRAY);//Setima linha
display.fillRect(45+i,128,3,12,ST77XX_BLACK);//Vidro esquerdo da nave
display.fillRect(42+i,128,3,3,ST77XX_CYAN);
display.fillRect(48+i,128,12,12,ST77XX_CYAN);//VIdro da nave
display.fillRect(63+i,137,12,3,ST77XX_GRAY);//Setima linha fim
display.fillRect(60+i,128,3,12,ST77XX_BLACK);//Vidro ddireito da nave
display.fillRect(33+i,134,6,3,ST77XX_BLACK);//borda esquerda da linha 8
display.fillRect(30+i,134,3,3,ST77XX_CYAN);//Apaga rastro
display.fillRect(39+i,134,6,3,ST77XX_GRAY);//Linha 8 começo
display.fillRect(63+i,134,6,3,ST77XX_GRAY);//Linha 8 fim
display.fillRect(69+i,134,6,3,ST77XX_BLACK);//Borda direita da linha 8
//display.fillRect(36+i,134,3,3,ST77XX_CYAN);//Apaga rastro
display.fillRect(39+i,131,6,3,ST77XX_BLACK);//Borda da esquerda da linha 9
display.fillRect(36+i,131,3,3,ST77XX_CYAN);//Apaga rastro
display.fillRect(63+i,131,6,3,ST77XX_BLACK);//Borda da direita da linha 9
display.fillRect(48+i,125,3,3,ST77XX_BLACK);
display.fillRect(45+i,125,3,3,ST77XX_CYAN);//Apaga rastro
//display.fillRect(48,125,12,3,ST77XX_BLACK);
display.fillRect(51+i,125,6,3,ST77XX_CYAN);
display.fillRect(57+i,125,3,3,ST77XX_BLACK);
display.fillRect(54+i,125,3,3,ST77XX_CYAN);
display.fillRect(51+i,122,6,3,ST77XX_BLACK);
display.fillRect(48+i,122,3,3,ST77XX_CYAN);//Apaga rastro
}
}
void dinossauro(void)
{
//margem();
//display.fillRect(2, 2, 236, 196, ST77XX_CYAN);
//display.fillRect(2, 198, 236, 40, ST77XX_LIME);
// desenha o dinossauro
// **desenha a cabeça
display.fillRect(178, 136, 2, 18, ST77XX_RED);
display.fillRect(180, 134, 25, 22, ST77XX_RED);
display.fillRect(205, 136, 2, 20, ST77XX_RED);
// **desenha o corpo
// desenha um quadrado logo abaixo da cabeça
display.fillRect(190, 156, 19, 23, ST77XX_RED);
// desenha linha por linha das costas
display.fillRect(207, 156, 2, 23, ST77XX_RED);
display.fillRect(209, 158, 2, 21, ST77XX_RED);
display.fillRect(211, 160, 2, 19, ST77XX_RED);
display.fillRect(213, 162, 2, 17, ST77XX_RED);
display.fillRect(215, 164, 2, 15, ST77XX_RED);
display.fillRect(217, 166, 2, 13, ST77XX_RED);
// desenha linha por linha da parte de baixo do corpo
display.fillRect(192, 179, 29, 2, ST77XX_RED);
display.fillRect(194, 181, 25, 2, ST77XX_RED);
display.fillRect(196, 183, 21, 2, ST77XX_RED);
// **desenha a cauda
display.fillRect(219, 168, 4, 11, ST77XX_RED);
display.fillRect(223, 166, 2, 11, ST77XX_RED);
display.fillRect(225, 164, 2, 11, ST77XX_RED);
display.fillRect(227, 160, 2, 13, ST77XX_RED);
display.fillRect(229, 156, 2, 15, ST77XX_RED);
// **desenha o braço
display.fillRect(186, 162, 4, 2, ST77XX_RED);
display.fillRect(186, 164, 2, 2, ST77XX_RED);
// **desenha as perna
// desenha a parte onde as pernas se juntam
display.fillRect(198, 185, 17, 3, ST77XX_RED);
// perna da esquerda
display.fillRect(198, 188, 6, 4, ST77XX_RED);
display.fillRect(198, 192, 4, 9, ST77XX_RED);
display.fillRect(195, 197, 3, 4, ST77XX_RED);
// perna da direita
display.fillRect(209, 188, 6, 4, ST77XX_RED);
display.fillRect(211, 192, 4, 9, ST77XX_RED);
display.fillRect(208, 197, 3, 4, ST77XX_RED);
// **desenha o olho e a boca
// desenha o olho
display.fillRect(201, 138, 2, 2, ST77XX_BLACK);
// desenha a boca
display.fillRect(178, 150, 10, 2, ST77XX_BLACK);
delay(3000);
}