0:00:00.000,0:00:02.246 On est de retour avec Winston. 0:00:02.417,0:00:05.743 Nous avons à présent une variable X et une Y pour 0:00:05.801,0:00:07.257 la position de Winston. 0:00:07.397,0:00:09.240 Donc nous pouvons bouger sur les côtés 0:00:10.075,0:00:11.741 en haut et en bas, woo! 0:00:12.088,0:00:13.328 Vraiment bien. 0:00:13.680,0:00:15.866 Maintenant, réinitialisons ces variables 0:00:16.057,0:00:19.227 avec 200 et 200 0:00:19.315,0:00:21.995 et voyons comment fonctionne ce programme. 0:00:22.553,0:00:25.763 Alors commençons ici, nous avons la variable eyeSize. 0:00:25.763,0:00:27.813 C'est utilisé pour contrôler le dimension des yeux, 0:00:27.815,0:00:29.766 parce que les yeux ont tous une largeur de 40 pixels 0:00:29.766,0:00:32.426 et une hauteur de 40 pixels. 0:00:32.470,0:00:35.437 Et puis nous avons les variables X et Y, 0:00:35.437,0:00:39.127 et elles définissent le centre du visage. 0:00:39.843,0:00:41.113 Et vous les voyez utilisés 0:00:41.113,0:00:42.729 dans cette commande ellipse ici, 0:00:42.729,0:00:44.579 qui dessine ce grand cercle jaune. 0:00:45.921,0:00:47.422 Et ici en bas, 0:00:47.422,0:00:48.617 pour les yeux, 0:00:48.617,0:00:50.427 le X et le Y sont aussi utilisés. 0:00:50.731,0:00:51.951 Et ici, 0:00:52.009,0:00:53.669 les yeux sont positionnés 0:00:54.048,0:00:55.778 relativement au centre du visage. 0:00:55.787,0:00:57.877 Donc peut-être que celui-ci est 0:00:58.026,0:00:58.996 à 50 pixels 0:00:59.293,0:01:00.933 du gauche du centre 0:01:01.528,0:01:03.428 et celui-ci est à 100 pixels 0:01:03.455,0:01:05.005 de la droite du centre. 0:01:05.149,0:01:07.829 OK. Pas mal 0:01:07.865,0:01:09.365 et c'est pourquoi nous pouvons 0:01:09.395,0:01:11.195 bouger Winston de haut en bas. 0:01:11.236,0:01:13.192 Maintenant, je veux pouvoir contrôler 0:01:13.212,0:01:15.202 plus de chose sur le visage de Winston 0:01:15.202,0:01:16.662 avec des variables 0:01:16.662,0:01:17.912 donc je veux comprendre 0:01:17.912,0:01:19.339 ce que nous pouvons, dans ce programme, 0:01:19.339,0:01:20.669 enregistrer en tant que variables 0:01:20.669,0:01:21.449 pour ce faire 0:01:21.449,0:01:22.638 je vais passer en revu 0:01:22.638,0:01:23.608 chaque ligne de code 0:01:23.622,0:01:25.122 et regarder celle que l'on appelle 0:01:25.157,0:01:27.447 des nombres codés en dur 0:01:27.658,0:01:29.308 et ces nombres qui sont 0:01:29.388,0:01:30.648 juste des nombres littéraires 0:01:30.723,0:01:33.413 non des variables ou dépendant de variables 0:01:34.277,0:01:35.377 donc commençons par ici 0:01:35.432,0:01:37.002 dans cette première ellipse 0:01:37.832,0:01:39.222 nous avons 300 et 300 0:01:39.262,0:01:41.062 pour la largeur et la hauteur 0:01:41.584,0:01:43.794 ce sont des nombres littéraires 0:01:43.794,0:01:45.114 donc faisons une variable 0:01:45.114,0:01:46.214 pour ceux-ci. 0:01:46.214,0:01:47.754 Appelons la faceSize 0:01:48.791,0:01:50.291 et enregistrons 300 0:01:50.291,0:01:53.201 maintenant nous avons juste à écrire faceSize, 0:01:53.709,0:01:55.259 faceSize 0:01:55.514,0:01:56.794 OK ? Alors continuons 0:01:56.868,0:01:58.108 et oublions les couleurs 0:01:58.156,0:02:00.076 maintenant les commandes d'ellipse sont 0:02:00.104,0:02:01.504 à la fois des variables ou 0:02:01.544,0:02:02.704 dépendant de variables 0:02:02.726,0:02:03.896 donc je vais les laisser 0:02:03.896,0:02:04.846 comme ceci pour l'instant 0:02:04.859,0:02:06.729 et prenons la commande de la bouche 0:02:07.419,0:02:09.339 qui est dépendante de X et Y 0:02:09.339,0:02:10.369 mais qui sont 0:02:10.417,0:02:11.947 juste des nombres littéraires 0:02:12.899,0:02:14.669 150 et 150 0:02:14.799,0:02:16.139 disons donc 0:02:16.223,0:02:18.953 mouthSize, c'est un bon nom, 0:02:19.026,0:02:20.476 égale 150 0:02:22.464,0:02:25.264 on va remplacer ça par mouthSize 0:02:25.301,0:02:27.481 et mouthSize 0:02:27.556,0:02:28.816 Ok, donc maintenant 0:02:28.861,0:02:30.751 nous avons les dimensions des formes 0:02:30.825,0:02:32.725 enregistrés comme des variables tout en haut, 0:02:32.773,0:02:34.543 ce qui veut dire qu'il est très simple 0:02:34.543,0:02:36.093 pour nous de changer les dimensions 0:02:36.103,0:02:36.933 comme ça, ou comme ça, 0:02:36.933,0:02:39.163 Wooooo Winston à faim ! 0:02:39.257,0:02:41.157 et peut-être maintenant, comme ceci, 0:02:41.157,0:02:42.747 Winston avait faim et 0:02:42.761,0:02:44.291 il a mangé beaucoup de Donuts 0:02:44.291,0:02:45.931 et ensuite il devient super gros 0:02:45.962,0:02:47.532 Ok bon, 0:02:47.542,0:02:48.982 il y a quelque chose 0:02:49.037,0:02:51.347 que je n'aime pas à propos du programme pour l'instant 0:02:51.863,0:02:59.303 donc si je transforme le visage en tout petit 0:02:59.404,0:03:01.064 cela commence à être drôle 0:03:01.076,0:03:03.006 parce que les yeux et la bouche 0:03:03.017,0:03:04.667 sortent du visage 0:03:04.667,0:03:06.717 et à un certain point cela ne semble 0:03:06.717,0:03:07.887 même plus être relié 0:03:07.887,0:03:08.667 au visage 0:03:08.667,0:03:10.707 ou n'est-ce plus un visage du tout ? 0:03:11.629,0:03:13.959 Bon alors ce qu'il s'est réellement passé 0:03:13.959,0:03:16.309 c'est que lorsque je change faceSize 0:03:16.309,0:03:18.299 je veux que les yeux et la bouche 0:03:18.354,0:03:21.584 Je veux que leur dimensions changent également, 0:03:21.584,0:03:23.994 donc si je change faceSize jusqu'à la moitié 0:03:24.144,0:03:27.454 je veux que la bouche soit aussi diminué de moitié 0:03:27.454,0:03:29.044 ce qui veut dire 0:03:29.519,0:03:32.589 que je veux calculer mouthSize et eyeSize 0:03:32.589,0:03:35.929 comme des fractions de faceSize 0:03:36.690,0:03:39.790 OK réinitialisons les variables 0:03:39.790,0:03:42.060 et je vais vous montrer ce à quoi je pense. 0:03:42.061,0:03:44.221 Je commence par mouthSize 0:03:44.221,0:03:45.141 donc maintenant 0:03:45.172,0:03:49.512 faceSize est égale à 300 et mouthSize est égale à 150 0:03:50.187,0:03:51.727 donc si l'on réfléchis 0:03:51.727,0:03:53.007 ils sont relatifs l'un à l'autre 0:03:53.007,0:03:55.907 disons que faceSize est deux fois plus grand 0:03:55.907,0:03:57.577 que mouthSize 0:03:57.577,0:04:00.137 ou que mouthSize est deux fois plus petit 0:04:00.137,0:04:01.357 que faceSize 0:04:01.432,0:04:03.872 et on peut écrire ce code comme ceci 0:04:04.063,0:04:08.063 une fois et demi faceSize 0:04:08.133,0:04:09.703 OK donc cette ligne de code dit 0:04:09.703,0:04:11.873 que l'on veut prendre la valeur de faceSize 0:04:11.873,0:04:13.113 la multiplier par sa moitié 0:04:13.113,0:04:15.393 et enregistrer ceci dans mouthSize 0:04:15.674,0:04:17.494 comme ça nous pourrons changer ceci 0:04:18.030,0:04:20.260 qui interprètera ce qu'est la moitié 0:04:20.273,0:04:22.353 et deviendra mouthSize 0:04:22.353,0:04:24.073 parfait ! Voilà ce que nous voulons 0:04:24.848,0:04:26.948 Maintenant eyeSize 0:04:27.268,0:04:28.908 donc faceSize est égale à 300 0:04:29.168,0:04:31.039 et eyeSize est égale à 40 0:04:31.039,0:04:33.219 donc nous avons besoins 0:04:33.219,0:04:36.639 40 divisé par 300 de faceSize 0:04:36.639,0:04:39.459 ce qui donne 0:04:39.459,0:04:41.138 4 sur 30 que nous pouvons 0:04:41.138,0:04:43.768 simplifier par 2 sur 15 0:04:44.295,0:04:45.605 donc disons que 0:04:45.609,0:04:49.609 2 sur 15 fois faceSize 0:04:50.111,0:04:50.911 (par ailleurs 0:04:50.949,0:04:52.459 si vous êtes débutants avec les fractions 0:04:52.459,0:04:54.279 et que les maths vous semblent compliqués 0:04:54.352,0:04:56.422 vous pouvez apprendre d'avantages sur les fractions 0:04:56.422,0:04:57.562 sur Khan Academy 0:04:57.562,0:04:59.562 et revenir à ce chapitre lorsque 0:04:59.562,0:05:00.442 vous vous sentirez prêts) 0:05:00.442,0:05:01.912 revenons à nos moutons 0:05:02.752,0:05:03.532 OK 0:05:03.532,0:05:06.442 donc réduisons le visage à nouveau 0:05:06.925,0:05:08.155 Haha! Regardez ! 0:05:08.155,0:05:10.015 La bouche et les yeux se redimensionnent 0:05:10.015,0:05:11.655 proportionnellement au visage 0:05:11.975,0:05:13.495 mais vous remarquerez probablement 0:05:13.495,0:05:14.875 quelque chose qui cloche 0:05:14.875,0:05:16.565 les yeux et la bouche 0:05:16.572,0:05:19.162 s'écartent toujours du visage 0:05:19.162,0:05:20.502 même s'ils sont 0:05:20.502,0:05:22.612 bien plus proportionnels. 0:05:23.206,0:05:24.906 C'est parce que nous avons toujours 0:05:24.906,0:05:26.626 des nombres codés en dur 0:05:26.626,0:05:28.396 dans les commandes des ellipses 0:05:28.396,0:05:30.376 ces nombres qui devraient en fait 0:05:30.376,0:05:32.656 être des fractions de variables. 0:05:33.148,0:05:34.578 Voilà, je vais vous montrer 0:05:34.669,0:05:37.799 pour l'ellipse de l'oeil nous avons 0:05:37.799,0:05:40.819 X moins 50 pour la position X 0:05:40.838,0:05:43.278 ce qui veut toujours dire X moins 50 0:05:43.443,0:05:45.133 même si nous modifions faceSize 0:05:45.133,0:05:46.843 en dessous de 50 pixels 0:05:46.843,0:05:48.063 et ça n'a aucun sens 0:05:48.063,0:05:49.783 car cela veut dire que l'oeil gauche 0:05:49.783,0:05:50.461 ne sera plus 0:05:50.461,0:05:52.161 dans le visage. 0:05:52.441,0:05:55.218 Donc on devrait avoir X moins une fraction 0:05:55.218,0:05:57.258 de la dimension du visage 0:05:57.278,0:05:59.218 et nous pouvons définir une fraction 0:05:59.218,0:06:00.148 de la même façon 0:06:00.148,0:06:03.898 50 relativement aux 300 d'origine 0:06:03.898,0:06:07.898 donc 50 sur 300, 5 sur 30, 1 sur 6 0:06:08.582,0:06:11.952 donc 1 sur 6 fois faceSize 0:06:12.440,0:06:14.110 et ici nous avons également 50 0:06:14.400,0:06:16.060 donc nous pouvons faire la même chose 0:06:16.060,0:06:17.360 la même ligne de code 0:06:17.360,0:06:19.140 ici nous avons 100 sur 300 0:06:19.460,0:06:20.690 qui deviendra 0:06:20.710,0:06:23.220 1/3 de faceSize 0:06:23.220,0:06:24.720 ici nous avons 60 0:06:24.720,0:06:26.080 qui finira par 0:06:26.080,0:06:28.897 1/5 de faceSize 0:06:29.267,0:06:32.087 et ici nous avons un autre 50 0:06:32.087,0:06:34.457 qui sera 1/6 de faceSize 0:06:34.457,0:06:35.727 et ici 40 0:06:35.727,0:06:38.257 qui deviendra 0:06:38.257,0:06:39.507 2 sur 15 0:06:39.507,0:06:44.937 donc 2 sur 15 faceSize 0:06:45.347,0:06:48.117 Ok réessayons 0:06:48.117,0:06:49.477 Oh regardez ça ! 0:06:49.477,0:06:51.257 Regardez ! C'est magnifique ! 0:06:51.268,0:06:52.048 Trop bien. 0:06:52.617,0:06:54.587 Ok bon récapitulons 0:06:54.587,0:06:56.117 nous avons créés cette variable 0:06:56.130,0:06:57.950 qui stocke les dimensions du visage 0:06:57.950,0:06:59.630 et qui n'enregistre qu'un nombre 0:06:59.630,0:07:01.510 et nous avons les variables mouthSize 0:07:01.510,0:07:03.350 et eyeSize 0:07:03.350,0:07:05.710 et nous les avons calculés avec des fractions 0:07:05.710,0:07:06.790 de faceSize 0:07:06.790,0:07:07.770 pour être certains 0:07:07.770,0:07:09.500 que leurs valeurs changent toujours 0:07:09.500,0:07:12.360 avec la base de celle-ci 0:07:12.514,0:07:15.104 et toutes les autres sont calculées 0:07:15.104,0:07:16.894 également sur la base de faceSize 0:07:16.894,0:07:18.454 pour être certains que cette position 0:07:18.454,0:07:19.884 à l’intérieur du visage change 0:07:19.884,0:07:22.064 si faceSize change. 0:07:22.064,0:07:23.014 Whoo! Très bien. 0:07:23.014,0:07:24.614 Donc maintenant que l'on comprend bien 0:07:24.614,0:07:25.725 comment créer des variables 0:07:25.725,0:07:27.865 qui dépendent des valeurs d'autres variables 0:07:27.865,0:07:30.375 on peut faire beaucoup plus avec nos programmes 0:07:30.375,0:07:32.365 Célébrons cela en rendant Winston énorme ! 0:07:32.365,0:07:36.781 Yeaaah ! Allez Winston !