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 :
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 🙂
c'est le dernier cours de ce module?