{"id":1836,"date":"2016-01-01T00:59:06","date_gmt":"2015-12-31T23:59:06","guid":{"rendered":"http:\/\/www.lyceelecorbusier.eu\/insituhacklab\/?p=1836"},"modified":"2024-03-25T15:30:59","modified_gmt":"2024-03-25T14:30:59","slug":"commencer-a-coder","status":"publish","type":"post","link":"https:\/\/www.lyceelecorbusier.eu\/p5js\/?p=1836","title":{"rendered":"\/ p5.js \/ 1 \/ commencer \u00e0 coder"},"content":{"rendered":"<p style=\"text-align: center;\"><!--more--><\/p>\n<p>Plusieurs solutions existent pour coder en p5.js<br \/>\nEn ligne en utilisant l&#8217;\u00e9diteur\u00a0<a href=\"https:\/\/alpha.editor.p5js.org\/\" target=\"_blank\" rel=\"noopener\">https:\/\/alpha.editor.p5js.org\/<\/a>\u00a0ou celui du site <a href=\"https:\/\/www.openprocessing.org\/\" target=\"_blank\" rel=\"noopener\">openprocessing.org<br \/>\n<\/a>Il possible d&#8217;utiliser Processing 4, \u00e0 t\u00e9l\u00e9charger sur le site <a href=\"https:\/\/processing.org\/download\/?processing\" target=\"_blank\" rel=\"noopener\">processing<\/a>.<\/p>\n<p>Enfin il est possible de coder avec des \u00e9diteurs de code comme <a href=\"https:\/\/www.sublimetext.com\/\" target=\"_blank\" rel=\"noopener\">SublimeText<br \/>\n<\/a>T\u00e9l\u00e9charger le dossier zipper <a href=\"https:\/\/github.com\/processing\/p5.js\/releases\/download\/v1.9.2\/p5.zip\" target=\"_blank\" rel=\"noopener\">p5.js Complete<br \/>\n<\/a><\/p>\n<p>_ Dupliquer le dossier afin de garder une copie et renommer cette copie.<br \/>\n_ Ajouter le dossier renomm\u00e9 aux <em>Folders<\/em> de <em>Sublime text\u00a0<\/em><br \/>\n_ Ouvrir le fichier <em>index.html<\/em><\/p>\n<p><img loading=\"lazy\" width=\"863\" height=\"314\" class=\"size-full wp-image-3498 alignnone\" src=\"http:\/\/www.lyceelecorbusier.eu\/p5js\/wp-content\/uploads\/sites\/25\/2016\/01\/hello-sublime.png\" alt=\"\" srcset=\"https:\/\/www.lyceelecorbusier.eu\/p5js\/wp-content\/uploads\/sites\/25\/2016\/01\/hello-sublime.png 863w, https:\/\/www.lyceelecorbusier.eu\/p5js\/wp-content\/uploads\/sites\/25\/2016\/01\/hello-sublime-300x109.png 300w, https:\/\/www.lyceelecorbusier.eu\/p5js\/wp-content\/uploads\/sites\/25\/2016\/01\/hello-sublime-768x279.png 768w\" sizes=\"(max-width: 863px) 100vw, 863px\" \/><br \/>\nCe fichier montre la structure de votre projet et le lien avec la librairie de p5.js et un autre fichier sketch.js, qui est celui dans lequel s&#8217;\u00e9crit le programme.<\/p>\n<p>_ Ouvrir <em>sketch.js.\u00a0<\/em>Le code contient 2 blocs qui forment la base de tous les programmes <em>p5.js.<br \/>\n_ <\/em>Ouvrir le fichier<em> index.html<\/em> avec un navigateur (de pr\u00e9f\u00e9rence <strong>Firefox<\/strong>, car pour les fichiers qui doivent charger des images <strong>Chrome<\/strong> ne fonctionne pas en local).<\/p>\n<h4 style=\"text-align: left;\">Le premier code ! (effacer le code existant et coller le code ci-dessous)<\/h4>\n<pre style=\"text-align: left;\">function setup() {\r\ncreateCanvas(800, 600);\r\n}\r\n\r\nfunction draw() {\r\nif (mouseIsPressed) {\r\nfill(0);\r\n} else {\r\nfill(255);\r\n}\r\nellipse(mouseX, mouseY, 80, 80);\r\n}<\/pre>\n<p>_ Que raconte ce code ?<br \/>\n<em><strong>function setup ( ) { }<\/strong> : <\/em>cette partie du code sera pr\u00e9sente dans tous les codes p5.js. Le <em>setup<\/em> c&#8217;est la configuration de d\u00e9part. Cette partie du code ne va s&#8217;ex\u00e9cuter qu&#8217;une seule fois contrairement \u00e0 la<em> function draw<\/em> qui va s&#8217;ex\u00e9cuter en boucle. s<em>etup<\/em> sert donc \u00e0 lister les \u00e9l\u00e9ments qui sont n\u00e9cessaires au d\u00e9part, les invariants comme <em>createCanvas <\/em>(Attention, la capitale \u00e0 Canvas est obligatoire, <em>p5.js<\/em> est sensible \u00e0 la casse) qui va d\u00e9finir la taille de l&#8217;animation (800 pixels sur 600 pixels dans l&#8217;exemple).<\/p>\n<p style=\"text-align: left;\"><strong><em>function draw ( ) { } <\/em><\/strong>: tout ce qui se trouve est &#8220;dessin\u00e9&#8221; en boucle par le programme. Dans l&#8217;exemple :<br \/>\n&#8211; <em>if (mouseIsPressed)\u00a0 <\/em>si la souris est press\u00e9e (on obtient du jus de souris) le remplissage (<em>fill<\/em>) est noir (<i>0<\/i>)<br \/>\n&#8211; <em>else : <\/em>le remplissage est blanc <em>fill(255);<\/em><\/p>\n<p style=\"text-align: left;\"><em>ellipse(mouseX, mouseY, 80, 80); <\/em>la fonction ellipse dessine une ellipse (si si). Cette fonction dispose de 4 param\u00e8tres <em>(x, y, width, height) <\/em><br \/>\n<em><img loading=\"lazy\" class=\"wp-image-1848 size-full alignleft\" src=\"http:\/\/www.lyceelecorbusier.eu\/insituhacklab\/wp-content\/uploads\/sites\/9\/2015\/12\/ellipse.png\" alt=\"ellipse\" width=\"140\" height=\"106\" \/><\/em><\/p>\n<p>dans l&#8217;exemple <em>x<\/em> est \u00e9gal \u00e0 la position en x de la souris <em>mouseX<\/em>, y est \u00e9gal \u00e0 la position en y de la souris <em>mouseY<br \/>\nwidth et height =<\/em> \u00e0 80 et donc l&#8217;ellipse est un cercle !<\/p>\n<p>\u00c0 propos de la syntaxe :<br \/>\n&#8211; attention \u00e0 la casse&#8230;<br \/>\n&#8211; ne pas oublier le<strong> ;<\/strong> \u00e0 la fin des lignes&#8230; <em>createCanvas(800, 600)<strong> ;<\/strong><br \/>\n&#8211; ne pas oublier de fermer les<strong> {<\/strong> ouvertes<strong> }<\/strong><br \/>\n<\/em>En cas d&#8217;erreur un message s&#8217;affiche dans la console du navigateur<em>. <\/em>(CTRL+MAJ+J dans Chrome \/ CTRL+MAJ+K dans Firefox).<\/p>\n<h5 style=\"text-align: left;\">Modifier les valeurs comme la taille de <em>createCanvas, <\/em>les valeurs de <em>fill <\/em>entre 0 et 255, les valeurs de width et height.<\/h5>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/posts\/1836"}],"collection":[{"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1836"}],"version-history":[{"count":21,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/posts\/1836\/revisions"}],"predecessor-version":[{"id":3577,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=\/wp\/v2\/posts\/1836\/revisions\/3577"}],"wp:attachment":[{"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1836"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1836"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lyceelecorbusier.eu\/p5js\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1836"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}