Skip to content

Commit

Permalink
Merge pull request #6 from IncursioHack/main
Browse files Browse the repository at this point in the history
Jabberjaw
  • Loading branch information
pr3y authored May 8, 2024
2 parents 0efaa13 + 89d4f7b commit 6ddc2d3
Show file tree
Hide file tree
Showing 3 changed files with 157 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ TFT_eSprite draw = TFT_eSprite(&tft);
#include "mfrc522_i2c.h"
#include "TV-B-Gone.h"
#include "sniffer.h"
#include "tururururu.h"


#ifdef CARDPUTER
Expand Down Expand Up @@ -217,6 +218,7 @@ void loop() {
{"TV-B-Gone", [=]() { StartTvBGone(); }},
{"SD Card", [=]() { loopSD(); }},
{"WebUI", [=]() { loopOptionsWebUi(); }},
{"Megalodon", [=]() { shark_setup(); }},
};
if(sdcardMounted) options.push_back({"Custom IR", [=]() { otherIRcodes(); }});
#ifdef CARDPUTER
Expand Down
133 changes: 133 additions & 0 deletions src/tururururu.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
#include "mykeyboard.h"
#include "tururururu.h"
#include "globals.h"
#include "display.h"

// Configuração do personagem principal (tubarão)
int sharkX = 40;
int sharkY = 80;
int sharkSize = 10;

//Configuração dos peixes
struct Fish {
int x, y, size;
};
Fish fish[5]; // Array de peixes

// Configuração de pontuação
int score = 0;

// Função para desenhar o tubarão
void drawShark() {
tft.fillRect(sharkX, sharkY, sharkSize, sharkSize, TFT_BLUE);
}

// Função para desenhar peixes
void drawFish(Fish &f) {
tft.fillRect(f.x, f.y, f.size, f.size, TFT_GREEN);
}

// Função para mover o tubarão
void moveShark() {

if (checkPrevPress() || checkSelPress()) {
sharkY -= 2; // Move para cima
}
if (checkNextPress()) {
sharkY += 2; // Move para baixo
}
if (sharkY < 0) {
sharkY = 0;
}
if (sharkY > tft.height() - sharkSize) {
sharkY = tft.height() - sharkSize;
}
}

// Função para mover peixes
void moveFish(Fish &f) {
f.x -= 2; // Move o peixe para a esquerda
if (f.x < -10) {
f.x = tft.width() + random(20, 100);
f.y = random(10, tft.height() - 20);
}
}

// Função para verificar colisões entre o tubarão e os peixes
void checkCollisions() {
for (int i = 0; i < 5; i++) {
if ((sharkX < fish[i].x + fish[i].size) && (sharkX + sharkSize > fish[i].x) &&
(sharkY < fish[i].y + fish[i].size) && (sharkY + sharkSize > fish[i].y)) {
// Colidiu com um peixe
fish[i].x = tft.width() + random(20, 100);
fish[i].y = random(10, tft.height() - 20);
score++;
}
}
}

// Função para exibir a pontuação
void displayScore() {
tft.setTextColor(TFT_WHITE);
tft.setTextSize(2);
tft.setCursor(0, 0);
tft.printf("Score: %d", score);
}

void shark_setup() {
// Inicializa a tela
tft.begin();
// tft.fillScreen(TFT_BLACK);

// Inicializa a posição dos peixes
for (int i = 0; i < 5; i++) {
fish[i].x = tft.width() + random(20, 100);
fish[i].y = random(10, tft.height() - 20);
fish[i].size = 8;
}
shark_loop();
}

void shark_loop() {
for(;;) {
// Limpa a tela
tft.fillScreen(TFT_BLACK);

// Move o tubarão
moveShark();

// Desenha o tubarão
drawShark();

// Move e desenha os peixes
for (int i = 0; i < 5; i++) {
moveFish(fish[i]);
drawFish(fish[i]);
}

// Verifica colisões
checkCollisions();

// Exibe a pontuação
displayScore();

// Pequeno atraso para controlar a velocidade do loop
delay(50);
}

#ifndef CARDPUTER
if(checkPrevPress()) { // Apertar o botão power dos sticks
tft.fillScreen(BGCOLOR);
goto Exit;
}
#else
Keyboard.update();
if(Keyboard.isKeyPressed('`')) {
tft.fillScreen(BGCOLOR);
goto Exit;
} // apertar ESC no Cardputer
#endif
Exit:
delay(300);
Serial.println();
}
22 changes: 22 additions & 0 deletions src/tururururu.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#include "globals.h"
#include "display.h"

// Configuração do personagem principal (tubarão)
extern int sharkX;
extern int sharkY;
extern int sharkSize;

// Configuração de pontuação
extern int score;

// Funções para manipulação do jogo
void drawShark();
//void drawFish(Fish &f);
void drawFish();
void moveShark();
//void moveFish(Fish &f);
void moveFish();
void checkCollisions();
void displayScore();
void shark_setup();
void shark_loop();

0 comments on commit 6ddc2d3

Please sign in to comment.