//Pedro Henrique de Abreu F.
//João Pedro Paz
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
int x=10;
int B=8;
int M=6;
int BotaoA=1;
int BotaoB=1;
int px,py;
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
void menu(void);
void creditos(void);
#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define NUMFLAKES 10
#define LOGO_HEIGHT 16
#define LOGO_WIDTH 16
void setup() {
pinMode(B, INPUT_PULLUP);
pinMode(M, INPUT_PULLUP);
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3D)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.clearDisplay();
}
void loop() {
menu();
//Serial.println(BotaoA); //Teste dos Botoes
le_valor();
if(BotaoB==0)
{
if(x < 50)
{
display.fillRect(15,x,12,12,SSD1306_BLACK);
x+=10;
}
else
{
display.fillRect(15,x,12,12,SSD1306_BLACK);
x=10;
}
display.display();
delay(50);
}
if(BotaoA==0)
{
limpa();
switch(x)
{
case 10:
limpa();
desenho_nave();
break;
case 20:
jogar();
break;
case 30:
jogar();
break;
case 40:
limpa();
creditos();
break;
case 50:
display.setCursor(30,30);
display.println(F("Saindo"));
display.display();
while (1)
{}
break;
}
limpa();
}
}
void le_valor(void)
{
display.setCursor(15,x);
display.println(F("->"));
display.display();
delay(50);
BotaoA = digitalRead(6);
BotaoB= digitalRead(8);
}
void menu(void)
{
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(30,0);
display.println("SPACE JOURNEY");
display.setCursor(30,10);
display.println(F("Jogar"));
display.setCursor(30,20);
display.println(F("Ranking"));
display.setCursor(30,30);
display.println(F("Creditos"));
display.setCursor(30,40);
display.println(F("Sair"));
display.display();
}
void limpa(void)
{
display.clearDisplay();
display.display();
}
void jogar(void)
{
display.setCursor(10,3);
display.println(F("Jogo em construcao"));
display.display();
BotaoB = 1;
delay(100);
while (BotaoB == 1)
{
BotaoB = digitalRead(6);
}
limpa();
menu();
delay(100);
}
void desenho_nave(void){
display.fillRect(px + 20,py + 20, 8,28,SSD1306_WHITE);//TURBINA esquerda
display.fillRect(px + 22,py + 45, 4,6,SSD1306_WHITE);//TURBINA Esquerda(parte pequena)
display.fillRect(px + 28,py + 26, 3,15,SSD1306_WHITE);//Suporte Turbina esquerda
display.fillRect(px + 31,py + 18, 18,28,SSD1306_WHITE);//Corpo da Nave
display.fillRect(px + 49,py + 26, 3,15,SSD1306_WHITE);//Suporte Turbina direita
display.fillRect(px + 52,py + 20, 8,28,SSD1306_WHITE);//TURBINA Direita
display.fillRect(px + 54,py + 45, 4,6,SSD1306_WHITE);//TURBINA Direita(parte pequena)
display.fillRect(px + 36,py + 40, 8,8,SSD1306_WHITE);//parte traseira
display.fillRect(px + 38,py + 40, 4,10,SSD1306_WHITE);//parte traseira
display.fillRect(px + 36,py + 13, 8,5,SSD1306_WHITE);//Cabine
display.fillRect(px + 38,py + 12, 4,3,SSD1306_WHITE);//Cabine
display.display();
BotaoB = 1;
delay(1000);
while (BotaoB == 1)
{
BotaoB = digitalRead(6);
}
}
void creditos(void)
{
display.setCursor(2,2);
display.println(F("CREDITOS:"));
display.setCursor(2,12);
display.println(F("Pedro H. Abreu"));
display.setCursor(2,22);
display.println(F("Joao Pedro Paz"));
display.setCursor(2,32);
display.println(F("Omairi"));
display.display();
delay(5000);
}