benja32 Posté(e) 2 avril 2007 Share Posté(e) 2 avril 2007 (modifié) Cours n°1: Introduction à la programmation. Bonjour! Bienvenue dans ce premier cours de programmation lua, consacré aux bases de la programmation. Pour commencer vous devez savoir que vous n'avez pas besoin de programme spécial pour coder en lua! le bloc-note suffit largement (n'oublier surtout pas d'enregistrer votre code en .lua et non en .txt) mais il existe un environnement de développement propre au lua. LuaIDE est très facile d'utilisation, voici un screenshot du programme en question: Télécharger LuaIDE Bon maintenant que vous savez rendre votre code lisible par le lua player, je vais vous expliquer comment l'utiliser et je vais vous donner une astuce! Tout d'abord, je vais vous expliquer comment fonctionne lua player, télécharger la version 0.20 pour firmware 1.5 ICI Maintenant placer luaplayer et luaplayer% dans le dossier game de votre memory stick. Ensuite je vais vous montrer comment installer un script lua pour le lire par la suite avec luaplayer. Dans le dossier luaplayer, se trouve un dossier Applications, dedans se trouve aussi plusieurs jeux, programme en lua deja présents dans le lua player. admettons que vous avez créé un jeux de voiture qui s'appelle "r-rally" et vous voulez le lire avec le lua player, pour ca créez un dossier "r-rally" dans Applications et mettez votre script lua MAIS je rappelle que le script doit être nommé "index.lua". Voici la hiérarchie a respecter: PSP -->game -->luaplayer% -->luaplayer -->Applications -->r-rally -->index.lua Maintenant vous n'avez plus qu'à lancer luaplayer via le menu jeux de votre psp. Un peu plus haut je vous avais parlé d'une astuce, je vais vous expliquer en quoi elle consiste! je ne sais pas vous mais moi quand je fais un jeu en lua je trouve plus beau et plus facile de le lancer directement via le menu jeu de la memory stick que de passer par le luaplayer, oui me direz vous mais comment !? C'est facile tout d'abord télécharger CECI . Une fois téléchargé et extrait vous vous retrouvez avec jeulua et jeulua%, vous devez vous demander ce que c'est? Et bien je vais vous expliquer: l'eboot contenu dans jeulua est l'eboot du luaplayer 0.15, il va vous servir à lancer votre script lua sans passer par l'interface du luaplayer, mais comment? En fait c'est très simple, il suffit de placer votre script lua dans le dossier jeulua et de le nommer script.lua et non plus index.lua. Maintenant dès que vous le lancerez, vous arriverez directement sur votre jeux ou programme lua! Voila le premier cours est déjà fini!! Rendez-vous au numéro 2. Cours n°2: Affichage de texte à l'ecran. Bonjour bienvenue dans le second cours de XtreamLua, nous allons vous apprendre au fil des cours comment programmer en lua. Pour ce cours, nous allons commencer à afficher du texte sur l'écran, il faut tout d'abord définir une couleur dans une première variable. rouge = Color.new(255,0,0) Vous pouvez constater que j'ai donné le nom "rouge", j'aurais très bien pu l'appeler grenadine ou n'importe quel autre nom. Ensuite il y a "Color.new", n'oubliez surtout pas de mettre le "c" de "color" en majuscule sinon vous aurez un très beau message d'erreur. Enfin nous arrivons a la partie "(255,0,0)" ceci est le code de la couleur rouge, je vais vous montrer comment trouver les codes pour toute les couleurs que vous voulez. Ouvrez paint puis cliquez sur "Couleurs" ensuite sur "Modifier les couleurs", vous obtiendrez une fenêtre comme celle-ci : Cliquez sur "Définir les couleurs personnalisées >>" voici la fenêtre que vous obtiendrez : Sur cette fenêtre, j'ai sélectionné la couleur rouge comme dans mon exemple et vous pouvez constater en bas à droite qu'apparaît le code de ma couleur "rouge". Bon maintenant que vous savez définir une couleur on va passer au texte, on va définir une nouvelle variable que l'on va appeler "text" mais on aurait très bien pu lui donner le nom "intro". text = "Mon premier programme en lua par benja32" Voila, maintenant que les deux variables sont définies on va afficher le texte à l'écran. screen:print (150,100,text,rouge) Bon, maintenant je vais vous expliquer cette ligne de code, sûrement inconnue pour vous, "screen:print" est la fonction pour afficher du texte sur l'écran de la PSP. Ensuite vous devez vous demander ce que sont les deux chiffres, vous devez savoir que la PSP a un écran de 480pixel de longueur et 272pixel de hauteur, regardez cette image si vous ne comprenez toujours pas : Revenons en à nos moutons, 150 est l'endroit ou le texte va commencer sur la longueur de la PSP et 100 est l'endroit ou le texte va commencer sur la hauteur. Donc maintenant nous avons ce code : -- couleur (les commentaires sont repéré par deux tirets en début de ligne)rouge = Color.new (255,0,0)-- texttext = "Mon premier programme en lua par benja32" Maintenant, nous devons ajouter la fonction "screen.flip()". Cette fonction permet d'intervertir l'état des deux tampons, on parvient donc à faire apparaître le texte à l'écran mais cela ne dure qu'une fraction de seconde. Pour laisser le texte en continue nous devons introduire une boucle conditionnelle : "while true do" répète une action tant que la condition est remplie ( c'est-à-dire que tant que ‘while’ est respecté, l’opération s’effectuera) , ensuite on met screen.waitVblankStart() suivit de end pour dire que le code est terminé. => ‘end’ sert à ‘fermer’ le ‘while’ et screen.waitVblankStart() devra être présent a la fin de tous vos programmes. En général, essayez de ne pas le mettre plus d’une fois par code, vous risquez des erreurs ! Voici une image de ce que vous obtenez : Voici le code source complet : -- couleurrouge = Color.new (255,0,0)-- texttext = "Mon premier programme en lua par benja32"while true doscreen:print (150,100,text,rouge)screen.flip()screen.waitVblankStart()end Téléchargez le code source complet ici Cours n°3: Comment afficher des images. Bonjour, bienvenue dans ce troisième cours, aujourd'hui nous allons apprendre comment afficher une image, voir plusieurs, sur l'écran de la PSP puis rajouter du texte par dessus. Tout d'abords vos photo doivent être au format .png et ne pas dépasser 480X272 (la taille de l'ecran PSP). Ensuite on va affichr un background (fond d'ecran) puis rajouter du texte dessus. Bon pour commencer on va mettre une variable "bleu": plus besoin d'explications, vous connaissez maintenant. bleu = Color.new (0,0,255) Après on va aller chercher le background background = Image.load ("background.png") Image.load permet de charger l'image, n'oublier pas de mettre le "i" de image en majuscule. Je suppose que vous vous demandez où placer l'image, vous devez la mettre à côté de votre script.lua Si vous voulez faire un dossier images pour mettre toutes les images de votre homebrew vous devrez charger l'image comme ça: background = Image.load ("images/background.png") Bon maintenant que l'on a fait ça, on va mettre la fonction pour permettre d'afficher l'image sur l'écran, pour cela on va utiliser screen:blit donc ce qui va donner: screen:blit (0,0,background) Les coordonnées 0,0 sont utilisées pour mettre un background. Resumé du code : bleu = Color.new (0,0,255)background = Image.load ("images/background.png")screen:blit (0,0,background) Voici ce qui va apparaitre à l'ecran (la PSP est l'image que j'ai utilisé) : Maintenant ont va afficher du texte a l'écran donc sur l'image, je vais vous donner un petit truc mais qui est super important si vous voulez voir vos texte à l'ecran! prenons 2 exemples: screen:print ( 100, 00," La psp est une console portable génial", rouge)screen:blit (0,0,background) et screen:blit (0,0,background)screen:print ( 100, 00," La psp est une console portable génial", rouge) Je crois que vous avez compris que l'exemple numero deux est le bon car si vous faites l'exemple numero 1, le texte sera afficher avant l'image donc l'image "recouvrira" le texte et il ne sera pas perçu a l'écran. Continuons notre code, nous allons afficher comme texte ceci: text = "XtreamLua est un site proposant"text2 = "plusieurs cours de programmation en lua"screen:print ( 100,100, text, bleu)screen:print ( 100, 120, text2, bleu) Voila je crois que vous avez compris le système, voici le code source complet et un screenshot du résultat final. code source : -- couleurbleu = Color.new (0,0,255)-- imagebackground = Image.load ("images/background.png")--texttext = "XtreamLua est un site proposant"text2 = "plusieurs cours de programmation en lua"--boucle conditionnellewhile true doscreen:blit (0,0,background)screen:print ( 100,100, text, bleu)screen:print ( 100, 120, text2, bleu)screen.flip()screen.waitVblankStart()end Télécharger le code source complet ici Cours n°4: Reconnaissance des touches. Bienvenue dans ce cours numero 4. Aujourd'hui nous allons créer la reconnaissance des touches de votre psp. Pour commencer notre programme, nous allons définir quelques morceaux de textes : --textcroix = "La touche enfoncée est la croix"rond = "La touche enfoncée est le rond"carré = "La touche enfoncée est le carré"triangle = "La touche enfoncée est le triangle"select = "La touche enfoncée est select"start = "La touche enfoncée est start"L = "La touche enfoncée est L"R = "La touche enfoncée est R"gauche = "La touche enfoncée est gauche"droite = "La touche enfoncée est droite"haut = "La touche enfoncée est haut"bas = "La touche enfoncée est bas" Nous allons définir une couleur, la rouge par exemple : --couleurrouge = (255,0,0) Ouvrons la boule principale, plaçons l'instruction screen:clear(), elle va effacer l'écran en permanance, ensuite, créeons une variable (pad) qui contiendra la fonction Controls.read(), cette fonction est utilisée pour stocker l'écoute des boutons dans la variable pad : --boucle principalewhile true doscreen:clear()pad = Controls.read() Voici le code complet, analysez le, je vous l'explique en fin de citation : --textcroix = "La touche enfoncée est la croix"rond = "La touche enfoncée est le rond"carre = "La touche enfoncée est le carre"triangle = "La touche enfoncée est le triangle"select = "La touche enfoncée est select"start = "La touche enfoncée est start"L = "La touche enfoncée est L"R = "La touche enfoncée est R"gauche = "La touche enfoncée est gauche"droite = "La touche enfoncée est droite"haut = "La touche enfoncée est haut"bas = "La touche enfoncée est bas"--couleurrouge = Color.new(255,0,0)--boucle principalewhile true doscreen:clear()pad = Controls.read()if pad:cross() thenscreen:print(10,10,croix,rouge)endif pad:circle() thenscreen:print(10,20,rond,rouge)endif pad:square() thenscreen:print(10,30,carre,rouge)endif pad:triangle() thenscreen:print(10,40,triangle,rouge)endif pad:l() thenscreen:print(10,50,L,rouge)endif pad:r() thenscreen:print(10,60,R,rouge)endif pad:select() thenscreen:print(10,70,select,rouge)endif pad:start() thenscreen:print(10,80,start,rouge)endif pad:up() thenscreen:print(10,90,haut,rouge)endif pad:down() thenscreen:print(10,100,bas,rouge)endif pad:left() thenscreen:print(10,110,gauche,rouge)endif pad:right() thenscreen:print(10,120,droite,rouge)endscreen.waitVblankStart()screen.flip()end Bon voyons un petit peu tout ça! Prenons l'exemple de la touche "start", ce qui donne le code suivant: if pad:start() thenscreen:print(10,10,start,rouge)end On a utilisé la boucle conditionnelle if-then-end. Je vais vous traduire cette ligne de code en language litteral : "Si le bouton start est enfoncé, alors affichez aux coordonnées 10, 10 le message "La touche enfoncée est start" en rouge. Voila, je suppose que vous avez compris le principe de reconnaissance de touche sur la psp un screenshot du programme en action: Téléchargez le code source complet ici Cours n°5: Votre premier jeu LUA. Bonjour, bienvenu dans ce cours numero 5 Pour bien compendre ce que je vais vous apprendre, vous devez avoir bien lu les 4 cours précédents! Aujourd'hui je vais vous apprendre les bases pour créer un "mario like", et oui je suis sur que vous avez toujours rêver de programmer un jeux et bien vous pourrez le faire après ce cours Tout d'abord, chargeons les images dont on aura besoin pour notre jeux. --imagesbackground = Image.load("background.png")marioleft = Image.load("marioleft.png")marioright = Image.load("marioright.png") "Background" étant le fond d'écran, "marioleft" est l'image de mario regardant vers la gauche et "marioright" celui regardant vers la droite. Pour le moment rien de bien compliqué, je rappelle une fois de plus que vous pouvez changer le nom de l'image et de la variable. Maintenant nous allons créer deux variables donnant la position de départ de notre mario, "positionY" étant la largeur de la psp et "positionX" la longeur : --position de departpositionY = 210positionX = 30 Ensuite nous devons définir les touches de notre psp, nous allons utilisé la même méthode que dans le cours n°4 mais bien évidement, avec quelques nouveautés : if pad:left() thenstatut = "left"x = x+3endif pad:right() thenstatut = "right"x = x-3endif statut == "left" then screen:blit(positionX, positionY, marioleft)endif statut == "right" then screen:blit(positionX, positionY, marioright)end Je vais vous expliquer les lignes de codes que je viens d'ajouter, la premiere vous la connaissez, mais vous devez vous demander pourquoi j'ai mis x = x+3 et x = x-3 !? Et bien c'est très simple. Tout d'abord nous devons donner la valeur zero a x donc: x = 0. Quand on actionne la touche gauche ou droite, mario ce promènera sur notre écran et avancera de 3 pixel, plus on augmente les pixels, plus mario ira vite!. Maintenant je vais vous expliquer en quoi consiste les statuts. En premier on va définir les deux statuts que l'on a besoin, "if statut == "left" then screen:blit(positionX, positionY, marioleft)". Fe traduis cette ligne de code en language litteral, ce qui donne "si le statut est égal à gauche, alors affiche la positonX,positionY et marioleft". On fais exactement la même chose pour le statut de droite, vous avez maintenant compris en quoi consiste la création des statuts. Biensur, il existe d'autre méthode mais je trouve que celle ci est la plus facile et c'est celle que j'ai apprise à mes début. Je vais vous montrer ce qui se passe sans l'utilisation de statut : if pad:left() thenscreen:blit(positionX, positionY, marioright)x = x+3end Quand ont appuira sur la touche de gauche, mario ira vers la gauche mais quand ont lachera toutes les touches, le personne disparaitra. Si vous essayer votre jeu maintenant, votre mario pourra ce balader de droite à gauche et de gauche à droite évidemment, mais nous avons plusieurs problèmes : - quand mario arrive aux extrémités de l'ecran, il disparait tout simplement de notre psp. - il n'y a pas de fond d'écran et le décord ne défile pas, un peu dommage pour un mario Tachons de résoudre le premier problème, nous allons ajouter quelques lignes de codes : if pad:left() thenstatut = "left"x = x+3if positionX>10 thenpositionX=positionX-1endendif pad:right() thenstatut = "right"x = x-3if positionX<462 thenpositionX=positionX+1endend Prenons les lignes rajoutées à la fonction left : if positionX>10 thenpositionX=positionX-1 Cela signifie que notre mario sera bloqué à 10 pixel du bord de l'écran gauche, si par exemple vous voulez le bloquer à 3 pixel, remplacer le 10 par un 3. Maintenant résolvons le deuxieme probleme! Voici le code a rajouter : screen:blit(x, 0, background)screen:blit(x+480, 0, background)screen:blit(x-480, 0, background)if x == -480 or x == 480 then x = 0 end Ces 4 lignes signifie que il y aura un défilement du background de 480 vers la gauche et de 480 vers la droite selon le déplacement éffectuer. Voici une image du jeu finit : Téléchargez le cours complet (code source + images) ici Voilà c'est ici que s'achève la première raclée de cours d'autre viendrons s'ajouter par la suite, n'hésité pas à poser des questions si vous en avez a++ benja32 Modifié 2 avril 2007 par benja32 Lien vers le commentaire Partager sur d'autres sites More sharing options...
clem95 Posté(e) 20 mai 2007 Share Posté(e) 20 mai 2007 Salut, je te remerci pour ton super topic moi qui cherchais des explications pour créer du .lua Lien vers le commentaire Partager sur d'autres sites More sharing options...
catr Posté(e) 20 mai 2007 Share Posté(e) 20 mai 2007 génial, je lis ca avec attention des que je peux, merci beaucoup! Lien vers le commentaire Partager sur d'autres sites More sharing options...
Thony Posté(e) 20 mai 2007 Share Posté(e) 20 mai 2007 je viens de lire un peu c vraiment pas mal du tout, bravo Lien vers le commentaire Partager sur d'autres sites More sharing options...
Pinkfish Posté(e) 23 novembre 2007 Share Posté(e) 23 novembre 2007 Ma question est relativement simple : Pour laisser le texte en continue nous devons introduire une boucle conditionnelle :"while true do" répète une action tant que la condition est remplie ( c'est-à-dire que tant que ‘while’ est respecté, l’opération s’effectuera) Tu dis que while introduit une boucle contitionnelle. Mais où est la condition dans le "while true do" ? En C++ par exemple on a while (variable != 5) { où "(variable != 5)" est la condition à remplire.. tant que "variable" n'égale pas 5, la boucle s'effectue. En pseudo code "[while] [true] [do]" ca donnerait "[Tant que] [est vrai] [faire]"... mais il manque pas quelque chose du genre "[Tant que] [CECI] [est vrai] [faire]"? Merci! Lien vers le commentaire Partager sur d'autres sites More sharing options...
Gradew Posté(e) 23 novembre 2007 Share Posté(e) 23 novembre 2007 Salut, ici, la condition que tu cherches se trouve dans le mot-clé "true"... condition qui sera toujours vraie. Pour le compilateur, écrire la chose suivante: while(true) revient à écrire ceci: while(true==true) Il s'agit donc dans ce cas d'une boucle infinie, étant donné que "true" sera toujours égal à.... "true" ^_^ Ceci s'applique également au C/C++, ainsi qu'à bon nombre d'autres langages. C'est plus clair pour toi? ++ gradew Lien vers le commentaire Partager sur d'autres sites More sharing options...
lincruste Posté(e) 15 décembre 2007 Share Posté(e) 15 décembre 2007 Bonsoir, Merci pour ce tutoriel. Une question: que signifie "inverser les deux tampons" avec la fonction screen.flip() ? Et surtout à quoi cela sert-il? Lien vers le commentaire Partager sur d'autres sites More sharing options...
alexmas Posté(e) 27 janvier 2008 Share Posté(e) 27 janvier 2008 moi j'ai une question mario en general il saute partout pour le faire sauter il faut faire if pad:up() then P1y = P1y + 70 then P1y = P1y - 70 end c'est sa?? et aussi mario reste au dessu des brique la il passe a traver comment on fait merci de me repondre alex, Lien vers le commentaire Partager sur d'autres sites More sharing options...
lincruste Posté(e) 5 février 2008 Share Posté(e) 5 février 2008 Hello, c'est désert, hein!!! Lien vers le commentaire Partager sur d'autres sites More sharing options...
houlahop Posté(e) 8 juin 2009 Share Posté(e) 8 juin 2009 moi j'ai une questionmario en general il saute partout pour le faire sauter il faut faire if pad:up() then P1y = P1y + 70 then P1y = P1y - 70 end c'est sa?? et aussi mario reste au dessu des brique la il passe a traver salut alex J ai trouver se qu il te faut moi aussi je suis debutant et J ai lu un cour sur les'collision' tu te demande se que sais Je te lais le decouvrire par toi meme tu vera ces exactement Dont tu as besoin. m est des blocs de colision ou se trouve les carre et un pour le perso Voici l adresse a visiter:www.xtreamlua.com/wikido...php?idzcours_n_10_les_collision comment on fait merci de me repondre alex, Lien vers le commentaire Partager sur d'autres sites More sharing options...
Grizou0 Posté(e) 3 novembre 2009 Share Posté(e) 3 novembre 2009 Bonjour, Est-il possible d'utiliser des librairies style open_Glide, gl_glide de visual C++ avec Lua? Ces librairies sont à la base des jeux en 3D ( Tomb raider, wolf ...) Y a t'il des fonctions similaires? Je possède une PSP Go, mais je suis novice dans ce monde psp. La PSP Go utilise t'elle ces fichier Lua? Merci Lien vers le commentaire Partager sur d'autres sites More sharing options...
Ac_K Posté(e) 6 novembre 2009 Share Posté(e) 6 novembre 2009 Est-il possible d'utiliser des librairies style open_Glide, gl_glide de visual C++ avec Lua? Non Y a t'il des fonctions similaires? Peut être, mais elle ne seront pas aussi "compliqué" d'utilisation, enfin je doute qu'elles existent! Je possède une PSP Go, mais je suis novice dans ce monde psp.La PSP Go utilise t'elle ces fichier Lua? Non elle ne l'est utilise pas, il faut un interpréteur, mais de toute manière tu a une PSPGo donc tu ne pourra rien en tiré du coté "underground"! Lien vers le commentaire Partager sur d'autres sites More sharing options...
darkmaster60 Posté(e) 10 novembre 2009 Share Posté(e) 10 novembre 2009 Raaalala, j'ai envie de m'y remettre.. J'avais fait un petit utilitaire en Lua qui permettait de tester le fonctionnement des touches et du joystick (PadTester). J'me suis fait "chippé" l'idée x) Lien vers le commentaire Partager sur d'autres sites More sharing options...
ADELTT Posté(e) 10 décembre 2009 Share Posté(e) 10 décembre 2009 bonjour moi j'ai une question Je met dans le dossier "jeulua" "script.lua", "l'image" qui va avec le script il y a deja "EBBOT" comme le dit le tuto. Mais quand je vais sur la psp dans jeu "memory stick" il y a "XtreamLua" je clique X mai ça me met "Démarrage du jeu impossible.Les données sont endommagées." Pouvez vous m'aider . Lien vers le commentaire Partager sur d'autres sites More sharing options...
neutrOpik Posté(e) 3 janvier 2010 Share Posté(e) 3 janvier 2010 bonjour moi j'ai une question Je met dans le dossier "jeulua" "script.lua", "l'image" qui va avec le script il y a deja "EBBOT" comme le dit le tuto. Mais quand je vais sur la psp dans jeu "memory stick" il y a "XtreamLua" je clique X mai ça me met "Démarrage du jeu impossible.Les données sont endommagées." Pouvez vous m'aider . Vieux tuto, il est probablement fait pour kernel 1.50. Jette un oeil ici http://www.xtreamlua.com/wiki/doku.php A+ Lien vers le commentaire Partager sur d'autres sites More sharing options...
HaNuMaN Posté(e) 20 décembre 2013 Share Posté(e) 20 décembre 2013 Bonjour tout le monde, Tout d'abord merci a l'auteur pour ce tuto Je remonte le sujet car j'aurais quelques questions (aucun rapport avec la programmation psp je sais ...) : Pour faire simple je compte programmer en lua des applications android / iphone avec corona SDK ( j'ai pas trouvé de section plus adapter) -Je cherche un editeur de texte avec autocompletion ( j'ai pu voir lua glider IDE à 50$ mais je ne sais pas ce qu'il vaut et si ça vaut le coup d'investir, ou alors en open source Scite mais tellement compliqué à installer lol et pas de package qui ne sont pas outdaté ) -Je voudrais aussi savoir les logiciel qui existait pour faciliter la mise en scène des animations -Pour finir les forums existant concernés par cette programmation mis a part corona labs forum Je sais que c'est flou, mais si un programmeur passe par là, pourrait-il m'éclairer un peu ? Merci d'avance Lien vers le commentaire Partager sur d'autres sites More sharing options...
zouzzz Posté(e) 20 décembre 2013 Share Posté(e) 20 décembre 2013 Salut, En ce qui concerne la programmation sur PSP en général et PSP lua en particulier, le site-forum Xtreamlua est bien pratique. Personnellement, il m'a bien aidé. J'écris sur Notepad++ pour lua, c'est bien mais pas top je l'avoue. Pour le lua android je ne savais pas que c'était possible mais peut-être que sur le site donné ci-dessus pourra plus t'aiguiller. Lien vers le commentaire Partager sur d'autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant