{"id":575,"date":"2018-11-03T10:39:36","date_gmt":"2018-11-03T09:39:36","guid":{"rendered":"http:\/\/wollef.org\/?p=575"},"modified":"2018-11-03T10:39:36","modified_gmt":"2018-11-03T09:39:36","slug":"programmation-du-jeu-pong-en-java-etude-du-code-24","status":"publish","type":"post","link":"https:\/\/wollef.org\/blog\/programmation-du-jeu-pong-en-java-etude-du-code-24\/","title":{"rendered":"Programmation du jeu Pong en Java &#8211; Etude du code (2\/6)"},"content":{"rendered":"<h2><a name=\"_Toc515809706\"><\/a>Etude du code du jeu<\/h2>\n<p>Pour Programmer un jeu vid\u00e9o il faut donc cr\u00e9er diff\u00e9rents fichiers ou <strong>classes<\/strong> (c\u2019est une mani\u00e8re d\u2019organiser le programme en java) pour que tout fonctionne.<\/p>\n<h3><a name=\"_Toc515809707\"><\/a>Main:<\/h3>\n<p>Le fichier <strong>Main<\/strong> est le premier qui est lanc\u00e9, et il permet de dire quelles autres classes doivent \u00eatre utilis\u00e9es pour faire fonctionner le jeu.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-584 aligncenter\" src=\"http:\/\/wollef.org\/wp-content\/uploads\/2019\/09\/code-1-300x179.png\" alt=\"\" width=\"300\" height=\"179\" \/><\/p>\n<h3><a name=\"_Toc515809708\"><\/a>Gui:<\/h3>\n<p>La classe <strong>Gui<\/strong> cr\u00e9e la fen\u00eatre du jeu et elle utilise deux autres classes pour contr\u00f4ler la fen\u00eatre\u00a0:<\/p>\n<ul>\n<li>La classe &#8220;<strong>KeyHandler<\/strong>&#8221; qui examine quelle touche on tape sur le clavier. Ensuite quand on a touch\u00e9 une touche il va regarder quelle action cette touche doit d\u00e9clencher dans le jeu.<\/li>\n<li>La classe &#8220;<strong>Draw<\/strong>&#8221; d\u00e9fini les formes de la balle, du terrain et des raquettes puis les dessine dans la fen\u00eatre.<\/li>\n<\/ul>\n<h4>Gui<\/h4>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-583\" src=\"http:\/\/wollef.org\/wp-content\/uploads\/2019\/09\/code-2-300x237.png\" alt=\"\" width=\"448\" height=\"354\" \/><\/p>\n<h4>KeyHandler<\/h4>\n<h4><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-582\" src=\"http:\/\/wollef.org\/wp-content\/uploads\/2019\/09\/code-3-300x176.png\" alt=\"\" width=\"448\" height=\"263\" \/><\/h4>\n<h4>Draw:<\/h4>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-581\" src=\"http:\/\/wollef.org\/wp-content\/uploads\/2019\/09\/code-4-300x217.png\" alt=\"\" width=\"448\" height=\"324\" \/><\/p>\n<h3><a name=\"_Toc515809709\"><\/a>Var<\/h3>\n<p>La classe <strong>Var<\/strong> contient toute les variables et les param\u00e8tres du programme\u00a0:<\/p>\n<ul>\n<li>La fen\u00eatre du programme et ses dimensions<\/li>\n<li>La position de la balle, des raquettes, la direction de la balle<\/li>\n<li>Le mouvement de la raquette que demande le joueur<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-580\" src=\"http:\/\/wollef.org\/wp-content\/uploads\/2019\/09\/code-5-300x233.png\" alt=\"\" width=\"451\" height=\"350\" \/><\/p>\n<h3><a name=\"_Toc515809710\"><\/a>Movement<\/h3>\n<p>A chaque cycle, La classe &#8220;<strong>Movement<\/strong>&#8221; calcule la nouvelle position de la raquette du joueur en fonction des touches appuy\u00e9es.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-579\" src=\"http:\/\/wollef.org\/wp-content\/uploads\/2019\/09\/code-6-300x276.png\" alt=\"\" width=\"452\" height=\"416\" \/><\/p>\n<p><u>\u00a0<\/u><\/p>\n<h3><a name=\"_Toc515809711\"><\/a>GegnerMovement:<\/h3>\n<p>A chaque cycle, la classe &#8220;<strong>GegnerMovement<\/strong>&#8221; essaye de mettre la raquette du deuxi\u00e8me joueur (dans mon cas l&#8217;ordinateur) \u00e0 la m\u00eame hauteur que la balle quand la balle rentre dans la moiti\u00e9 du terrain du deuxi\u00e8me joueur. La vitesse de la raquette de l\u2019ordinateur est limit\u00e9e par le code. Donc il ne peut pas toujours gagner (ce serait trop facile pour lui de calculer plus vite\u2026 )<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-578\" src=\"http:\/\/wollef.org\/wp-content\/uploads\/2019\/09\/code-7-300x230.png\" alt=\"\" width=\"451\" height=\"346\" \/><\/p>\n<h3><a name=\"_Toc515809712\"><\/a>BallMovement:<\/h3>\n<p>A chaque cycle, la classe \u00ab\u00a0<strong>BallMovement<\/strong>\u00a0\u00bb calcule o\u00f9 se trouve la balle et \u00e7a d\u00e9pend de la direction de la balle.<\/p>\n<p><strong>Attention<\/strong>\u00a0! Dans cette version du jeu, la balle se d\u00e9place toujours \u00e0 la m\u00eame vitesse. Ce n\u2019\u00e9tait pas le cas dans la version originale. <em>Dans la prochaine partie de mon Travail Personnel, je vais modifier le jeu pour qu\u2019il fonctionne comme l\u2019original.<\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-577\" src=\"http:\/\/wollef.org\/wp-content\/uploads\/2019\/09\/code-8-300x229.png\" alt=\"\" width=\"445\" height=\"340\" \/><\/p>\n<h3><a name=\"_Toc515809713\"><\/a>BallKollision:<\/h3>\n<p>A chaque cycle, la classe &#8220;<strong>BallKollision<\/strong>&#8221; permet de calculer les angles de rebond de la balle pendant le jeu\u00a0:<\/p>\n<ul>\n<li>Si la balle touche une raquette, la balle rebondit dans le m\u00eame angle<\/li>\n<li>Et si la balle franchit un c\u00f4t\u00e9, elle est remise au milieu du terrain et elle repart vers le joueur. Et le point et ajout\u00e9 au joueur qui a marqu\u00e9.<\/li>\n<\/ul>\n<h2><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-576\" src=\"http:\/\/wollef.org\/wp-content\/uploads\/2019\/09\/code-9-300x177.png\" alt=\"\" width=\"451\" height=\"266\" \/><\/h2>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Etude du code du jeu Pour Programmer un jeu vid\u00e9o il faut donc cr\u00e9er diff\u00e9rents fichiers ou classes (c\u2019est une mani\u00e8re d\u2019organiser le programme en java) pour que tout fonctionne. Main: Le fichier Main est le premier qui est lanc\u00e9, et il permet de dire quelles autres classes doivent \u00eatre utilis\u00e9es pour faire fonctionner le <a class=\"read-more\" href=\"https:\/\/wollef.org\/blog\/programmation-du-jeu-pong-en-java-etude-du-code-24\/\">Continue Reading<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29,45,5,13],"tags":[],"class_list":["post-575","post","type-post","status-publish","format-standard","hentry","category-programmation-java-jeux-pong","category-java","category-jeux-video","category-pong"],"_links":{"self":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/posts\/575","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/comments?post=575"}],"version-history":[{"count":0,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/posts\/575\/revisions"}],"wp:attachment":[{"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/media?parent=575"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/categories?post=575"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wollef.org\/blog\/wp-json\/wp\/v2\/tags?post=575"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}