// Importando headers / arquivos separados de código
#include "encoder.h" // Aqui tem só setup do Encoder, e a leitura das variáveis, e aqui inicializa o monitor Serial
#include "oled.h" // Pro setup do OLED, #defines e tudo
#include "logo_menu.h" // Aqui tem as coisa pra logo, RenderizarLogoIF, e desenho do Menu inicial que tem
#include "update.h" // Responsável por todo o processamento, variáveis, etc.
#include "render.h" // Responsável pela renderização
constexpr uint8_t FPS = 24; // Aqui seleciona quantos frames por segundo,
// o código se adapta de acordo pra manter a velocidade
constexpr unsigned long tempoFrame = 1000/FPS;
unsigned long ultimoTempo = 0;
unsigned long tempoAtual;
unsigned long tempoSobrando;
void setup() {
SetupEncoder();
SetupOled();
DesenharMenu(2000); // Tempo em milissegundos, divide por 4 dentro da função
// Esse do DesenharMenu, tá no logo_menu.h
ultimoTempo = millis();
}
void loop() {
LerDecoder(); // int direcao vem daqui, BotaoVariado e EncoderGirado também
tempoAtual = millis();
if (tempoAtual - ultimoTempo >= tempoFrame) {
AtualizarGame(); // Aqui vai ir toda a lógica de update, processamento e alteração de variáveis
RenderizarGame(); // Aqui vai ir toda a lógica de renderização, funções de desenho e tudo
ultimoTempo += tempoFrame;
}
}
/* 30/07/2025 - 13:56
Acumulei umas 12 horas, fiz 3:24 no domingo, tamo na quarta, vou avançar agora,
modularizei todo o código, separei em vários headers, agora é organizar o loop e adicionar
mais questões eu acho, o que eu fiz tá no email.
09/08/2025 - Aproximadamente 21:10 do dia 08/08 até 02:03 do dia 09/08
Tô umas 4 horas e 20, adicionei a logo do IF no início feito à mão e depois
passado, adicionei mais perguntas e melhorei o desenho do menu, tô começando a
me preocupar com a otimização, tá ficando pesado por algum motivo, e bom, documentei
mais o código, e dei uma analisada geral, acho que deixei o mais organizado que dava,
e o mais bem otimizado também, agora é focar em colocar mais perguntas talvez, uma
animação melhor pra tela de início, e um algoritmo que torna menos aleatório a escolha
das perguntas, porque é muito fácil ficar se repetindo pergunta sabe ;--;, e isso é bem
chato, ou talvez colocar até em ordem mesmo, depois é talvez provavelmente passar a lista
de questões pra um banco de dados, ver sobre isso da otimização e do porquê estar meio lento,
ah e o servidor que eu tava pensando em usar era o FireBase da Google, tenho que ver se
o sor prefere deixar nos headers, ou em um servidor, provavelmente nos servidores se pá.
Ah e por último acredito que talvez trabalhar no segundo projeto alternativo, em que vou
manter as principais lógicas de processamento e renderização, mas vou focar bem mais
em otimização, porque vai ter que vários FPS, vou fazer um jogo visual, principalmente
em relação aos delays e tempos, que trava toda a execução, eu posso usar millis() depois,
e esses delays já se provaram bem ruins por travarem tudo mesmo, mas são bem bons porque
são mais leves, sem executar a cada certo tempo fica bem mais leve pro simulador rodar, ah
e no projeto alternativo vou focar em modularidade desde cedo também.
*/