Programmer en Lua - Débutant - Cours n°5 : Les touches de la PSP

Vous visitez actuellement un de nos cours pour programmer en Lua. Pour voir la liste des cours disponibles sur le site, cliquez ici.

Nous allons apprendre dans ce cours à maitriser les touches de la PSP, ce qui va nous permettre de créer vos propres programmes de manière guidé (bientôt dans un Travail Pratique). Nous n’en sommes pas encore là, mais si vous persévérez, je suis sur que vous allez y arriver sans problème, en suivant bien le cours que nous allons aborder ;)

Tout d’abord, il va falloir stocker du texte, on pourrait créer des variables mais nous allons réutiliser le cours d’avant pour pouvoir réaliser notre programme. Nous allons donc utiliser des tables qui contiendront des informations par rapport à la touche pour ensuite les afficher sur l’écran de la PSP. Par exemple, je reste appuyé sur la touche croix, donc ma PSP affichera que j’appuie sur la touche croix.

Donc on crée une table contenant toutes les informations nécessaires…

table = {}--Création d'une table regroupant toutes les infos suivantes
table[1] = "Appuie sur la touche Croix"
table[2] = "Appuie sur la touche Triangle"
table[3] = "Appuie sur la touche Carré"
table[4] = "Appuie sur la touche Rond"
table[5] = "Appuie sur la touche Haut"
table[6] = "Appuie sur la touche Droite"
table[7] = "Appuie sur la touche Gauche"
table[8] = "Appuie sur la touche Bas"
table[9] = "Appuie sur la touche R"
table[10] = "Appuie sur la touche L"
table[11] = "Appuie sur la touche START"
table[12] = "Appuie sur la touche SELECT"

 Nous n’aborderons pas le stick analogique qui sera abordé dans un cours pour réaliser un menu avec curseur.

Très bien maintenant nous pouvons mettre notre boucle while true do.

while true do

 Et nous allons rajouter ensuite la fonction suivante qui va permettre de lire les boutons qui sont actionnés dans le programme à chaque début de la boucle.

buttons.read()--Lecture des touches actionnées

Maintenant nous allons utiliser pour la première fois une condition. Nous voulons afficher tel texte pour tel touche de la PSP, donc si je reste appuyer sur la touche croix alors j’affiche le texte « Appuie sur la touche Croix ».

Ce qui donnera en Lua :

if buttons.held.cross then--Si je reste appuyé sur la touche croix alors
 screen.print(5,10,table[1])--J'affiche le texte adéquat
end--Fin de la condition

Puis on fait la même chose pour toute les touches de la PSP.

if buttons.held.triangle then--Si je reste appuyé sur la touche triangle alors
  screen.print(5,20,table[2])--J'affiche le texte
end--Fin de la condition

if buttons.held.square then--Si je reste appuyé sur la touche carré alors
  screen.print(5,30,table[3])--J'affiche le texte
end--Fin de la condition

if buttons.held.circle then--Si je reste appuyé sur la touche rond alors
  screen.print(5,40,table[4])--J'affiche le texte
end--Fin de la condition

if buttons.held.up then--Si je reste appuyé sur la touche haut alors
  screen.print(5,50,table[5])--J'affiche le texte
end--Fin de la condition

if buttons.held.right then--Si je reste appuyé sur la touche droite alors
  screen.print(5,60,table[6])--J'affiche le texte
end--Fin de la condition

if buttons.held.left then--Si je reste appuyé sur la touche gauche alors
  screen.print(5,70,table[7])--J'affiche le texte
end--Fin de la condition

if buttons.held.down then--Si je reste appuyé sur la touche bas alors
  screen.print(5,80,table[8])--J'affiche le texte
end--Fin de la condition

if buttons.held.r then--Si je reste appuyé sur la touche R alors
  screen.print(5,90,table[9])--J'affiche le texte
end--Fin de la condition

