<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PSdev.fr, Site de tutoriels de programmation sur les différentes consoles Playstation</title>
	<atom:link href="http://www.psdev.fr/feed" rel="self" type="application/rss+xml" />
	<link>http://www.psdev.fr</link>
	<description>Communauté de Développeurs Playstation</description>
	<lastBuildDate>Tue, 28 Jun 2011 16:23:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Tutoriels PSP &#8211; Afficher une image en Lua avec LuaPlayer HM</title>
		<link>http://www.psdev.fr/tutoriels-psp-afficher-une-image-en-lua-avec-luaplayer-hm</link>
		<comments>http://www.psdev.fr/tutoriels-psp-afficher-une-image-en-lua-avec-luaplayer-hm#comments</comments>
		<pubDate>Tue, 28 Jun 2011 16:21:10 +0000</pubDate>
		<dc:creator>Nicovideo</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tutoriels PSP]]></category>
		<category><![CDATA[afficher image]]></category>
		<category><![CDATA[débutant]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[lua player HM]]></category>
		<category><![CDATA[scren:blit]]></category>

		<guid isPermaLink="false">http://www.psdev.fr/?p=304</guid>
		<description><![CDATA[Vous savez maintenant écrire un texte sur l&#8217;écran de votre PSP avec le LuaPlayer HM, nous allons passer maintenant à l&#8217;affichage d&#8217;une image ! Vous allez voir c&#8217;est très simple, si vous avez compris comment afficher du texte, vous comprendrez rapidement comment afficher une image. Dans n&#8217;importe quel programme Lua que vous ferez, vous serez [...]]]></description>
			<content:encoded><![CDATA[<p>Vous savez maintenant écrire un texte sur l&#8217;écran de votre PSP avec le LuaPlayer HM, nous allons passer maintenant à l&#8217;affichage d&#8217;une image ! Vous allez voir c&#8217;est très simple, si vous avez compris comment afficher du texte, vous comprendrez rapidement comment afficher une image.</p>
<p><span id="more-304"></span></p>
<p>Dans n&#8217;importe quel programme Lua que vous ferez, vous serez amener à y incorporer des images pour relever graphiquement le niveau de votre jeu. Dans ces parties de tutoriel nous aborderons uniquement le 2D afin de ne pas tout mélanger mais vous verrez pas la suite que l&#8217;on peut faire du 3D avec le Lua sur PSP !</p>
<p>Stop blablater, go programmer !</p>
<p>Reprenons le code de base de notre ancien programme :</p>
<div class="codecolorer-container lua railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="lua codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Blanc <span style="color: #66cc66;">=</span> Color<span style="color: #66cc66;">.</span>new <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span><br />
Texte <span style="color: #66cc66;">=</span> <span style="color: #ff6666;">&quot;Bienvenue sur PSdev.fr&quot;</span><br />
<br />
<span style="color: #aa9900; font-weight: bold;">while</span> <span style="color: #aa9900;">true</span> <span style="color: #aa9900; font-weight: bold;">do</span><br />
screen<span style="color: #66cc66;">:</span><span style="color: #0000aa;">print</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span>Texte<span style="color: #66cc66;">,</span>Blanc<span style="color: #66cc66;">&#41;</span><br />
screen<span style="color: #66cc66;">.</span>flip<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><br />
screen<span style="color: #66cc66;">.</span>waitVblankStart<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #aa9900; font-weight: bold;">end</span></div></div>
<p>Nous allons bien évidemment supprimer les lignes de code sur l&#8217;affichage du texte</p>
<p>Pour notre tutoriel, nous allons utiliser cette image :</p>
<p><a href="http://www.psdev.fr/tutoriels-psp-afficher-une-image-avec-la-libge/image" rel="attachment wp-att-164"><img src="http://www.psdev.fr/wp-content/uploads/2011/06/image.png" alt="" title="image" width="480" height="272" class="aligncenter size-full wp-image-164" /></a></p>
<p>Tout d&#8217;abord, nous allons charger notre image dans le programme :</p>
<div class="codecolorer-container lua railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="lua codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">image <span style="color: #66cc66;">=</span> Image<span style="color: #66cc66;">.</span>load<span style="color: #66cc66;">&#40;</span><span style="color: #ff6666;">&quot;image.png&quot;</span><span style="color: #66cc66;">&#41;</span></div></div>
<p>Quand vous devez charger une image, en Lua vous ne pouvez charger que du .jpg ou .png. Vous devez renseigner le chemin de destination de votre image entre les &laquo;&nbsp;&nbsp;&raquo;</p>
<p>Une fois notre image chargée, nous allons créer notre boucle infinie :</p>
<div class="codecolorer-container lua railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="lua codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #aa9900; font-weight: bold;">while</span> <span style="color: #aa9900;">true</span> <span style="color: #aa9900; font-weight: bold;">do</span><br />
<br />
<span style="color: #808080; font-style: italic;">-- code à mettre dans la boucle</span><br />
<br />
<span style="color: #aa9900; font-weight: bold;">end</span></div></div>
<p>Dans cette boucle infinie nous allons tout d&#8217;abord effacer l&#8217;écran :</p>
<div class="codecolorer-container lua railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="lua codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">screen<span style="color: #66cc66;">:</span>clear<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span></div></div>
<p>Ensuite, nous allons afficher notre image grâce à la fonction screen:blit()</p>
<div class="codecolorer-container lua railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="lua codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">screen<span style="color: #66cc66;">:</span>blit<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span>image<span style="color: #66cc66;">&#41;</span></div></div>
<p>Cette fonction dispose de 3 arguments. En effet, comme pour les texte, les deux premiers servent à positionner l&#8217;image sur l&#8217;écran. Ici j&#8217;ai une image de 480*272 (la taille de l&#8217;écran de la PSP) donc je positionne mon image aux coordonnées 0,0 pour que mon image prenne tout l&#8217;écran. <strong>Faîtes attention, vous ne pouvez charger des images supérieur à 512*512px, le LuaPlayer n&#8217;aime pas trop ça..</strong></p>
<p>Enfin, nous finissons notre boucle avec ces deux fonctions :</p>
<div class="codecolorer-container lua railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="lua codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">screen<span style="color: #66cc66;">.</span>flip<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><br />
screen<span style="color: #66cc66;">.</span>waitVblankStart<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span></div></div>
<p>Je vous montre le code complet maintenant :</p>
<div class="codecolorer-container lua railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="lua codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">image <span style="color: #66cc66;">=</span> Image<span style="color: #66cc66;">.</span>load<span style="color: #66cc66;">&#40;</span><span style="color: #ff6666;">&quot;image.png&quot;</span><span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp;<br />
<span style="color: #aa9900; font-weight: bold;">while</span> <span style="color: #aa9900;">true</span> <span style="color: #aa9900; font-weight: bold;">do</span><br />
screen<span style="color: #66cc66;">:</span>clear<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><br />
screen<span style="color: #66cc66;">:</span>blit<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">,</span>image<span style="color: #66cc66;">&#41;</span><br />
&nbsp; &nbsp; &nbsp;<br />
screen<span style="color: #66cc66;">.</span>waitVblankStart<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><br />
screen<span style="color: #66cc66;">.</span>flip<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #aa9900; font-weight: bold;">end</span></div></div>
<p>Dans ce cas là, comme expliqué plus haut,pour que le script marche, il faut que votre image soit dans le même dossier que votre script.lua. Sinon vous pouvez créer un dossier &laquo;&nbsp;images&nbsp;&raquo; à côté de votre script.lua et y mettre vos images. Dans ce cas là, dans votre programme, vous mettrez :</p>
<div class="codecolorer-container lua railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="lua codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">image <span style="color: #66cc66;">=</span> Image<span style="color: #66cc66;">.</span>load<span style="color: #66cc66;">&#40;</span><span style="color: #ff6666;">&quot;images/image.png&quot;</span><span style="color: #66cc66;">&#41;</span></div></div>
<p>Vous savez maintenant comment afficher une image sur l&#8217;écran de votre PSP !</p>
<p>&nbsp; </p>
<p><a href="http://forum.psdev.fr/showthread.php?tid=50">Commentez ce tutoriel ICI >></a></p>
<p>&nbsp; </p>
]]></content:encoded>
			<wfw:commentRss>http://www.psdev.fr/tutoriels-psp-afficher-une-image-en-lua-avec-luaplayer-hm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutoriel PSP &#8211; Votre premier programme en Lua</title>
		<link>http://www.psdev.fr/tutoriel-psp-votre-premier-programme-en-lua</link>
		<comments>http://www.psdev.fr/tutoriel-psp-votre-premier-programme-en-lua#comments</comments>
		<pubDate>Tue, 28 Jun 2011 13:31:00 +0000</pubDate>
		<dc:creator>Nicovideo</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tutoriels PSP]]></category>
		<category><![CDATA[apprendre]]></category>
		<category><![CDATA[débutant]]></category>
		<category><![CDATA[helloworld]]></category>
		<category><![CDATA[lua player HM]]></category>
		<category><![CDATA[screen]]></category>

		<guid isPermaLink="false">http://www.psdev.fr/?p=274</guid>
		<description><![CDATA[Vous voilà lancé dans votre premier programme Lua et vous verrez qu&#8217;à la fin de ce tutoriel vous aurez réussi à afficher quelque chose sur votre PSP ! Nous allons voir dans ce tutoriel comment structurer notre code et comment afficher à l&#8217;écran de la PSP notre premier texte ! Tout d&#8217;abord, téléchargez le LuaPlayer [...]]]></description>
			<content:encoded><![CDATA[<p>Vous voilà lancé dans votre premier programme Lua et vous verrez qu&#8217;à la fin de ce tutoriel vous aurez réussi à afficher quelque chose sur votre PSP ! Nous allons voir dans ce tutoriel comment structurer notre code et comment afficher à l&#8217;écran de la PSP notre premier texte !</p>
<p><span id="more-274"></span></p>
<p>Tout d&#8217;abord, téléchargez le <a href="http://www.psdev.fr/ressources/PSP/LuaPlayerHM8.1.zip">LuaPlayer HM v8.1</a> et créez un dossier &laquo;&nbsp;MyGame&nbsp;&raquo; dans le dossier GAME de votre PSP. Décompressez le LuaPlayer HM et placez l&#8217;<strong>EBOOT.PBP</strong> dans le dossier &laquo;&nbsp;MyGame&nbsp;&raquo; que vous venez de créer.</p>
<p>Vous êtes prêt à programmer maintenant !</p>
<p>Ouvrez Notepad++ et n&#8217;oubliez pas de mettre la syntaxe Lua.</p>
<p>Nous allons maintenant écrire du code. Tout d&#8217;abord, il faut définir une couleur à notre texte qui sera écrit sur l&#8217;écran de la PSP.</p>
<div class="codecolorer-container lua railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="lua codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Blanc <span style="color: #66cc66;">=</span> Color<span style="color: #66cc66;">.</span>new<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span></div></div>
<p>Dans ce code &laquo;&nbsp;Blanc&nbsp;&raquo; prend la couleur 255,255,255. Quésako ces nombres ?<br />
Regardez c&#8217;est facile :</p>
<p><a rel="attachment wp-att-284" href="http://www.psdev.fr/tutoriel-psp-votre-premier-programme-en-lua/couleur"><img class="aligncenter size-full wp-image-284" title="couleur" src="http://www.psdev.fr/wp-content/uploads/2011/06/couleur.jpg" alt="" width="461" height="334" /></a></p>
<p>Le Lua marche avec les couleurs RGB donc il vous suffit juste de copier les valeurs de droite ci dessus.</p>
<p>Maintenant que notre couleur est défini, nous allons pouvoir définir un texte :</p>
<div class="codecolorer-container lua railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="lua codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Texte <span style="color: #66cc66;">=</span> <span style="color: #ff6666;">&quot;Bienvenue sur PSdev.fr !&quot;</span></div></div>
<p>Ne pas oublier les <strong>&laquo;&nbsp;&nbsp;&raquo;</strong> et bien évidemment vous pouvez mettre le nom que vous voulez pour la variable &laquo;&nbsp;Texte&nbsp;&raquo; idem plus haut pour la variable &laquo;&nbsp;Blanc&nbsp;&raquo;</p>
<p>Nous pouvons maintenant créer notre boucle principale. En effet, dans un programme, il est nécessaire d’exécuter du code dans une boucle infinie afin de répéter l&#8217;action à l&#8217;infini.</p>
<p><strong>Exemple :</strong> Si nous voulons afficher du texte à l’écran il faudra le mettre dans une boucle infinie sinon il apparaitra pendant un très court instant et on le le verra plus.</p>
<p>La boucle infinie est défini comme ceci en lua :</p>
<div class="codecolorer-container lua railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="lua codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #aa9900; font-weight: bold;">while</span> <span style="color: #aa9900;">true</span> <span style="color: #aa9900; font-weight: bold;">do</span><br />
<br />
<span style="color: #808080; font-style: italic;">-- code à mettre dans la boucle</span><br />
<br />
<span style="color: #aa9900; font-weight: bold;">end</span></div></div>
<p>Mettre &#8212; dans un code en Lua permet d&#8217;ajouter des commentaires à un code. Cela vous permettra de&#8217;y voir plus clair dans votre code donc n’hésitez pas à en mettre</p>
<p>Nous allons maintenant voir la fonction qui permet d&#8217;afficher notre texte à l&#8217;écran :</p>
<div class="codecolorer-container lua railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="lua codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">screen<span style="color: #66cc66;">:</span><span style="color: #0000aa;">print</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span>Texte<span style="color: #66cc66;">,</span>Blanc<span style="color: #66cc66;">&#41;</span></div></div>
<p>screen:blint est la fonction qui permet d&#8217;afficher du texte à l&#8217;écran, elle contient plusieurs arguments. Tout d&#8217;abord, &laquo;&nbsp;10,10&#8243; sont les coordonnées en x et y de l’affichage de notre texte. Il faut savoir que notre PSP est comme ceci :</p>
<p><a rel="attachment wp-att-165" href="http://www.psdev.fr/tutoriels-psp-afficher-une-image-avec-la-libge/taille"><img class="aligncenter size-full wp-image-165" title="taille" src="http://www.psdev.fr/wp-content/uploads/2011/06/taille.png" alt="" width="448" height="235" /></a></p>
<p>Ce qui veut dire qu&#8217;ici mon texte sera a peu près positionner en haut à gauche de mon écran.<br />
Ensuite, nous avons la variable &laquo;&nbsp;Texte&nbsp;&raquo;, celle ci va donc afficher ce qui se trouve dans la variable Texte qu&#8217;on a défini plus haut. Et enfin &laquo;&nbsp;Blanc&nbsp;&raquo; qui est la couleur de notre texte que l&#8217;on a défini plus haut également.</p>
<p>Nous concluons par la fonction screen.flip() qui sert a mettre à jour, l&#8217;écran. (c&#8217;est obligatoire)<br />
On utilisera également screen.waitVblankStart() qui est utilisée pour éviter les scintillements.</p>
<div class="codecolorer-container lua railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="lua codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">screen<span style="color: #66cc66;">.</span>flip<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><br />
screen<span style="color: #66cc66;">.</span>waitVblankStart<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span></div></div>
<p>Voici pour résumé le code complet :</p>
<div class="codecolorer-container lua railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="lua codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Blanc <span style="color: #66cc66;">=</span> Color<span style="color: #66cc66;">.</span>new <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">255</span><span style="color: #66cc66;">&#41;</span><br />
Texte <span style="color: #66cc66;">=</span> <span style="color: #ff6666;">&quot;Bienvenue sur PSdev.fr&quot;</span><br />
<br />
<span style="color: #aa9900; font-weight: bold;">while</span> <span style="color: #aa9900;">true</span> <span style="color: #aa9900; font-weight: bold;">do</span><br />
screen<span style="color: #66cc66;">:</span><span style="color: #0000aa;">print</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span>Texte<span style="color: #66cc66;">,</span>Blanc<span style="color: #66cc66;">&#41;</span><br />
screen<span style="color: #66cc66;">.</span>flip<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><br />
screen<span style="color: #66cc66;">.</span>waitVblankStart<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><br />
<span style="color: #aa9900; font-weight: bold;">end</span></div></div>
<p>Voilà enregistrer ce code en script.lua et placez le dans le dossier &laquo;&nbsp;MyGame&nbsp;&raquo; que nous avons créé au début de ce tutoriel.</p>
<p>Voilà ce que vous devriez avoir sur votre PSP :</p>
<p><a href="http://www.psdev.fr/tutoriel-psp-votre-premier-programme-en-lua/psdev" rel="attachment wp-att-295"><img src="http://www.psdev.fr/wp-content/uploads/2011/06/psdev.jpg" alt="" title="psdev" width="480" height="272" class="aligncenter size-full wp-image-295" /></a></p>
<p>&nbsp;</p>
<p><a href="http://forum.psdev.fr/showthread.php?tid=49">Commentez ce tutoriel ICI >></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.psdev.fr/tutoriel-psp-votre-premier-programme-en-lua/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutoriel PSP &#8211; Introduction au Lua</title>
		<link>http://www.psdev.fr/tutoriel-psp-introduction-au-lua</link>
		<comments>http://www.psdev.fr/tutoriel-psp-introduction-au-lua#comments</comments>
		<pubDate>Tue, 28 Jun 2011 08:24:43 +0000</pubDate>
		<dc:creator>Nicovideo</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tutoriels PSP]]></category>
		<category><![CDATA[helloworld]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[lua player]]></category>

		<guid isPermaLink="false">http://www.psdev.fr/?p=258</guid>
		<description><![CDATA[Vous n&#8217;avez jamais programmé et vous voulez vous lancer dans l&#8217;aventure du développement PSP ? Le Lua est fait pour vous ! En effet, ce langage de programmation est parfaitement adapté au débutant voulant apprendre à programmer. Vous allez voir, il ne faut pas être un grand génie pour faire votre premier programme sur PSP [...]]]></description>
			<content:encoded><![CDATA[<p>Vous n&#8217;avez jamais programmé et vous voulez vous lancer dans l&#8217;aventure du développement PSP ? Le Lua est fait pour vous ! En effet, ce langage de programmation est parfaitement adapté au débutant voulant apprendre à programmer.</p>
<p>Vous allez voir, il ne faut pas être un grand génie pour faire votre premier programme sur PSP mais il faudra vous accrocher et persévérer si vous voulez obtenir un jeu propre est sympathique !</p>
<p><span id="more-258"></span></p>
<p>Tout d&#8217;abord, voici une petit citation by <strong>Wikipedia</strong> pour en savoir plus sur le Lua :</p>
<blockquote><p>Lua est un langage de script libre, réflexif et impératif.</p>
<p>Créé en 1993, il est conçu de manière à pouvoir être embarqué au sein d&#8217;autres applications afin d&#8217;étendre celles-ci, comme en témoigne la compacité de son interpréteur (95 à 185 Ko pour la version 5.0.2, selon le compilateur utilisé et le système cible). Lua (qui signifie lune en portugais) a été développé par Luiz Henrique de Figueiredo, Roberto Ierusalimschy et Waldemar Celes, membres du groupe de recherche TeCGraf, de l&#8217;université de Rio de Janeiro au Brésil.</p>
<p>Lua est écrit en langage C ANSI strict, et de ce fait est compilable sur une grande variété de systèmes. Il est souvent utilisé dans des systèmes embarqués où sa compacité est très appréciée. Il profite de la compatibilité que possède le C avec un grand nombre de langages pour s&#8217;intégrer facilement dans la plupart des projets.</p>
<p>Il est particulièrement apprécié pour le développement de jeux vidéo comme pour l&#8217;interface du célèbre jeu World of Warcraft de Blizzard Entertainment, Garry&#8217;s Mod ou encore Far Cry de Crytek Studios, SimCity 4 et prochainement dans Natural Selection 2 de Unknown Worlds Entertainment qui a entre autres développé Decoda, un IDE pour Lua. Lua a été porté dernièrement sur la console portable de Sony, la PSP. Une version Playstation 2 est en cours de portage. Ce langage est également utilisé pour la programmation de jeux de Nintendo DS et pour la programmation Roblox.</p></blockquote>
<p>En effet, le Lua n&#8217;est pas un langage de programmation propre à la PSP</p>
<p>Le Lua utilise un interpréteur, il a besoin de passer par un logiciel couramment appelées &laquo;&nbsp;Lua Player&nbsp;&raquo;.<br />
Il en existe plusieurs, les plus connus sont le <strong>Lua Player HM</strong>, et <strong>Euphoria</strong>.<br />
Il existe un très bon Lua Player nommé &laquo;&nbsp;<strong>XtreamLua Player</strong>&laquo;&nbsp;. Il utilise  la Glib2D qui est une libraire graphique qui est à la base une lib en C.  Très pratique pour coder un Jeu.</p>
<p>Dans les prochains tutoriels vous aurez la possibilité d&#8217;apprendre avec différents Lua Player.</p>
<p><strong><span style="text-decoration: underline;">Les outils requis :</span></strong></p>
<p>Je vous conseille d&#8217;utiliser <a href="http://notepad-plus.sourceforge.net/fr/site.htm" target="_blank">Notepad ++.</a><br />
Il vous faut à présent un Lua Player Windows.<br />
Malheureusement, il sont pas très performant , le plus apte est celui là: <a href="http://www.luaplayer.org/?page_id=38" target="_blank">http://www.luaplayer.org/?page_id=38</a> (For windows)<br />
A présent, créez un Fichier avec le nom de votre choix avec une extension en .lua<br />
Ouvrez Notepad et commencez à coder.<br />
Attention ! Avant de commencer, n&#8217;oubliez pas de choisir la syntaxe Lua dans Notepad <img title="Wink" src="http://forum.psdev.fr/images/smilies/wink.gif" border="0" alt="Wink" /><br />
Une fois cette démarche accomplie, glissez votre .lua sur le lua player.exe et le tour est joué !</p>
<p>&nbsp;</p>
<p>N&#8217;attendez plus et découvrez le prochain tutoriel sur le Helloworld (votre premier programme) !</p>
<p>&nbsp;</p>
<p><a href="http://forum.psdev.fr/showthread.php?tid=47">Commentez ce tutoriel ICI &gt;&gt;</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.psdev.fr/tutoriel-psp-introduction-au-lua/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutoriels PSP &#8211; Lire un MP3 avec la LibGE</title>
		<link>http://www.psdev.fr/tutoriels-psp-lire-un-mp3-avec-la-libge</link>
		<comments>http://www.psdev.fr/tutoriels-psp-lire-un-mp3-avec-la-libge#comments</comments>
		<pubDate>Mon, 27 Jun 2011 08:12:33 +0000</pubDate>
		<dc:creator>Nicovideo</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tutoriels PSP]]></category>
		<category><![CDATA[ge_music]]></category>
		<category><![CDATA[libge]]></category>
		<category><![CDATA[lire mp3]]></category>
		<category><![CDATA[programmer sur psp]]></category>

		<guid isPermaLink="false">http://www.psdev.fr/?p=222</guid>
		<description><![CDATA[Aujourd&#8217;hui nous allons vous apprendre à lire une musique au format MP3 avec la LibGE. Dans ce tutoriel nous traiterons uniquement les MP3 et non les sons au format .wav que nous traiterons dans un prochain tutoriel. Vous allez voir, c&#8217;est très simple ! Nous vous recommandons de lire (ou relire) les tutoriels suivants afin [...]]]></description>
			<content:encoded><![CDATA[<p>Aujourd&#8217;hui nous allons vous apprendre à lire une musique au format MP3 avec la LibGE. Dans ce tutoriel nous traiterons uniquement les MP3 et non les sons au format .wav que nous traiterons dans un prochain tutoriel. Vous allez voir, c&#8217;est très simple !</p>
<p>Nous vous recommandons de lire (ou relire) les tutoriels suivants afin que vous ayez de bonnes bases pour la suite des tutoriels.</p>
<p><span id="more-222"></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Les tutoriels à savoir :</strong></p>
<ul><a href="../tutoriels-psp-installation-de-la-libge-helloword" target="_blank"> </a>&nbsp;</p>
<li><a href="../tutoriels-psp-installation-de-la-libge-helloword" target="_blank">Avoir installer la LibGE </a></li>
<li><a href="http://www.psdev.fr/tutoriels-psp-ecrire-du-texte-avec-la-libge" target="_blank">Savoir écrire avec la LibGE</a></li>
<li><a href="http://www.psdev.fr/tutoriels-psp-utiliser-les-touches-de-la-psp-avec-la-libge" target="_blank">Savoir utiliser les touches</a></li>
</ul>
<p>Bien, si vous savez tous cela, il ne vous reste plus que les fonctions à  connaitre pour vous lancer dans de beau Homebrew avec de beau fond  sonore !</p>
<p>Les fonctions à connaitre sont :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ge_Music<span style="color: #339933;">*</span> geLoadMusic<span style="color: #009900;">&#40;</span><span style="color: #993333;">const</span> <span style="color: #993333;">char</span><span style="color: #339933;">*</span> fichier<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #993333;">void</span> geMusicPlay<span style="color: #009900;">&#40;</span>ge_Music<span style="color: #339933;">*</span> musique<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #993333;">void</span> geMusicPause<span style="color: #009900;">&#40;</span>ge_Music<span style="color: #339933;">*</span> musique<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #993333;">void</span> geMusicStop<span style="color: #009900;">&#40;</span>ge_Music<span style="color: #339933;">*</span> musique<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Pas de panique, je vous explique.</p>
<p>La fonction <span style="color: #ff6600;">ge_Music* geLoadMusic</span> sert à &laquo;&nbsp;Appeler&nbsp;&raquo; la musique.<br />
<strong>Par exemple:</strong></p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ge_Music<span style="color: #339933;">*</span> geLoadMusic <span style="color: #339933;">=</span> MusicTest<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Musique/Music.mp3&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>On pourrait traduire ce code par : &laquo;&nbsp;Je charge le fichier Music.mp3 situé dans le dossier &laquo;&nbsp;Musique&nbsp;&raquo; de ma PSP&nbsp;&raquo;</p>
<p>Ensuite, la fonction <span style="color: #ff6600;">void geMusicPlay(ge_Music* musique);</span> sert à &laquo;&nbsp;Lancer&nbsp;&raquo; la musique.<br />
<strong>Par exemple:</strong></p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><br />
geMusicPlay<span style="color: #009900;">&#40;</span>MusicTest<span style="color: #009900;">&#41;</span></div></div>
<p>On pourrait traduire ce code par : &laquo;&nbsp;Si on appuie sur X, la musique débute.&nbsp;&raquo;</p>
<p>La fonction <span style="color: #ff6600;">void geMusicPause(ge_Music* musique);</span> sert à mettre &laquo;&nbsp;Pause ou Reprendre&nbsp;&raquo; la musique.<br />
<strong>Par exemple:</strong></p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_SQUARE<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_SQUARE<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><br />
geMusicPause<span style="color: #009900;">&#40;</span>MusicTest<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>On pourrait traduire ce code par : &laquo;&nbsp;Si on appuie sur [] la musique se met en pause. ou Si on appuie sur [] la musique se remet à jouer.&nbsp;&raquo;</p>
<p>Et enfin, la fonction <span style="color: #ff6600;">void geMusicStop(ge_Music* musique);</span> sert à &nbsp;&raquo; Arrêter&nbsp;&raquo; la musique.<br />
<strong>Par exemple:<br />
</strong></p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CIRCLE<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CIRCLE<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><br />
geMusicStop<span style="color: #009900;">&#40;</span>MusicTest<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>On pourrait traduire ce code par : &laquo;&nbsp;Si on appuie sur O la musique s&#8217;arrête.&nbsp;&raquo;</p>
<p>Voila, normalement les personnes ayant bien lut les tutoriels précédents savent utiliser ses fonctions. Mais je vais mettre un code d&#8217;exemple commenté :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">#include &lt;libge/libge.h&gt;</span><br />
<br />
<span style="color: #666666; font-style: italic;">///////////////////////////////////////////////////////////////////</span><br />
<span style="color: #666666; font-style: italic;">//Tutoriel de PSdev.fr - Communauté de développeurs Playstation///</span><br />
<span style="color: #666666; font-style: italic;">/////////////////////////////////////////////////////////////////</span><br />
<br />
GE_PSP_INFO<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Tutoriel Musique&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1024</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; geInit<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; ge_Keys <span style="color: #339933;">*</span>pad <span style="color: #339933;">=</span> geCreateKeys<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #339933;">*</span>oldpad <span style="color: #339933;">=</span> geCreateKeys<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; ge_Music <span style="color: #339933;">*</span>MusicTest <span style="color: #339933;">=</span> geLoadMusic<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Music.mp3&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Chargement de la musique</span><br />
&nbsp; &nbsp; ge_Font <span style="color: #339933;">*</span>intraFont <span style="color: #339933;">=</span> geLoadIntraFont<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;flash0:/font/ltn0.pgf&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Chargement de la police (police intrafont ici)</span><br />
&nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geClearScreen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">memcpy</span><span style="color: #009900;">&#40;</span>oldpad<span style="color: #339933;">,</span> pad<span style="color: #339933;">,</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span>pad<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geReadKeys<span style="color: #009900;">&#40;</span>pad<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; geIntraFontPrintScreen<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> &nbsp;<span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> intraFont<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;Appuyez sur X pour démarrer la musique&quot;</span><span style="color: #339933;">,</span> RGB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">255</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">255</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">255</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geIntraFontPrintScreen<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">12</span><span style="color: #339933;">,</span> intraFont<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;Appuyez sur O pour Stopper la musique&quot;</span><span style="color: #339933;">,</span> RGB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">255</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">255</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">255</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geIntraFontPrintScreen<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">24</span><span style="color: #339933;">,</span> intraFont<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;Appuyez sur /\ pour mettre en pause la musique&quot;</span><span style="color: #339933;">,</span> RGB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">255</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">255</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">255</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geIntraFontPrintScreen<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">36</span><span style="color: #339933;">,</span> intraFont<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;Appuyez sur [] pour redémarrer la musique&quot;</span><span style="color: #339933;">,</span> RGB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">255</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">255</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">255</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #666666; font-style: italic;">//SI on appuit sur X, la musique debute</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; geMusicPlay<span style="color: #009900;">&#40;</span>MusicTest<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_SQUARE<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_SQUARE<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">//SI on appuit sur [] la musique se met en pause</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; geMusicPause<span style="color: #009900;">&#40;</span>MusicTest<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_TRIANGLE<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_TRIANGLE<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">//SI on appuit sur /\ la musique redémarrre</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; geMusicPause<span style="color: #009900;">&#40;</span>MusicTest<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CIRCLE<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CIRCLE<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">//SI on appuie sur O la musique s'arrête</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; geMusicStop<span style="color: #009900;">&#40;</span>MusicTest<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; geSwapBuffers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; sceKernelExitGame<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Le Makefile :</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">TARGET = LibGE<br />
OBJS = main.o<br />
&nbsp;<br />
CFLAGS = -O2 -G0 -Wall -DPSPFW3xx<br />
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti<br />
ASFLAGS = $(CFLAGS)<br />
&nbsp;<br />
LIBS = -lge -lfreetype -lpspmp3 -lm<br />
&nbsp;<br />
EXTRA_TARGETS = EBOOT.PBP<br />
PSP_EBOOT_TITLE = Les Musiques PSdev<br />
&nbsp;<br />
PSPSDK=$(shell psp-config --pspsdk-path)<br />
include $(PSPSDK)/lib/build.mak</div></div>
<p>&nbsp;</p>
<p><a href="http://forum.psdev.fr/showthread.php?tid=41">Commentez ce tutoriel ICI >></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.psdev.fr/tutoriels-psp-lire-un-mp3-avec-la-libge/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutoriels PSP &#8211;  Créer un menu simple avec la LibGE</title>
		<link>http://www.psdev.fr/tutoriels-psp-creer-un-menu-simple-avec-la-libge</link>
		<comments>http://www.psdev.fr/tutoriels-psp-creer-un-menu-simple-avec-la-libge#comments</comments>
		<pubDate>Fri, 24 Jun 2011 11:55:12 +0000</pubDate>
		<dc:creator>Nicovideo</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tutoriels PSP]]></category>
		<category><![CDATA[creer un menu]]></category>
		<category><![CDATA[libge]]></category>
		<category><![CDATA[pad]]></category>
		<category><![CDATA[programmer sur psp]]></category>

		<guid isPermaLink="false">http://www.psdev.fr/?p=188</guid>
		<description><![CDATA[Continuons nos tutoriels sur l&#8217;apprentissage à la programmation en C sur PSP, avec un tutoriel qui va vous apprendre ici à créer un menu tout simple. N’hésitez pas à aller sur le forum dans la section &#171;&#160;Tutoriels des membres&#160;&#187; pour voir comment on peut créer un menu d&#8217;une autre façon. Prêt ? Partez ! &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Continuons nos tutoriels sur l&#8217;apprentissage à la programmation en C sur PSP, avec un tutoriel qui va vous apprendre ici à créer un menu tout simple. N’hésitez pas à aller sur le forum dans la section &laquo;&nbsp;Tutoriels des membres&nbsp;&raquo; pour voir comment on peut créer un menu d&#8217;une autre façon.</p>
<p>Prêt ? Partez !</p>
<p><span id="more-188"></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Tout d&#8217;abord nous aurons besoin de quelques images pour notre tutoriel.</p>
<p>Un fond :</p>
<p><a href="http://www.psdev.fr/tutoriels-psp-creer-un-menu-simple-avec-la-libge/fond" rel="attachment wp-att-193"><img src="http://www.psdev.fr/wp-content/uploads/2011/06/fond.png" alt="" title="fond" width="480" height="272" class="aligncenter size-full wp-image-193" /></a></p>
<p>Et des curseurs droit et gauche :</p>
<p><a href="http://www.psdev.fr/tutoriels-psp-creer-un-menu-simple-avec-la-libge/fleche_g" rel="attachment wp-att-194"><img src="http://www.psdev.fr/wp-content/uploads/2011/06/fleche_g.png" alt="" title="fleche_g" width="20" height="20" class="aligncenter size-full wp-image-194" /></a><a href="http://www.psdev.fr/tutoriels-psp-creer-un-menu-simple-avec-la-libge/fleche_d" rel="attachment wp-att-195"><img src="http://www.psdev.fr/wp-content/uploads/2011/06/fleche_d.png" alt="" title="fleche_d" width="20" height="20" class="aligncenter size-full wp-image-195" /></a></p>
<p>Voilà nous avons tout ce dont nous avons besoin graphiquement pour réaliser notre menu. Maintenant, place à la programmation <img src='http://www.psdev.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Tout d&#8217;abord, les includes et les infos de la PSP (comme d&#8217;habitude) :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">#include &lt;stdio.h&gt;</span><br />
<span style="color: #339933;">#include &lt;stdlib.h&gt;</span><br />
<span style="color: #339933;">#include &lt;libge/libge.h&gt;</span><br />
<br />
PSP_MODULE_INFO<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Menu_PSdev&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
PSP_HEAP_SIZE_KB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">512</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Nous allons ouvrir notre fonction principale et initialiser la LibGE :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>argv<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; geInit<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Maintenant, on charge nos trois images :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ge_Image<span style="color: #339933;">*</span> back <span style="color: #339933;">=</span> geLoadImage<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;fond.png&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
ge_Image<span style="color: #339933;">*</span> curs1 <span style="color: #339933;">=</span> geLoadImage<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;fleche_g.png&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
ge_Image<span style="color: #339933;">*</span> curs2 <span style="color: #339933;">=</span> geLoadImage<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;fleche_d.png&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Nous déclarons deux entiers : selecteur et maxselecteur que nous initialisons respectivement à 1 et à 3. Puis on déclare deux variable pour l&#8217;utilisation des touches de la PSP, pad et oldpad.</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333;">int</span> selecteur <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> maxselecteur <span style="color: #339933;">=</span> <span style="color: #0000dd;">3</span><span style="color: #339933;">;</span><br />
ge_Keys <span style="color: #339933;">*</span>pad <span style="color: #339933;">=</span> geCreateKeys<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #339933;">*</span>oldpad <span style="color: #339933;">=</span> geCreateKeys<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>On peut maintenant ouvrir notre boucle infini :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span></div></div>
<p>On appelle nos fonctions et on affiche notre back:</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">geClearScreen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
geReadKeys<span style="color: #009900;">&#40;</span>pad<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//Pour activer le pad</span><br />
geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> back<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Le principe est simple, nous allons dire à notre programme, si j&#8217;appuie sur la flèche du bas je descend les curseurs vers le bas, si j&#8217;appuie sur la flèche de haut je monte les curseurs. Si je suis tout en bas et que j&#8217;appuie sur la flèche de bas, les curseurs monte tout en haut et vis versa.</p>
<p>Voici ce que ça donne en programmation avec la LibGE :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_DOWN<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_DOWN<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; selecteur<span style="color: #339933;">++;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_UP<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_UP<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; selecteur<span style="color: #339933;">--;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>selecteur <span style="color: #339933;">&gt;</span> maxselecteur<span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; selecteur <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>selecteur <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; selecteur <span style="color: #339933;">=</span> maxselecteur<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Voici la structure, selon la touche haut ou bas, on incrémente ou on décrémente la variable selecteur. Puis si on depasse la valeur de la variable maxselecteur qui est de 3, alors on remonte en haut.</p>
<p>Nous allons afficher les curseurs :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>selecteur <span style="color: #339933;">==</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">185</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">130</span><span style="color: #339933;">,</span> curs1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">275</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">130</span><span style="color: #339933;">,</span> curs2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>selecteur <span style="color: #339933;">==</span> <span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">170</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">160</span><span style="color: #339933;">,</span> curs1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">285</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">160</span><span style="color: #339933;">,</span> curs2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>selecteur <span style="color: #339933;">==</span> <span style="color: #0000dd;">3</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">185</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">189</span><span style="color: #339933;">,</span> curs1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">275</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">189</span><span style="color: #339933;">,</span> curs2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>La position des curseurs dépend bien évidement à la position des écritures sur l&#8217;image.</p>
<p>Pour finir, on met nos conditions par rapport à la position de nos sélecteurs : si slecteur == 1 alors on fait ça, si == 2 on fait ça, etc..<br />
Ici j&#8217;ai mis l&#8217;action de quitter le jeu quand on appuie sur croix et que selecteur == 3</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> selecteur <span style="color: #339933;">==</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp;<br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> selecteur <span style="color: #339933;">==</span> <span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> selecteur <span style="color: #339933;">==</span> <span style="color: #0000dd;">3</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; sceKernelExitGame<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Pour avoir un curseur qui marche à l&#8217;appuie de la touche et non pas qui s&#8217;incrémente quand on appuie sur le bouton (c&#8217;est français ce que je dis ?), on utilise l&#8217;autre variable déclarée plus haut.<br />
En gros l&#8217;oldpad sert à dire : Si on appuie sur croix, et qu&#8217;on appuyait pas sur croix au tour précèdent alors ..</p>
<p>On appelle donc notre fonction puis celle du buffer et on ferme la boucle infini :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">geReadKeys<span style="color: #009900;">&#40;</span>oldpad<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
geSwapBuffers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>On ferme notre boucle principale :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">sceKernelExitGame<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Voilà notre programme est terminé et nous avons un beau menu !</p>
<p><a href="http://www.psdev.fr/tutoriels-psp-creer-un-menu-simple-avec-la-libge/finn" rel="attachment wp-att-214"><img src="http://www.psdev.fr/wp-content/uploads/2011/06/finn.png" alt="" title="finn" width="480" height="272" class="aligncenter size-full wp-image-214" /></a></p>
<p>Parce que je suis gentil, je vous donne le programme entier :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">#include &lt;stdio.h&gt;</span><br />
<span style="color: #339933;">#include &lt;stdlib.h&gt;</span><br />
<span style="color: #339933;">#include &lt;libge/libge.h&gt;</span><br />
<br />
PSP_MODULE_INFO<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Menu_Titotuto&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
PSP_HEAP_SIZE_KB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">512</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<br />
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>argv<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; geInit<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; ge_Image<span style="color: #339933;">*</span> back <span style="color: #339933;">=</span> geLoadImage<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;fond.png&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; ge_Image<span style="color: #339933;">*</span> curs1 <span style="color: #339933;">=</span> geLoadImage<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;fleche_g.png&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; ge_Image<span style="color: #339933;">*</span> curs2 <span style="color: #339933;">=</span> geLoadImage<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;fleche_d.png&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #993333;">int</span> selecteur <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> maxselecteur <span style="color: #339933;">=</span> <span style="color: #0000dd;">3</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; ge_Keys <span style="color: #339933;">*</span>pad <span style="color: #339933;">=</span> geCreateKeys<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #339933;">*</span>oldpad <span style="color: #339933;">=</span> geCreateKeys<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geClearScreen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geReadKeys<span style="color: #009900;">&#40;</span>pad<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> back<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_DOWN<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_DOWN<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selecteur<span style="color: #339933;">++;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_UP<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_UP<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; selecteur<span style="color: #339933;">--;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>selecteur <span style="color: #339933;">&gt;</span> maxselecteur<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;selecteur <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>selecteur <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;selecteur <span style="color: #339933;">=</span> maxselecteur<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>selecteur <span style="color: #339933;">==</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">185</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">130</span><span style="color: #339933;">,</span> curs1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">275</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">130</span><span style="color: #339933;">,</span> curs2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>selecteur <span style="color: #339933;">==</span> <span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">170</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">160</span><span style="color: #339933;">,</span> curs1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">285</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">160</span><span style="color: #339933;">,</span> curs2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>selecteur <span style="color: #339933;">==</span> <span style="color: #0000dd;">3</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">185</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">189</span><span style="color: #339933;">,</span> curs1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">275</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">189</span><span style="color: #339933;">,</span> curs2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> selecteur <span style="color: #339933;">==</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> selecteur <span style="color: #339933;">==</span> <span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CROSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> selecteur <span style="color: #339933;">==</span> <span style="color: #0000dd;">3</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sceKernelExitGame<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; geReadKeys<span style="color: #009900;">&#40;</span>oldpad<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geSwapBuffers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; sceKernelExitGame<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Et le Makefile (comme d&#8217;habitude)</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">TARGET = LibGE<br />
OBJS = main.o<br />
<br />
CFLAGS = -O2 -G0 -Wall -DPSPFW3xx<br />
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti<br />
ASFLAGS = $(CFLAGS)<br />
<br />
LIBS = -lge -lfreetype -lpspmp3 -lm<br />
<br />
EXTRA_TARGETS = EBOOT.PBP<br />
PSP_EBOOT_TITLE = Menu Titotuto<br />
<br />
PSPSDK=$(shell psp-config --pspsdk-path)<br />
include $(PSPSDK)/lib/build.mak</div></div>
<p>&nbsp;</p>
<p><a href="http://forum.psdev.fr/showthread.php?tid=40">Commentez ce tutoriel ICI >></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.psdev.fr/tutoriels-psp-creer-un-menu-simple-avec-la-libge/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutoriels PSP &#8211; Utiliser les touches de la PSP avec la LibGE</title>
		<link>http://www.psdev.fr/tutoriels-psp-utiliser-les-touches-de-la-psp-avec-la-libge</link>
		<comments>http://www.psdev.fr/tutoriels-psp-utiliser-les-touches-de-la-psp-avec-la-libge#comments</comments>
		<pubDate>Fri, 24 Jun 2011 11:32:02 +0000</pubDate>
		<dc:creator>Nicovideo</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tutoriels PSP]]></category>
		<category><![CDATA[ge_keys]]></category>
		<category><![CDATA[libge]]></category>
		<category><![CDATA[pad]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[programmer sur psp]]></category>
		<category><![CDATA[psp]]></category>
		<category><![CDATA[touches]]></category>

		<guid isPermaLink="false">http://www.psdev.fr/?p=180</guid>
		<description><![CDATA[Dans ce tutoriel nous allons apprendre à utiliser les touches de la PSP à travers un petit programme simpliste. En effet, ce programme consistera à afficher &#171;&#160;Appuyez sur O pour quitter&#160;&#187;, et le programme devra s&#8217;arrêter lorsque la touche &#171;&#160;Cercle&#160;&#187; sera enfoncée. Nous utiliserons un appuie simple pour déclencher l&#8217;arrêt du programme. &#160; &#160; Reprenons [...]]]></description>
			<content:encoded><![CDATA[<p>Dans ce tutoriel nous allons apprendre à utiliser les touches de la PSP à travers un petit programme simpliste. En effet, ce programme consistera à afficher &laquo;&nbsp;Appuyez sur O pour quitter&nbsp;&raquo;, et le programme devra s&#8217;arrêter lorsque la touche &laquo;&nbsp;Cercle&nbsp;&raquo; sera enfoncée.</p>
<p><span id="more-180"></span></p>
<p>Nous utiliserons un appuie simple pour déclencher l&#8217;arrêt du programme.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Reprenons le code de base pour commencer :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #339933;">#include &lt;libge/libge.h&gt;</span><br />
&nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; PSP_MODULE_INFO<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Les_Touches&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; PSP_HEAP_SIZE_KB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">512</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geInit<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; geClearScreen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; geSwapBuffers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; sceKernelExitGame<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span></div></div>
<p>Entre geInit() et la boucle, on charge la police et on créé pad et oldpad.</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; ge_Font <span style="color: #339933;">*</span>intraFont <span style="color: #339933;">=</span> geLoadIntraFont<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;flash0:/font/ltn0.pgf&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; ge_Keys <span style="color: #339933;">*</span>pad <span style="color: #339933;">=</span> geCreateKeys<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #339933;">*</span>oldpad <span style="color: #339933;">=</span> geCreateKeys<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Juste après geClearScreen(), on copie pad dans oldpad, on lit les touches dans pad et on affiche à l&#8217;écran avec l&#8217;intrafont le texte &laquo;&nbsp;Appuyer sur O pour quitter&nbsp;&raquo;.</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #000066;">memcpy</span><span style="color: #009900;">&#40;</span>oldpad<span style="color: #339933;">,</span> pad<span style="color: #339933;">,</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span>pad<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; geReadKeys<span style="color: #009900;">&#40;</span>pad<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; geIntraFontPrintScreen<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> intraFont<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;Appuyer sur O pour quitter&quot;</span><span style="color: #339933;">,</span> RGB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">255</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">255</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">255</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Pour ce qui est de la condition voici comme cela se passe, &laquo;&nbsp;Si le bouton &laquo;&nbsp;Cercle&nbsp;&raquo; est appuyé, alors on quitte&nbsp;&raquo;. Voilà comment c&#8217;est traduit :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CIRCLE<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CIRCLE<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; sceKernelExitGame<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span></div></div>
<p>Voilà le code est terminé, si vous voulez utiliser les autres touches de la PSP voici une liste de celles ci :</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">GEK_CROSS, GEK_CIRCLE, GEK_TRIANGLE, GEK_SQUARE, GEK_UP, GEK_RIGHT, GEK_DOWN, GEK_LEFT, GEK_LTRIGGER<br />
GEK_RTRIGGER, GEK_START, GEK_SELECT, GEK_HOME, GEK_HOLD, GEK_NOTE, GEK_SCREEN, GEK_VOLUP, GEK_VOLDOWN<br />
GEK_WLAN_UP, GEK_REMOTE, GEK_DISC, GEK_MS</div></div>
<p>Le programme complet :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #339933;">#include &lt;libge/libge.h&gt;</span><br />
&nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; PSP_MODULE_INFO<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Les_Touches&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; PSP_HEAP_SIZE_KB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">512</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geInit<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ge_Font <span style="color: #339933;">*</span>intraFont <span style="color: #339933;">=</span> geLoadIntraFont<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;flash0:/font/ltn0.pgf&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ge_Keys <span style="color: #339933;">*</span>pad <span style="color: #339933;">=</span> geCreateKeys<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #339933;">*</span>oldpad <span style="color: #339933;">=</span> geCreateKeys<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; geClearScreen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">memcpy</span><span style="color: #009900;">&#40;</span>oldpad<span style="color: #339933;">,</span> pad<span style="color: #339933;">,</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span>pad<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; geReadKeys<span style="color: #009900;">&#40;</span>pad<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; geIntraFontPrintScreen<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> intraFont<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;Appuyer sur O pour quitter&quot;</span><span style="color: #339933;">,</span> RGB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">255</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">255</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">255</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>pad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CIRCLE<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>oldpad<span style="color: #339933;">-&gt;</span>pressed<span style="color: #009900;">&#91;</span>GEK_CIRCLE<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sceKernelExitGame<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; geSwapBuffers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; sceKernelExitGame<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span></div></div>
<p>Et le Makefile :</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">TARGET = LibGE<br />
OBJS = main.o<br />
&nbsp;<br />
CFLAGS = -O2 -G0 -Wall -DPSPFW3xx<br />
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti<br />
ASFLAGS = $(CFLAGS)<br />
&nbsp;<br />
LIBS = -lge -lfreetype -lpspmp3 -lm<br />
&nbsp;<br />
EXTRA_TARGETS = EBOOT.PBP<br />
PSP_EBOOT_TITLE = Les touches PSdev<br />
&nbsp;<br />
PSPSDK=$(shell psp-config --pspsdk-path)<br />
include $(PSPSDK)/lib/build.mak</div></div>
<p>&nbsp;</p>
<p><a href="http://forum.psdev.fr/showthread.php?tid=39">Commentez ce tutoriel ICI >></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.psdev.fr/tutoriels-psp-utiliser-les-touches-de-la-psp-avec-la-libge/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutoriels PSP &#8211; Afficher une image avec la LibGE</title>
		<link>http://www.psdev.fr/tutoriels-psp-afficher-une-image-avec-la-libge</link>
		<comments>http://www.psdev.fr/tutoriels-psp-afficher-une-image-avec-la-libge#comments</comments>
		<pubDate>Fri, 24 Jun 2011 10:50:05 +0000</pubDate>
		<dc:creator>Nicovideo</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tutoriels PSP]]></category>
		<category><![CDATA[afficher image libge]]></category>
		<category><![CDATA[comoiler]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[libge]]></category>
		<category><![CDATA[print]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[psp]]></category>

		<guid isPermaLink="false">http://www.psdev.fr/?p=148</guid>
		<description><![CDATA[Dans la continuité de l&#8217;apprentissage à la programmation en C sur la PSP, voici un tutoriel sur &#171;&#160;Comment afficher des images&#160;&#187; grâce à la LibGE. Vous allez voir c&#8217;est très simple mais il faut tout de même comprendre ce que l&#8217;on fait. Commençons donc notre codage, ouvrez votre éditeur de texte favoris et place à [...]]]></description>
			<content:encoded><![CDATA[<p>Dans la continuité de l&#8217;apprentissage à la programmation en C sur la PSP, voici un tutoriel sur &laquo;&nbsp;Comment afficher des images&nbsp;&raquo; grâce à la LibGE. Vous allez voir c&#8217;est très simple mais il faut tout de même comprendre ce que l&#8217;on fait.</p>
<p style="text-align: left;">Commençons donc notre codage, ouvrez votre éditeur de texte favoris et place à la programmation !</p>
<p style="text-align: left;"><span id="more-148"></span></p>
<p style="text-align: left;">
On commence donc par nos includes et les infos de la psp :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">#include &lt;libge/libge.h&gt;</span><br />
<br />
PSP_MODULE_INFO<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Afficher_Image&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
PSP_HEAP_SIZE_KB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">512</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Ensuite, on ouvre notre boucle principale :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>argv<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span></div></div>
<p>On initialise la libGE :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">geInit<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Nous allons maintenant charger notre image. Dans ce tutoriel nous utiliserons cette image :<br />
<br />
<a href="http://www.psdev.fr/tutoriels-psp-afficher-une-image-avec-la-libge/image" rel="attachment wp-att-164"><img src="http://www.psdev.fr/wp-content/uploads/2011/06/image.png" alt="" title="image" width="480" height="272" class="aligncenter size-full wp-image-164" /></a></p>
<p>
Il faut savoir que l&#8217;écran de la PSP fait 480pixels en x et 272pixels en y<br />
<br />
<a href="http://www.psdev.fr/tutoriels-psp-afficher-une-image-avec-la-libge/taille" rel="attachment wp-att-165"><img src="http://www.psdev.fr/wp-content/uploads/2011/06/taille.png" alt="" title="taille" width="448" height="235" class="aligncenter size-full wp-image-165" /></a></p>
<p>Donc pour afficher notre image on fait comme ceci :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ge_Image<span style="color: #339933;">*</span> image <span style="color: #339933;">=</span> geLoadImage<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;image.png&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>On ouvre maintenant une boucle infini :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span></div></div>
<p>Il nous faut maintenant afficher notre image entre les deux fonctions que nous avons vu dans le tutoriel précédent (le Helloworld) :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; &nbsp; &nbsp; geClearScreen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> image<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geSwapBuffers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span></div></div>
<p>La fonction geDrawImage(x,y,ge_Image* image) permet d&#8217;afficher notre image aux coordonnées que l&#8217;on veut avec x et y, le 3ème argument et la variable que vous avez assigné au chargement de votre image (ici image).</p>
<p>Si vous voulez libérer l&#8217;image de la RAM il faut faire comme ceci :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">geFreeImage<span style="color: #009900;">&#40;</span>image<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>On ferme la boucle et notre fonction principale :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&#125;</span><br />
sceKernelExitGame<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span></div></div>
<p>Voilà notre programme est terminé, je vous mets ici le code final :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">#include &lt;libge/libge.h&gt;</span><br />
<br />
PSP_MODULE_INFO<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Afficher_Image&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
PSP_HEAP_SIZE_KB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">512</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>argv<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; geInit<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; ge_Image<span style="color: #339933;">*</span> image <span style="color: #339933;">=</span> geLoadImage<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;image.png&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geClearScreen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geDrawImage<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> image<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geSwapBuffers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; geFreeImage<span style="color: #009900;">&#40;</span>image<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; sceKernelExitGame<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Voici le Makefile :</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">TARGET = LibGE<br />
OBJS = main.o<br />
<br />
CFLAGS = -O2 -G0 -Wall -DPSPFW3xx<br />
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti<br />
ASFLAGS = $(CFLAGS)<br />
<br />
LIBS = -lge -lfreetype -lpspmp3 -lm<br />
<br />
EXTRA_TARGETS = EBOOT.PBP<br />
PSP_EBOOT_TITLE = Afficher une image LibGE PSdev<br />
<br />
PSPSDK=$(shell psp-config --pspsdk-path)<br />
include $(PSPSDK)/lib/build.mak</div></div>
<p>&nbsp;</p>
<p><a href="http://forum.psdev.fr/showthread.php?tid=38">Commentez ce tutoriel ICI >></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.psdev.fr/tutoriels-psp-afficher-une-image-avec-la-libge/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutoriels PSP &#8211; Ecrire du texte avec la LibGE</title>
		<link>http://www.psdev.fr/tutoriels-psp-ecrire-du-texte-avec-la-libge</link>
		<comments>http://www.psdev.fr/tutoriels-psp-ecrire-du-texte-avec-la-libge#comments</comments>
		<pubDate>Fri, 24 Jun 2011 10:28:12 +0000</pubDate>
		<dc:creator>Nicovideo</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tutoriels PSP]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[ecrire texte libge]]></category>
		<category><![CDATA[ge_font]]></category>
		<category><![CDATA[libge]]></category>
		<category><![CDATA[programmer]]></category>
		<category><![CDATA[psp]]></category>

		<guid isPermaLink="false">http://www.psdev.fr/?p=141</guid>
		<description><![CDATA[Aujourd&#8217;hui, nouveau tutoriel sur la LibGE sur PSP. Nous allons voir comment afficher du texte à l&#8217;écran très simplement. Nous allons voir qu&#8217;avec la fonction ge_Font de la LibGE, il est très simple de pouvoir afficher du texte à l&#8217;écran de notre PSP. Commençons notre code ! Le début avec les includes comme d&#8217;habitude avec [...]]]></description>
			<content:encoded><![CDATA[<p>Aujourd&#8217;hui, nouveau tutoriel sur la LibGE sur PSP. Nous allons voir comment afficher du texte à l&#8217;écran très simplement.</p>
<p>Nous allons voir qu&#8217;avec la fonction <strong>ge_Font</strong> de la LibGE, il est très simple de pouvoir afficher du texte à l&#8217;écran de notre PSP.</p>
<p><span id="more-141"></span></p>
<p>Commençons notre code !</p>
<p>Le début avec les includes comme d&#8217;habitude avec les infos de la PSP :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">#include &lt;libge/libge.h&gt;</span><br />
<br />
PSP_MODULE_INFO<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Texte LibGE&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
PSP_HEAP_SIZE_KB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">512</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Ensuite on ouvre notre boucle principale puis on initialise la LibGE :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>argv<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
geInit<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Maintenant il vous faut télécharger une Font ou la récupérer dans le dossier Fonts qui se trouve dans <strong>C:\Windows\Fonts</strong>. Ici nous prendrons la Font <em>Arial.ttf</em></p>
<p>Nous allons donc maintenant charger notre police avec la fonction ge_Font :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ge_Font <span style="color: #339933;">*</span>police <span style="color: #339933;">=</span> geLoadFont<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Arial.ttf&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>On définit la taille de notre font :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">geFontSize<span style="color: #009900;">&#40;</span>police<span style="color: #339933;">,</span> <span style="color: #0000dd;">16</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Puis on créer notre boucle while :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geClearScreen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geFontPrintScreen<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">50</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">50</span><span style="color: #339933;">,</span> police<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;Bienvenue sur PSdev.fr !&quot;</span><span style="color: #339933;">,</span> RGB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">255</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geSwapBuffers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span></div></div>
<p>Alors dans ce bout de code, j&#8217;affiche &laquo;&nbsp;Bienvenue sur PSdev.fr !&nbsp;&raquo; en rouge (RGB(255,0,0)) avec la font &laquo;&nbsp;police&nbsp;&raquo; définit plus haut et aux cordonnées 50 en x et 50 en y. Tout simple non ?</p>
<p>Puis enfin, je termine ma boucle principale et le tour est joué :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; sceKernelExitGame<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Voilà le programme complet :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">#include &lt;libge/libge.h&gt;</span><br />
<br />
PSP_MODULE_INFO<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Texte LibGE&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
PSP_HEAP_SIZE_KB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">512</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>argv<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; geInit<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; ge_Font <span style="color: #339933;">*</span>police <span style="color: #339933;">=</span> geLoadFont<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Arial.ttf&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; geFontSize<span style="color: #009900;">&#40;</span>police<span style="color: #339933;">,</span> <span style="color: #0000dd;">16</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geClearScreen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geFontPrintScreen<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">50</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">50</span><span style="color: #339933;">,</span> police<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;Bienvenue sur PSdev.fr !&quot;</span><span style="color: #339933;">,</span> RGB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">255</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #339933;">,</span><span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geSwapBuffers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; sceKernelExitGame<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Et le Makefile :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">TARGET <span style="color: #339933;">=</span> LibGE<br />
OBJS <span style="color: #339933;">=</span> main.<span style="color: #202020;">o</span><br />
<br />
CFLAGS <span style="color: #339933;">=</span> <span style="color: #339933;">-</span>O2 <span style="color: #339933;">-</span>G0 <span style="color: #339933;">-</span>Wall <span style="color: #339933;">-</span>DPSPFW3xx<br />
CXXFLAGS <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>CFLAGS<span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span>fno<span style="color: #339933;">-</span>exceptions <span style="color: #339933;">-</span>fno<span style="color: #339933;">-</span>rtti<br />
ASFLAGS <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>CFLAGS<span style="color: #009900;">&#41;</span><br />
<br />
LIBS <span style="color: #339933;">=</span> <span style="color: #339933;">-</span>lge <span style="color: #339933;">-</span>lfreetype <span style="color: #339933;">-</span>lm<br />
<br />
EXTRA_TARGETS <span style="color: #339933;">=</span> EBOOT.<span style="color: #202020;">PBP</span><br />
PSP_EBOOT_TITLE <span style="color: #339933;">=</span> Texte LibGE sur PSdev<br />
<br />
PSPSDK<span style="color: #339933;">=</span>$<span style="color: #009900;">&#40;</span>shell psp<span style="color: #339933;">-</span>config <span style="color: #339933;">--</span>pspsdk<span style="color: #339933;">-</span>path<span style="color: #009900;">&#41;</span><br />
include $<span style="color: #009900;">&#40;</span>PSPSDK<span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span>lib<span style="color: #339933;">/</span>build.<span style="color: #202020;">mak</span></div></div>
<p>&nbsp;</p>
<p><a href="http://forum.psdev.fr/showthread.php?tid=37">Commentez ce tutoriel ICI >></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.psdev.fr/tutoriels-psp-ecrire-du-texte-avec-la-libge/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutoriels PSP &#8211; Installation de la LibGE + programme vide sur la console</title>
		<link>http://www.psdev.fr/tutoriels-psp-installation-de-la-libge-helloword</link>
		<comments>http://www.psdev.fr/tutoriels-psp-installation-de-la-libge-helloword#comments</comments>
		<pubDate>Wed, 15 Jun 2011 06:39:39 +0000</pubDate>
		<dc:creator>Nicovideo</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tutoriels PSP]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[helloworld]]></category>
		<category><![CDATA[installation libge]]></category>
		<category><![CDATA[libge]]></category>
		<category><![CDATA[psp]]></category>

		<guid isPermaLink="false">http://www.psdev.fr/?p=85</guid>
		<description><![CDATA[Nous voici pour le deuxième tutoriel qui va vous permettre de programmer sur PSP. Si tout s&#8217;est bien passé, MinPSPW est installé et vous avez réussi à compiler votre premier EBOOT.PBP grâce au 1er tutoriel : Installer tout ce qu’il faut pour programmer sur PSP sous Windows Dans ce tutoriel nous allons tout d&#8217;abord installer [...]]]></description>
			<content:encoded><![CDATA[<p>Nous voici pour le deuxième tutoriel qui va vous permettre de programmer sur PSP. Si tout s&#8217;est bien passé, MinPSPW est installé et vous avez réussi à compiler votre premier EBOOT.PBP grâce au 1er tutoriel : <a href="http://www.psdev.fr/tutoriels-psp-installer-tout-ce-quil-faut-pour-programmer-sur-psp-sous-windows">Installer tout ce qu’il faut pour programmer sur PSP sous Windows</a></p>
<p><span id="more-85"></span></p>
<p>Dans ce tutoriel nous allons tout d&#8217;abord installer la <strong>LibGE</strong> de <strong><span style="color: #339966;">dridri85</span></strong>, téléchargez là <a>ICI</a>.</p>
<p>Ensuite, décompressez l&#8217;archive et copiez le contenu du dossier pspdev dans la dossier pspdev de votre disque dur C:\pspdev\</p>
<p>Voilà rien de bien compliqué vous venez d&#8217;installer la LibGE sur votre PSP et vous allez pouvoir vous en servir dans vos programmes.</p>
<p>Ouvrez donc maintenant le Notepad for PSP et ouvrez un nouveau fichier, nous allons commencer à programmer !</p>
<p>Tout d&#8217;abord, ne pas oubliez de mettre nos includes :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">#include &lt;stdio.h&gt;</span><br />
<span style="color: #339933;">#include &lt;stdlib.h&gt;</span><br />
<span style="color: #339933;">#include &lt;libge/libge.h&gt;</span></div></div>
<p>Ensuite les infos de la PSP :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">PSP_MODULE_INFO<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Helloworld&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
PSP_HEAP_SIZE_KB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">512</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Ce code doit toujours être présent, vous modifierez le PSP_MODULE_INFO en fonction de votre programme.</p>
<p>On attaque maintenant la boucle principale :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>argv<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span></div></div>
<p>On initialise ensuite la LibGE :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">geInit<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>Puis on créer une boucle infini :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">//boucle principale</span><br />
&nbsp;<span style="color: #009900;">&#123;</span></div></div>
<p>Dans cette boucle on y insère ces deux fontions :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">geClearScreen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
geSwapBuffers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<p>La fonction geClearScreen permet d&#8217;effacer l&#8217;écran (rafraichissement).<br />
La fonction geSwapBuffers permet d&#8217;éviter le scintillement de l&#8217;image.</p>
<p>On ferme maintenant notre boucle et on ferme la boucle principale</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
sceKernelExitGame<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Voici maintenant le code complet :</p>
<div class="codecolorer-container c railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="c codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">#include &lt;stdio.h&gt;</span><br />
<span style="color: #339933;">#include &lt;stdlib.h&gt;</span><br />
<span style="color: #339933;">#include &lt;libge/libge.h&gt;</span><br />
<br />
PSP_MODULE_INFO<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Helloworld&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
PSP_HEAP_SIZE_KB<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">512</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>argv<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; geInit<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geClearScreen<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; geSwapBuffers<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<br />
&nbsp; &nbsp; sceKernelExitGame<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>Maintenant le Makefile :</p>
<div class="codecolorer-container text railscasts" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">TARGET = LibGE<br />
OBJS = main.o<br />
<br />
CFLAGS = -O2 -G0 -Wall -DPSPFW3xx<br />
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti<br />
ASFLAGS = $(CFLAGS)<br />
<br />
LIBS = -lge -lfreetype -lpspmp3 -lm<br />
<br />
EXTRA_TARGETS = EBOOT.PBP<br />
PSP_EBOOT_TITLE = Helloworld sur PSdev<br />
<br />
PSPSDK=$(shell psp-config --pspsdk-path)<br />
include $(PSPSDK)/lib/build.mak</div></div>
<p>Si vous testez ce programme sur votre PSP, vous verrez qu&#8217;il afficher un écran noir. Ben c&#8217;est normal vu qu&#8217;on a rien mis dans la boucle :-p Vous pouvez quitter le jeu en appuyant sur la touche &laquo;&nbsp;Home&nbsp;&raquo;. Nous verrons dans le prochain tutoriel comment afficher une image avec la LibGE.</p>
<p>&nbsp;<br />
<a href="http://forum.psdev.fr/showthread.php?tid=36"><br />
Commentez ce tutoriel ICI >></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.psdev.fr/tutoriels-psp-installation-de-la-libge-helloword/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tutoriels PSP &#8211; Installer tout ce qu&#8217;il faut pour programmer sur PSP sous Windows</title>
		<link>http://www.psdev.fr/tutoriels-psp-installer-tout-ce-quil-faut-pour-programmer-sur-psp-sous-windows</link>
		<comments>http://www.psdev.fr/tutoriels-psp-installer-tout-ce-quil-faut-pour-programmer-sur-psp-sous-windows#comments</comments>
		<pubDate>Tue, 14 Jun 2011 06:20:10 +0000</pubDate>
		<dc:creator>Nicovideo</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tutoriels PSP]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[eboot]]></category>
		<category><![CDATA[minpspw]]></category>
		<category><![CDATA[programmer sur psp]]></category>
		<category><![CDATA[psp]]></category>
		<category><![CDATA[sdk]]></category>

		<guid isPermaLink="false">http://psdev.fr/?p=1</guid>
		<description><![CDATA[Bonjour à tous, nous allons apprendre ici à programmer sur PSP (Playstation Portable) en C. Nous allons donc apprendre à créer des Homebrews orientés jeu. Dans ce premier tutoriel image, nous allons installer tout ce dont nous avons besoin afin de pouvoir programmer et compiler pour notre PSP sous windows. Tout d&#8217;abord, direction sur le [...]]]></description>
			<content:encoded><![CDATA[<p>Bonjour à tous, nous allons apprendre ici à programmer sur PSP (Playstation Portable) en C. Nous allons donc apprendre à créer des Homebrews orientés jeu.</p>
<p style="text-align: left;">Dans ce premier tutoriel image, nous allons installer tout ce dont nous avons besoin afin de pouvoir programmer et compiler pour notre <strong>PSP sous windows</strong>.</p>
<p><span id="more-1"></span></p>
<p>Tout d&#8217;abord, direction sur le site de <a href="http://www.jetdrone.com/minpspw"><strong>MinPSPW</strong></a> et téléchargez la derniere version en date de <strong>MinPSPW</strong> pour windows, ici la version 0.10.0 win32.</p>
<p>&nbsp;</p>
<p style="text-align: left;"><a rel="attachment wp-att-110" href="http://www.psdev.fr/tutoriels-psp-installer-tout-ce-quil-faut-pour-programmer-sur-psp-sous-windows/psp1"><img class="aligncenter size-full wp-image-110" title="psp1" src="http://www.psdev.fr/wp-content/uploads/2011/06/psp1.jpg" alt="" width="517" height="245" /><br />
</a></p>
<p style="text-align: left;">MAJ : La version 0.11.1 est disponible ici : <a href="http://www.titotuto.fr/res/tuto/pspsdk-setup-0.11.1.exe">Téléchargement</a></p>
<p style="text-align: left;">Une fois téléchargé, lancez le :</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;"><a rel="attachment wp-att-111" href="http://www.psdev.fr/tutoriels-psp-installer-tout-ce-quil-faut-pour-programmer-sur-psp-sous-windows/psp2"><img class="aligncenter size-full wp-image-111" title="psp2" src="http://www.psdev.fr/wp-content/uploads/2011/06/psp2.jpg" alt="" width="507" height="394" /><br />
</a></p>
<p style="text-align: left;">Ensuite faite <strong>Next</strong> jusqu&#8217;à tomber sur le chemin d&#8217;installation. Remplacez pspsdk par pspdev comme ceci :</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;"><a rel="attachment wp-att-112" href="http://www.psdev.fr/tutoriels-psp-installer-tout-ce-quil-faut-pour-programmer-sur-psp-sous-windows/psp3"><img class="aligncenter size-full wp-image-112" title="psp3" src="http://www.psdev.fr/wp-content/uploads/2011/06/psp3.jpg" alt="" width="507" height="394" /><br />
</a></p>
<p style="text-align: left;">Cliquez sur <strong>Next</strong> et l&#8217;installation va commencer.</p>
<p style="text-align: left;">Ca y est vous avez installé <strong>MinPSPW</strong> <img src='http://www.psdev.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p style="text-align: left;">Direction sur votre bureau maintenant et <strong>Poste de Travail -&gt; Propriétés</strong> puis <strong>Avancé</strong> et <strong>Variables d&#8217;environnement</strong>.</p>
<p style="text-align: left;">Cliquez maintenant sur <strong>PATH</strong> et modifiez comme ceci :</p>
<p style="text-align: left;">&nbsp;</p>
<p style="text-align: left;"><a rel="attachment wp-att-113" href="http://www.psdev.fr/tutoriels-psp-installer-tout-ce-quil-faut-pour-programmer-sur-psp-sous-windows/psp4"><img class="aligncenter size-full wp-image-113" title="psp4" src="http://www.psdev.fr/wp-content/uploads/2011/06/psp4.jpg" alt="" width="507" height="394" /><br />
</a></p>
<p style="text-align: left;">Cliquez ensuite sur <strong>OK</strong> et fermez tout.</p>
<p style="text-align: left;">Vous avez maintenant installés l&#8217;environnement pour programmer sur PSP. Vous allez maintenant télécharger cet éditeur de texte : <a href="http://www.psdev.fr/ressources/PSP/Notepad_for_PSP.rar">Notepad for PSP</a></p>
<p style="text-align: left;">Vous n&#8217;avez qu&#8217;à l&#8217;extraire et lancer le notepad++.exe</p>
<p style="text-align: left;">Vous tomber normalement sur une fenêtre Notepad que vous devez déjà connaître avec une console noir en bas. En lançant le notepad++.exe, par defaut il vous ouvre un  fichier main.c qui se trouve dans les samples du SDK (du style : <span style="color: #999999;"><strong>C:/pspdev/psp/sdk/samples/audio/polyphonic/main.c</strong></span>).</p>
<p style="text-align: left;">Allez dans la console noir en bas et tappez-y &laquo;&nbsp;<strong>make</strong>&laquo;&nbsp;.</p>
<p style="text-align: left;">Si tout ce passe bien, si vous allez dans le répertoire <strong>C:/pspdev/psp/sdk/samples/audio/polyphonic/</strong> vous devriez avoir un <strong>EBOOT.PBP</strong> ainsi qu&#8217;un <strong>PARAM.SFO</strong></p>
<p style="text-align: left;">Bravo vous avez réussi à compiler, il ne vous reste plus qu&#8217;à tester l&#8217;EBOOT sur votre PSP pour voir si ça marche !</p>
<p>&nbsp;</p>
<p><a href="http://forum.psdev.fr/showthread.php?tid=42">Commentez ce tutoriel ICI >></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.psdev.fr/tutoriels-psp-installer-tout-ce-quil-faut-pour-programmer-sur-psp-sous-windows/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
