Bonjour,
j'essaie de créer un petit jeu "Nombre mystère" mais je me retrouve dans une impasse .. j'ai un souci concernant mes millis(), je ne comprends pas pourquoi dans ma fonction "void introduction()" mon code n'affiche que le premier texte "Bienvenue" et ne rentre pas dans le second IF pour afficher le reste.
[code]
// Déclaration pour la Millis
unsigned long previousMillis;
unsigned long currentMillis;
const long intervalBienvenue = 5000;
const long intervalDifficulte = 1000;
const long intervalInformation = 1500;
const long intervalDebut = 2000;
// Déclaration du tableau
int tableau[3];
void setup()
{
// Déclaration des pins correspondant aux boutons
pinMode(pinButton30, INPUT);
pinMode(pinButton31, INPUT);
pinMode(pinButton32, INPUT);
pinMode(pinButton33, INPUT);
pinMode(pinButton34, INPUT);
pinMode(pinButton35, INPUT);
pinMode(pinButton36, INPUT);
pinMode(pinButton37, INPUT);
pinMode(pinButton38, INPUT);
pinMode(pinButton39, INPUT);
pinMode(pinButtonEnter, INPUT);
pinMode(pinButtonDelete, INPUT);
pinMode(pinButtonStart, INPUT);
currentButtonState0 = digitalRead(pinButton30);
currentButtonState1 = digitalRead(pinButton31);
currentButtonState2 = digitalRead(pinButton32);
currentButtonState3 = digitalRead(pinButton33);
currentButtonState4 = digitalRead(pinButton34);
currentButtonState5 = digitalRead(pinButton35);
currentButtonState6 = digitalRead(pinButton36);
currentButtonState7 = digitalRead(pinButton37);
currentButtonState8 = digitalRead(pinButton38);
currentButtonState9 = digitalRead(pinButton39);
currentButtonStateEnter = digitalRead(pinButtonEnter);
currentButtonStateDelete = digitalRead(pinButtonDelete);
currentButtonStateStart = digitalRead(pinButtonStart);
// Ce qui va être affiché à l'écran
tft.begin(); // Initialisation de l'écran
tft.fillScreen(BLACK);
tft.setCursor(0, 5);
tft.setTextColor(WHITE);
tft.setTextSize(1);
tft.println("Appuyez sur START");
Serial.begin(9600);
Serial.println("begin");
}
void introduction()
{
if (currentMillis - previousMillis >= intervalBienvenue)
{
previousMillis = currentMillis;
tft.fillScreen(BLACK); // Couleur du fond d'écran
tft.setCursor(0, 5); // Position du texte, (0,0) en haut à gauche
tft.setTextColor(WHITE); // Couleur du texte
tft.setTextSize(1); // Taille du texte
tft.println("Bienvenue !"); // Message à afficher sur l'écran
Serial.println(previousMillis);
if (currentMillis - previousMillis >= intervalDifficulte)
{
previousMillis = currentMillis;
tft.fillScreen(BLACK);
tft.setCursor(0, 5);
tft.setTextColor(WHITE);
tft.setTextSize(1);
tft.println("Votre mode de\ndifficulte est -LEVEL-");
if (currentMillis - previousMillis >= intervalInformation)
{
previousMillis = currentMillis;
tft.fillScreen(BLACK);
tft.setCursor(0, 5);
tft.println("Nombre entre\n1 et -NNNN-\n");
tft.println("Vous avez");
tft.println("X coups");
tft.println("T secondes");
if (currentMillis - previousMillis >= intervalDebut)
{
previousMillis = currentMillis;
tft.fillScreen(BLACK);
tft.setCursor(0, 5);
tft.println("Quel est le\nnombre mystere ?");
}
}
}
}
}
void loop()
{
currentMillis = millis();
// Serial.println(currentMillis);
lastButtonStateStart = currentButtonStateStart; // Afficher à l'écran, une seule fois, ce sur quoi le joueur a pressé
currentButtonStateStart = digitalRead(pinButtonStart);
if (lastButtonStateStart == HIGH && currentButtonStateStart == LOW)
{
buttonState = !buttonState;
mysteryStart = true;
}
if (mysteryStart == true) {
introduction();
mysteryStart = false;
}
lastButtonState0 = currentButtonState0; // Afficher à l'écran, une seule fois, ce sur quoi le joueur a pressé
currentButtonState0 = digitalRead(pinButton30);
if (lastButtonState0 == HIGH && currentButtonState0 == LOW)
{
buttonState = !buttonState;
tableau[0] = 0;
tft.print(tableau[0]);
}
lastButtonState1 = currentButtonState1; // Afficher à l'écran, une seule fois, ce sur quoi le joueur a pressé
currentButtonState1 = digitalRead(pinButton31);
if (lastButtonState1 == HIGH && currentButtonState1 == LOW)
{
buttonState = !buttonState;
tableau[1] = 1;
tft.print(tableau[1]);
}
lastButtonState2 = currentButtonState2; // Afficher à l'écran, une seule fois, ce sur quoi le joueur a pressé
currentButtonState2 = digitalRead(pinButton32);
if (lastButtonState2 == HIGH && currentButtonState2 == LOW)
{
buttonState = !buttonState;
tableau[2] = 2;
tft.print(tableau[2]);
}
lastButtonState3 = currentButtonState3; // Afficher à l'écran, une seule fois, ce sur quoi le joueur a pressé
currentButtonState3 = digitalRead(pinButton33);
if (lastButtonState3 == HIGH && currentButtonState3 == LOW)
{
buttonState = !buttonState;
tableau[3] = 3;
tft.print(tableau[3]);
}
lastButtonState4 = currentButtonState4; // Afficher à l'écran, une seule fois, ce sur quoi le joueur a pressé
currentButtonState4 = digitalRead(pinButton34);
if (lastButtonState4 == HIGH && currentButtonState4 == LOW)
{
buttonState = !buttonState;
tableau[4] = 4;
tft.print(tableau[4]);
}
lastButtonState5 = currentButtonState5; // Afficher à l'écran, une seule fois, ce sur quoi le joueur a pressé
currentButtonState5 = digitalRead(pinButton35);
if (lastButtonState5 == HIGH && currentButtonState5 == LOW)
{
buttonState = !buttonState;
tableau[5] = 5;
tft.print(tableau[5]);
}
lastButtonState6 = currentButtonState6; // Afficher à l'écran, une seule fois, ce sur quoi le joueur a pressé
currentButtonState6 = digitalRead(pinButton36);
if (lastButtonState6 == HIGH && currentButtonState6 == LOW)
{
buttonState = !buttonState;
tableau[6] = 6;
tft.print(tableau[6]);
}
lastButtonState7 = currentButtonState7; // Afficher à l'écran, une seule fois, ce sur quoi le joueur a pressé
currentButtonState7 = digitalRead(pinButton37);
if (lastButtonState7 == HIGH && currentButtonState7 == LOW)
{
buttonState = !buttonState;
tableau[7] = 7;
tft.print(tableau[7]);
}
lastButtonState8 = currentButtonState8; // Afficher à l'écran, une seule fois, ce sur quoi le joueur a pressé
currentButtonState8 = digitalRead(pinButton38);
if (lastButtonState8 == HIGH && currentButtonState8 == LOW)
{
buttonState = !buttonState;
tableau[8] = 8;
tft.print(tableau[8]);
}
lastButtonState9 = currentButtonState9; // Afficher à l'écran, une seule fois, ce sur quoi le joueur a pressé
currentButtonState9 = digitalRead(pinButton39);
if (lastButtonState9 == HIGH && currentButtonState9 == LOW)
{
buttonState = !buttonState;
tableau[9] = 9;
tft.print(tableau[9]);
}
lastButtonStateEnter = currentButtonStateEnter; // Afficher à l'écran, une seule fois, ce sur quoi le joueur a pressé
currentButtonStateEnter = digitalRead(pinButtonEnter);
if (lastButtonStateEnter == HIGH && currentButtonStateEnter == LOW)
{
buttonState = !buttonState;
tft.print("ENTER"); // test
}
lastButtonStateDelete = currentButtonStateDelete; // Afficher à l'écran, une seule fois, ce sur quoi le joueur a pressé
currentButtonStateDelete = digitalRead(pinButtonDelete);
if (lastButtonStateDelete == HIGH && currentButtonStateDelete == LOW)
{
buttonState = !buttonState;
tft.print("DELETE"); // test
}
}
[/code]
Et au passage si certains ont des conseils concernant mon jeu, je suis preneur
Merci d'avance pour votre aide.