if buttons.held.l then--Si je reste appuyé sur la touche L alors
  screen.print(5,100,table[10])--J'affiche le texte
end--Fin de la condition

if buttons.held.start then--Si je reste appuyé sur la touche Start alors
  screen.print(5,110,table[11])--J'affiche le texte
end--Fin de la condition

if buttons.held.select then--Si je reste appuyé sur la touche Sélect alors
  screen.print(5,120,table[12])--J'affiche le texte
end--Fin de la condition

Voilà maintenant il ne reste plus qu’à rafraichir l’écran à chaque fin de tour de notre boucle et fermer la boucle while true do.

screen.flip()--Rafraichissement de l'écran

end--Fin de la boucle

 Voilà normalement vous devez obtenir ceci :

 screen-cours-5-débutant

Voilà le code en entier:

table = {}--Création d'une table regroupant toutes les infos suivantes
table[1] = "Appuie sur la touche Croix"
table[2] = "Appuie sur la touche Triangle"
table[3] = "Appuie sur la touche Carré"
table[4] = "Appuie sur la touche Rond"
table[5] = "Appuie sur la touche Haut"
table[6] = "Appuie sur la touche Droite"
table[7] = "Appuie sur la touche Gauche"
table[8] = "Appuie sur la touche Bas"
table[9] = "Appuie sur la touche R"
table[10] = "Appuie sur la touche L"
table[11] = "Appuie sur la touche START"
table[12] = "Appuie sur la touche SELECT"

while true do--Début de la boucle
	
	buttons.read()--Lecture des touches actionnées
	
	if buttons.held.cross then--Si je reste appuyé sur la touche croix alors
		screen.print(5,10,table[1])--J'affiche le texte adéquat
	end--Fin de la condition
	
	if buttons.held.triangle then--Si je reste appuyé sur la touche triangle alors
	  screen.print(5,20,table[2])--J'affiche le texte
	end--Fin de la condition
	
	if buttons.held.square then--Si je reste appuyé sur la touche carré alors
	  screen.print(5,30,table[3])--J'affiche le texte
	end--Fin de la condition
	
	if buttons.held.circle then--Si je reste appuyé sur la touche rond alors
	  screen.print(5,40,table[4])--J'affiche le texte
	end--Fin de la condition
	
	if buttons.held.up then--Si je reste appuyé sur la touche haut alors
	  screen.print(5,50,table[5])--J'affiche le texte
	end--Fin de la condition
	
	if buttons.held.right then--Si je reste appuyé sur la touche droite alors
	  screen.print(5,60,table[6])--J'affiche le texte
	end--Fin de la condition
	
	if buttons.held.left then--Si je reste appuyé sur la touche gauche alors
	  screen.print(5,70,table[7])--J'affiche le texte
	end--Fin de la condition
	
	if buttons.held.down then--Si je reste appuyé sur la touche bas alors
	  screen.print(5,80,table[8])--J'affiche le texte
	end--Fin de la condition
	
	if buttons.held.r then--Si je reste appuyé sur la touche R alors
	  screen.print(5,90,table[9])--J'affiche le texte
	end--Fin de la condition
	
	if buttons.held.l then--Si je reste appuyé sur la touche L alors
	  screen.print(5,100,table[10])--J'affiche le texte
	end--Fin de la condition
	
	if buttons.held.start then--Si je reste appuyé sur la touche Start alors
	  screen.print(5,110,table[11])--J'affiche le texte
	end--Fin de la condition
	
	if buttons.held.select then--Si je reste appuyé sur la touche Sélect alors
	  screen.print(5,120,table[12])--J'affiche le texte
	end--Fin de la condition
	
	screen.flip()--Rafraichie l'écran
	
end--Fin de la boucle while
		

Maintenant que vous savez utiliser les touches de votre PSP, vous allez pouvoir commencer sérieusement à penser à des projets mais pour cela, il faudra encore apprendre de nouvelle chose 🙂