Page2_Fr.html 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. <html>
  2. <head>
  3. <title>
  4. Lier une Dll &agrave; LuaEdit (Tutoriel) - Cr&eacute;er les Bases du Code
  5. </title>
  6. <link rel="stylesheet" href="..\Tutorial.css" type="text/css">
  7. </head>
  8. <body bgcolor="#FFFFFF" vlink="silver" alink="navy" link="navy">
  9. <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="">
  10. <tr>
  11. <td valign="bottom">
  12. <div align="left">
  13. <b><font face="Tahoma" size="3" color="navy">Cr&eacute;er les Bases du Code</font></b>
  14. </div>
  15. </td>
  16. <td>
  17. <font face="Tahoma" size="1" color="silver">
  18. <div align="right" valign="top">
  19. <a href="http://www.lua.org">Page d'accueuil Lua</a>
  20. </div>
  21. </font>
  22. </td>
  23. </tr>
  24. <tr valign="top">
  25. <td colspan="2">
  26. <hr size="1" color="#000000">
  27. <br>
  28. <br>
  29. <font face="Tahoma" size="2">
  30. <p style="text-align:justify">
  31. Avant de commencer &agrave; programmer la logique du jeu Simon<sup>&reg;</sup>, il y a quelques bases que
  32. l'ont doit cr&eacute;er, tout comme dans n'importe quel autre projet. Commencons par ajouter les variables
  33. suivante au d&eacute;but du script:
  34. </p>
  35. <br>
  36. </font>
  37. </td>
  38. </tr>
  39. <tr>
  40. <td class="code" colspan="2">
  41. <br>
  42. <blockquote>
  43. -- Set "constants" for Simon game<br>
  44. local SIMON_NONE = 0<br>
  45. local SIMON_RED = 1<br>
  46. local SIMON_BLUE = 2<br>
  47. local SIMON_YELLOW = 3<br>
  48. local SIMON_GREEN = 4
  49. </blockquote>
  50. </td>
  51. </tr>
  52. <tr>
  53. <td colspan="2">
  54. <font face="Tahoma" size="2">
  55. <br>
  56. <br>
  57. <p style="text-align:justify">
  58. Ces variables seront utilis&eacute;es "comme si" elle &eacute;taient des constantes &eacute;tant donn&eacute; le fait que
  59. le concepte de constantes n'existe pas vraiment en Lua. Cela signifie que notre code ne modifira
  60. pas leurs contenue. Ensuite, allons ajouter de "r&eacute;el" variables (leurs contenue ne sera pas
  61. modifier tout au long de la script) pour controler l'environnment du jeu:
  62. </p>
  63. <br>
  64. </td>
  65. </tr>
  66. <tr>
  67. <td class="code" colspan="2">
  68. <br>
  69. <blockquote>
  70. -- Game handling variables<br>
  71. local GameState = true<br>
  72. local MainSequence = {}<br>
  73. local SequenceCount = 0<br>
  74. local UserSequenceCount = 0
  75. </blockquote>
  76. </td>
  77. </tr>
  78. <tr>
  79. <td colspan="2">
  80. <font face="Tahoma" size="2">
  81. <br>
  82. <br>
  83. <p style="text-align:justify">
  84. La variable GameState est un bool&eacute;en qui contiendra false si le jeu est termin&eacute;. MainSequence est
  85. une table qui contiendra la s&eacute;quence compl&egrave;te depuis le d&eacute;but d'une nouvelle partie. la variable SequenceCount is
  86. un entier qui contiendra le compte actuel de la longeur totale de la s&eacute;quence. Finallement, UserSequenceCount est un entier
  87. qui contiendra la longeur de la s&eacute;quence entr&eacute;e par le joueur jusqu'&agrave; maintenant. Maintenant, nous allons ajouter 4 fonctions dans lesquelles
  88. nous ajouterons du code plus tard. Ces fonctions seront localis&eacute;es dans la table simon qui sera cr&eacute;&eacute;e par le moteur du jeu
  89. (simon.dll) quand la script sera intialis&eacute;e &agrave; travers la fonction "Initializer":
  90. </p>
  91. <br>
  92. </td>
  93. </tr>
  94. <tr>
  95. <td class="code" colspan="2">
  96. <br>
  97. <blockquote>
  98. function simon:OnButtonClick(ButtonIndex)<br>
  99. end<br><br>
  100. function simon:AddSequence(Sequence)<br>
  101. end<br><br>
  102. function simon:PlaySequence(Sequence)<br>
  103. end<br><br>
  104. function simon:Initialize()<br>
  105. end<br>
  106. </blockquote>
  107. </td>
  108. </tr>
  109. <tr>
  110. <td colspan="2">
  111. <font face="Tahoma" size="2">
  112. <br>
  113. <br>
  114. <p style="text-align:justify">
  115. La fonction OnClick(ButtonIndex) sera appel&eacute;e &agrave; chaque fois que le joueur cliquera sur
  116. un bouton dans le jeu. Cette fonction servira &agrave; valider le
  117. bouton dans la s&eacute;quence courrante. Les fonctions simon:AddSequence(Sequence),
  118. simon:PlaySequence(Sequence) et simon:Initialize() sont des fonctions appel&eacute;es
  119. &agrave; travers la script lors de diff&eacute;rentes &eacute;tapes durant le jeu.
  120. Une derni&egrave;re chose est requise avant la fin de cette &eacute;tape: cr&eacute;er la charpente.
  121. Pour se faire, une boucle principale sera ajout&eacute;e en fin de fichier comme suit:
  122. </p>
  123. <br>
  124. </td>
  125. </tr>
  126. <tr>
  127. <td class="code" colspan="2">
  128. <br>
  129. <blockquote>
  130. simon.Create()<br><br>
  131. -- Main processing loop<br>
  132. while simon.GetPowerStatus() == 1 do<br>
  133. &nbsp;&nbsp;&nbsp;&nbsp;-- Make sure the processor doesn't runs for no reason<br>
  134. &nbsp;&nbsp;&nbsp;&nbsp;Sleep(10)<br>
  135. end<br><br>
  136. simon.Destroy()<br>
  137. </blockquote>
  138. </td>
  139. </tr>
  140. <tr>
  141. <td colspan="2">
  142. <font face="Tahoma" size="2">
  143. <br>
  144. <br>
  145. <p style="text-align:justify">
  146. Cette boucle manipulera le jeu du d&eacute;but jusqu'&agrave; la fin. Un it&eacute;ration dans cette
  147. boucle sera ex&eacute;cut&eacute; plusieurs fois par seconde tandisqu'un tel travail de la par du processeur n'est
  148. aucunement n&eacute;cessaire au jeu afin de fonctionner. C'est pourquoi le moteur du jeu (simon.dll) exporte une fonction appel&eacute;e Sleep()
  149. qui signale au processeur de "dormir" pendant un certain laps de temps en milisecondes.
  150. En d'autre mots, en employant cette fonction nous nous assurerons que le jeu n'utilisera pas 100% des ressources du processeur
  151. alors que dans ce cas pr&eacute;cis nous n'en avons guerre de besoin. Aussi, comme vous avez probablement d&eacute;j&agrave; remarqu&eacute;,
  152. cette partie de code inclue deux appels &agrave; des fonctions du moteur du jeu: simon.Create() et
  153. simon.Destroy(). la fonction simon.Create() cr&eacute;e l'interface du jeu Simon<sup>&reg;</sup> afin d'interagir
  154. avec le joueur alors que la fonction simon.Destroy() d&eacute;truit celle-ci. Dans la prochaine &eacute;tape,
  155. ajouterons du code &agrave; l'int&eacute;rieur des fonctions que nous venons d'instancier.
  156. </p>
  157. <br>
  158. </td>
  159. </tr>
  160. <tr>
  161. <td colspan="2">
  162. <font face="Tahoma" size="2">
  163. <b>Conseils:</b>
  164. <ul type="square">
  165. <li>L'expression r&eacute;serv&eacute; "local" utilis&eacute;e lors de la d&eacute;claration de variables ci-haut
  166. n'est pas n&eacute;cessaire au code afin de fonctionner dans la mesure o&ugrave; la script n'est pas charg&eacute; dans d'autre scripts.
  167. Cepandant, &eacute;tant donn&eacute; que ces variables ne seront utilis&eacute;es que dans le scope global
  168. de ce scripts, il serait recommend&eacute;, afin de pr&eacute;venir tout potentiel probl&egrave;me que ce soit,
  169. de garder l'instruction "local" instruction m&ecirc;me si elle n'est pas n&eacute;cessaire dans ce cas pr&eacute;cis. Voir
  170. section 2.6 de la documentation Lua 5.0 pour plus de d&eacute;tails. (Disponible dans le menu Help de LuaEdit)</li>
  171. <li>La fonction Create() accepte un argument optionel. Celui-ci g&egrave;re le "comment" l'interface sera cr&eacute;e.
  172. Quand cet argument vaut 1, l'interface est cr&eacute;e dans une fen&ecirc;tre ajustable. Lorsque ce m&ecirc;me argument
  173. vaut 2, l'interface est cr&eacute;&eacute; dans une fen&ecirc;tre d'outils ajustable. Lorsque l'argument vaut ni 1, ni 2,
  174. l'interface est cr&eacute;&eacute; dans une fen&ecirc;tre sans bordure. Dans l'example, l'argument
  175. optionel valait nil puisque nous n'avions jamais donn&eacute; quelque valeur que ce soit lors de l'appel de cette fonction.</li>
  176. </ul>
  177. </p>
  178. </td>
  179. </tr>
  180. <tr>
  181. <td valign="bottom">
  182. <font face="Tahoma" size="2">
  183. <div align="left" valign="bottom">
  184. <a href=".\Page1_Fr.html">&lt;&lt; Pr&eacute;c&eacute;dent</a>
  185. </div>
  186. </td>
  187. <td>
  188. <font face="Tahoma" size="2">
  189. <div align="right" valign="bottom">
  190. <a href=".\Page3_Fr.html">Suivant &gt;&gt;</a>
  191. </div>
  192. </font>
  193. </td>
  194. </tr>
  195. <tr>
  196. <td colspan="2">
  197. <font face="Tahoma" size="1" color="silver">
  198. <hr size="1" color="#000000">
  199. <div align="right">
  200. <a href="http://www.luaedit.org">www.luaedit.org</a>
  201. <br>
  202. &copy; Copyright 2004-2005 LuaEdit
  203. <br>
  204. Lier une Dll &agrave; LuaEdit (Tutoriel)
  205. </div>
  206. </font>
  207. </td>
  208. </tr>
  209. </table>
  210. </body>
  211. </html>