5 years ago
Bonjour,
Je cherche à réaliser une sorte de "cheat code" pour une création.
Par exemple : bouton "A" appuyé puis pendant ce temps, "UP, DOWN, UP , B" ... par exemple pour à la fin afficher un message particulier si la séquence est bonne.
Quelqu'un aurait il une idée de comment implémenter ça dans la loop svp ?
J'ai fait quelques essais qui se sont avérés infructueux :(
Merci d'avance :)
NEW 5 years ago
Pour une séquence, cela implique de stocker la succession de touches appuyées.
Il te faut un tableau ou une liste où tu notes les touches appuyées au fur et à mesure, ainsi qu'un contrôle de la séquence existante pour activer ton message.
Peut être que tu peux partager ce que tu as essayé pour que l'on puisse t'aiguiller. C'est assez simple avec https://gist.github.com/ par exemple
NEW 5 years ago
Bonjour merci pour ta réponse :)
En fait je pense que je m'y prends mal, j'ai tenté quelquechose comme ça :
https://hastebin.com/ezipowanej.coffeescript
Le soucis c'est qu'avec une séquence plus longue, je n'ai pas le temps d'appuyer sur les boutons avant que la loop se termine :/
NEW 5 years ago
oui, c'est normal. il faudrait être capable d'enchainer des touches en quelques ms ;)
Il faut créer une liste ou un tableau et stocker les touches appuyées.
NEW 5 years ago
Voici le bout de code que j'ai implémenté dans ma boucle loop pour pouvoir choisir le niveau dans "Square Nose Color", si on appuie dans l'ordre sur: haut, bas, gauche, droite, à l'écran titre. J'ai quatre niveaux différents, numérotés de 0 à 3. Le chiffre est visible à l'écran. J'ai aussi trois variables en debut de code:
int level = 0;
int cheatCodeNumber = 0;
bool selectLevel = false;
Le niveau par défaut est le numéro zéro. Le nombre "cheatCodeNumber" augmente de un à chaque nouvelle bonne touche de la combinaison. Il retombe à zéro si un autre bouton est appuyé. Arrivé à 4, le "selectLevel" devient vrai. C'est à dire que mon numéro de niveau peut maintenant varier si j'appuie sur droite ou gauche.
// cheat code to select the level: UP, DOWN, LEFT, RIGHT
if(selectLevel == false) {
if(gb.buttons.pressed(BUTTON_UP)) {
if(cheatCodeNumber == 0) {
cheatCodeNumber = 1;
} else {
cheatCodeNumber = 0;
}
}
if(gb.buttons.pressed(BUTTON_DOWN)) {
if(cheatCodeNumber == 1) {
cheatCodeNumber = 2;
} else {
cheatCodeNumber = 0;
}
}
if(gb.buttons.pressed(BUTTON_LEFT)) {
if(cheatCodeNumber == 2) {
cheatCodeNumber = 3;
} else {
cheatCodeNumber = 0;
}
}
if(gb.buttons.pressed(BUTTON_RIGHT)) {
if(cheatCodeNumber == 3) {
selectLevel = true;
cheatCodeNumber = 0;
level += 1;
} else {
cheatCodeNumber = 0;
}
}
} else {
// level selection
if((gb.buttons.pressed(BUTTON_RIGHT)) && (level < 3)) {
level += 1;
}
if((gb.buttons.pressed(BUTTON_LEFT)) && (level > 0)) {
level -= 1;
}
}