Kidule Dé/Jeu d'adresse sonore
Ce jeu d'adresse sonore doit faire un petit chenillard qui fait un petit buips à chaque changement de Led.
Si on presse sur le Poussoir alors qu'on est sur la Led6, on a gagné et toutes les Leds s'allument et on doit entendre un grand biiiiip (montant). Si on a pressé alors que la Led6 n'était pas allumée alors on a perdu et toutes les Leds s'éteignent et on entend un son buuuup (descendant).
Pour débuter, on va partir du petit chenillard
#include "hardwareDe.h"
byte Combinaison [] =
{//b 76543210
0b11110111, // 0
0b11101111, // 1
0b11011111, // 2
0b10111111, // 3 <--- indexCible
0b11111011, // 4
0b11111101, // 5
0b11111110, // 6 = indexMax
};
long compteur=0;
byte index=0;
void GererAvanceChenillard()
{
compteur++;
if (compteur==50000){
index++;
compteur=0;
}
if (index>6){
index=0;
}
Leds = Combinaison[index];
}
void loop()
{
if (Poussoir==Presse){
if (index==3){
Leds = 0b00000000;
}
else {
Leds = 0b11111111;
}
}
else{
GererAvanceChenillard();
}
}
Première chose à faire et d'y intégrer la fonction GérerSon() que l’on a fait précédemment
int noBoucleSon = 0;
int periodeSon = 100;
int incrementPeriodeSon = 1;
long LongueurBip = 40000;
void GererSon()
{
noBoucleSon++;
if (LongueurBip > 0) {
if (noBoucleSon > periodeSon) {
noBoucleSon = 0;
periodeSon += incrementPeriodeSon;
Buzzer = ! Buzzer;
}
LongueurBip--;
}
else {
Buzzer = 1;
noBoucleSon = 0;
}
}
void FaireSonAvance()
{
periodeSon = 100;
incrementPeriodeSon = 1;
LongueurBip = 10000;
}
On a déjà écrit la fonction FaireSonAvance()
Exercice 1
[modifier | modifier le wikicode]À chaque fois que tu avances, fait le son FaireSonAvance()
#include "hardwareDe.h"
int noBoucleSon = 0;
int periodeSon = 100;
int incrementPeriodeSon = 1;
long LongueurBip = 40000;
void GererSon()
{
noBoucleSon++;
if (LongueurBip > 0) {
if (noBoucleSon > periodeSon) {
noBoucleSon = 0;
periodeSon += incrementPeriodeSon;
Buzzer = ! Buzzer;
}
LongueurBip--;
}
else {
Buzzer = 1;
noBoucleSon = 0;
}
}
void FaireSonAvance()
{
periodeSon = 100;
incrementPeriodeSon = 1;
LongueurBip = 10000;
}
byte Combinaison [] =
{//b 76543210
0b11110111, // 0
0b11101111, // 1
0b11011111, // 2
0b10111111, // 3 <--- indexCible
0b11111011, // 4
0b11111101, // 5
0b11111110, // 6 = indexMax
};
long compteur=0;
byte index=0;
void GererAvanceChenillard()
{
compteur++;
if (compteur==50000){
index++;
compteur=0;
FaireSonAvance(); //<<<<<<<<<<<<
}
if (index>6){
index=0;
}
Leds = Combinaison[index];
}
void loop()
{
if (Poussoir==Presse){
if (index==3){
Leds = 0b00000000;
}
else {
Leds = 0b11111111;
}
}
else{
GererAvanceChenillard();
}
GererSon(); //<<<<<<<<<<<<
}
Exercice 2
[modifier | modifier le wikicode]Ajouter le son pour Gagné et Perdu: faire 2 fonctions FaireSonGagne() et FaireSonPerdu() en recopiant FaireSonAvance et en modifiant légèrement
Attention: il faut aussi que l’on ne calcule qu'une seule fois si on a gagné ou perdu, sinon, le son sera toujours recommencé (on peut utiliser le truc de DejaPresse)