Python microbit 2

Fermé
laloiyx115 - 28 févr. 2021 à 10:30
 laloiyx115 - 28 févr. 2021 à 14:08
Bonjour,

ceci est jeu sur lequel je travail mais j'ai un psouci, lorsque la derniere image s'affiche, on passe directement a la suivante "manche" et si j'avais deja appuyer sur le boutton A par exemple, ce n'est pas comptabilisé

from microbit import*
counter = 0
counterb = 0

button_a.get_presses() == 0
display.scroll("ete")  
display.show(str(1)) 
sleep(1000)
display.show(Image.TSHIRT)
sleep(2000)
display.show(str(2))
sleep(1000)
display.show(Image("00000:00000:99999:99099:00000"))
sleep(4000)
display.show(str(3)) 
sleep(2000)
display.show(Image("00000:00000:09990:55555:99999"))
sleep(4000)
while True:
  
  if button_a.was_pressed():
    if button_a.get_presses() == 3 :
      display.scroll("A")
      counter += 1
      display.scroll(str(counter))
    else:
      display.scroll("A")
      counter -= 1
      display.scroll(str(counter))
  if button_b.was_pressed():
    if button_b.get_presses() == 3 :
      display.scroll("b")
      counterb += 1
      display.scroll(str(counterb))
    else:
      display.scroll("B")
      counterb -= 1
      display.scroll(str(counterb))
  break
    
button_a.get_presses() == 0   
display.scroll("nature")  
display.show(str(1)) 
sleep(1000)
display.show(Image.BUTTERFLY)
sleep(2000)
display.show(str(2))
sleep(1000)
display.show(Image("00900:09390:0939:09390:00900"))
sleep(4000)
display.show(str(3)) 
sleep(2000)
display.show(Image.UMBRELLA)
sleep(4000)
while True:
  
  if button_a.was_pressed():
    if button_a.get_presses() == 3 :
      display.scroll("A")
      counter += 1
      display.scroll(str(counter))
    else:
      display.scroll("A")
      counter -= 1
      display.scroll(str(counter))
  if button_b.was_pressed():
    if button_b.get_presses() == 3 :
      display.scroll("b")
      counterb += 1
      display.scroll(str(counterb))
    else:
      display.scroll("B")
      counterb -= 1
      display.scroll(str(counterb)) 
  break
   
    
    
    
button_a.get_presses() == 0    
display.scroll("animaux")  
display.show(str(1)) 
sleep(1000)
display.show(Image.DUCK)
sleep(3000)
display.show(str(2))
sleep(1000)
display.show(Image.HAPPY)
sleep(3000)
display.show(str(3)) 
sleep(2000)
display.show(Image.RABBIT)
sleep(4000) 
while True:
  if button_a.was_pressed():
    if button_a.get_presses() == 2 :
      display.scroll("A")
      counter += 1
      display.scroll(str(counter))
    else:
      display.scroll("A")
      counter -= 1
      display.scroll(str(counter))
  if button_b.was_pressed():
    if button_b.get_presses() == 2 :
      display.scroll("b")
      counterb += 1
      display.scroll(str(counterb))
    else:
      display.scroll("B")
      counterb -= 1
      display.scroll(str(counterb)) 
  break
  
  
    
button_a.get_presses() == 0    
display.scroll("sport")  
display.show(str(1)) 
sleep(1000)
display.show(Image("09090:90009:90009:90009:09090"))
sleep(3000)
display.show(str(2))
sleep(1000)
display.show(Image.PACMAN)
sleep(4000)
display.show(str(3)) 
sleep(2000)
display.show(Image.ROLLERSKATE)
sleep(5000) 
while True:
  if button_a.was_pressed():
    if button_a.get_presses() == 2 :
      display.scroll("A")
      counter += 1
      display.scroll(str(counter))
    else:
      display.scroll("A")
      counter -= 1
      display.scroll(str(counter))
  if button_b.was_pressed():
    if button_b.get_presses() == 2 :
      display.scroll("b")
      counterb += 1
      display.scroll(str(counterb))
    else:
      display.scroll("B")
      counterb -= 1
      display.scroll(str(counterb))
  break
    
button_a.get_presses() == 0    
display.scroll("BEBE")  
display.show(str(1)) 
sleep(1000)
display.show(Image.TORTOISE)
sleep(3000)
display.show(str(2))
sleep(1000)
display.show(Image("00000:99999:90009:09090:09990"))
sleep(4000)
display.show(str(3)) 
sleep(2000)
display.show(Image("00300:09090:09090:09090:09990"))
sleep(5000) 
while True:
  if button_a.was_pressed():
    if button_a.get_presses() == 1 :
      display.scroll("A")
      counter += 1
      display.scroll(str(counter))
    else:
      display.scroll("A")
      counter -= 1
      display.scroll(str(counter))
  if button_b.was_pressed():
    if button_b.get_presses() == 1 :
      display.scroll("b")
      counterb += 1
      display.scroll(str(counterb))
    else:
      display.scroll("B")
      counterb -= 1
      display.scroll(str(counterb))
  break
A voir également:

4 réponses

_Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024 6 058
28 févr. 2021 à 11:36
Bonjour,
Dans tes boucles "while True" , vue l'indentation que tu as mise pour la commande "break", si on ne presse aucun bouton, on en ressort immédiatement sans rien faire : est-ce bien ce que tu voulais faire ?
Ritchi
0
oui, mais en mettant button_a.was pressed, est e que si on presse le bouton A avant le while true, avant la boucle ceci sera comptabilisé?
0
_Ritchi_ Messages postés 21210 Date d'inscription samedi 17 mars 2007 Statut Contributeur Dernière intervention 20 avril 2024 6 058
Modifié le 28 févr. 2021 à 12:44
Bonjour,

Il faudrait que tu approfondisses ta connaissance du fonctionnement de la fonction button_a.get_presses()
Chaque pression sur le bouton est détectée par la carte et est mémorisée.
A chaque fois que tu demandes le nombre d'appui sur le bouton A, le compteur est remis à zéro.
Démonstration:
Lance la commande
button_a.get_presses()
: elle te renvoie 0, si le bouton A n'a pas été pressé.
Appuie plusieurs fois sur le bouton A
Lance la commande
button_a.get_presses()
: tu verras le nombre de fois où tu as appuyé sur le bouton A.
Lance à nouveau la commande : elle te renvoie 0 !

Conclusions:
• si tu veux exploiter la valeur de cette commande, il convient de stocker cette information dans une variable pour son usage ultérieur.
• dans ton code, supprime toutes les lignes
button_a.get_presses() == 0
car elles sont inutiles

Ritchi
0
d'accord mais ducoup mes if button_a.was_pressed sont inutile?
0