[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.88,0:00:05.58,Default,,0000,0000,0000,,Voici le programme qui dessine Winston,\Nauquel j'ai ajouté du texte. Dialogue: 0,0:00:05.58,0:00:10.64,Default,,0000,0000,0000,,Ce que je veux faire, c'est de placer mes\NWinston en dessous de chaque texte Dialogue: 0,0:00:10.64,0:00:13.21,Default,,0000,0000,0000,,pour que cela corresponde à \Nchaque période de sa vie. Dialogue: 0,0:00:13.21,0:00:15.20,Default,,0000,0000,0000,,Mais pour l'instant, il est placé\Nun peu partout, Dialogue: 0,0:00:15.20,0:00:20.45,Default,,0000,0000,0000,,car la fonction place Winston à une\Nposition aléatoire pour faceX et faceY. Dialogue: 0,0:00:20.45,0:00:26.71,Default,,0000,0000,0000,,On veut changer ça et pourvoir indiquer\Nà la fonction à quelle position dessiner Winston. Dialogue: 0,0:00:26.71,0:00:31.30,Default,,0000,0000,0000,,Ainsi, quand on appellera la fonction, il suffira\Nd'indiquer à quelle position le dessiner, Dialogue: 0,0:00:31.30,0:00:34.46,Default,,0000,0000,0000,,comme pour les rectangles ou les ellipses. Dialogue: 0,0:00:34.46,0:00:40.46,Default,,0000,0000,0000,,OK. En fait, je veux pouvoir dessiner un Winston ici...\Net ici.... aussi ici... et le dernier là ! Dialogue: 0,0:00:40.46,0:00:44.37,Default,,0000,0000,0000,,Je ne veux plus de position aléatoire à chaque appel. Dialogue: 0,0:00:44.37,0:00:48.21,Default,,0000,0000,0000,,Pour faire ça, on va créer des paramètres\Nà notre fonction... Dialogue: 0,0:00:48.21,0:00:53.48,Default,,0000,0000,0000,,à la fois, au moment de la définition\N(tout en haut... ici) Dialogue: 0,0:00:53.48,0:00:58.03,Default,,0000,0000,0000,,et aussi au moment de l'appeler...\Nen bas...ici. Dialogue: 0,0:00:58.03,0:01:02.65,Default,,0000,0000,0000,,Dans "drawWinston()", on va lui passer \NfaceX et faceY, Dialogue: 0,0:01:02.65,0:01:09.48,Default,,0000,0000,0000,,et il pourra utiliser ces\Nvaleurs au lieu de les générer aléatoirement. Dialogue: 0,0:01:09.48,0:01:15.21,Default,,0000,0000,0000,,Commençons par voir ce qu'on va lui \Npasser comme valeurs au moment de l'appel. Dialogue: 0,0:01:15.21,0:01:18.86,Default,,0000,0000,0000,,On veut le positionner sous chaque bloc de texte. Dialogue: 0,0:01:18.86,0:01:25.13,Default,,0000,0000,0000,,Donc on va passer des valeurs qui sont proches\Ndes "x" et "y" utilisés pour le texte. Dialogue: 0,0:01:25.13,0:01:29.38,Default,,0000,0000,0000,,Probablement juste 10 pixels \Nplus bas pour le "y". Dialogue: 0,0:01:29.38,0:01:37.87,Default,,0000,0000,0000,,Le premier sera à peu près à 10 et 30,\Npuis... 200 et 30... Dialogue: 0,0:01:37.87,0:01:41.73,Default,,0000,0000,0000,,puis, 10 et 230... et enfin, 200 et 230. Dialogue: 0,0:01:41.73,0:01:49.46,Default,,0000,0000,0000,,J'ai utilisé ceux des textes\Net juste ajouté 10 au "y" pour l'avoir un peu en dessous. Dialogue: 0,0:01:49.46,0:01:52.55,Default,,0000,0000,0000,,OK. Winston, lui, n'a pas bougé ! Dialogue: 0,0:01:52.55,0:01:56.90,Default,,0000,0000,0000,,C'est parce qu'on n'a pas indiqué \Nà la fonction d'utiliser les paramètres. Dialogue: 0,0:01:56.90,0:01:59.40,Default,,0000,0000,0000,,Elle utilise donc toujours les valeurs aléatoire. Dialogue: 0,0:01:59.40,0:02:03.78,Default,,0000,0000,0000,,Donc pour lui dire de plutôt utiliser les paramètres, Dialogue: 0,0:02:03.78,0:02:09.21,Default,,0000,0000,0000,,on doit ajouter les noms des paramètres \Nentre les parenthèses... ici. Dialogue: 0,0:02:09.21,0:02:14.91,Default,,0000,0000,0000,,On va les appeler faceX et faceY... et les séparer\Npar une virgule. Dialogue: 0,0:02:14.91,0:02:21.08,Default,,0000,0000,0000,,On les appelle comme ça, car on utilise déjà ces\Nnoms dans la fonction. Dialogue: 0,0:02:21.08,0:02:24.52,Default,,0000,0000,0000,,Cela nous évite de modifier\Nle code existant. Dialogue: 0,0:02:24.52,0:02:29.33,Default,,0000,0000,0000,,Mais, même en faisant ça, \NWinston est toujours n'importe où ! Dialogue: 0,0:02:29.33,0:02:32.25,Default,,0000,0000,0000,,Si vous regarder au début du code de la fonction, Dialogue: 0,0:02:32.25,0:02:36.04,Default,,0000,0000,0000,,vous voyez qu'on écrase toujours la valeur de \NfaceX et faceY par des valeurs aléatoires ! Dialogue: 0,0:02:36.04,0:02:39.79,Default,,0000,0000,0000,,Il faut donc qu'on enlève ces deux lignes, là. Dialogue: 0,0:02:39.79,0:02:46.12,Default,,0000,0000,0000,,Et voilà ! maintenant la fonction utilise\Nles valeurs de faceX et faceY, Dialogue: 0,0:02:46.12,0:02:50.64,Default,,0000,0000,0000,,qu'on lui a passé au moment de l'appel. Dialogue: 0,0:02:50.64,0:02:54.05,Default,,0000,0000,0000,,Je n'ai pas bien positionné \Nmes Winston pour l'instant, Dialogue: 0,0:02:54.05,0:02:58.39,Default,,0000,0000,0000,,car j'ai oublié que les valeurs de "x" et "y" \Npour les textes représentent le coin supérieur gauche Dialogue: 0,0:02:58.39,0:03:03.68,Default,,0000,0000,0000,,Alors que pour le visage, \Nça représente le centre du visage de Winston. Dialogue: 0,0:03:03.68,0:03:07.43,Default,,0000,0000,0000,,Donc je vais changer ça un peu... Dialogue: 0,0:03:07.43,0:03:13.24,Default,,0000,0000,0000,,Je vais changer pas mal le "x"... et le "y" pareil...\Navec l'outil c'est plus facile... Dialogue: 0,0:03:13.24,0:03:18.74,Default,,0000,0000,0000,,Donc, ce que je fais maintenant, c'est juste changer\Nles valeurs des paramètres de ma fonction. Dialogue: 0,0:03:18.74,0:03:23.13,Default,,0000,0000,0000,,Je n'ai plus à modifier la fonction elle-même. Dialogue: 0,0:03:23.13,0:03:28.87,Default,,0000,0000,0000,,Car elle va juste utiliser les valeurs que je lui passe.\NOK ? Exactement comme avec ellipse() et rect(). Dialogue: 0,0:03:28.87,0:03:33.71,Default,,0000,0000,0000,,OK. Je les ai positionnés, mais en fait, il est trop grand. Dialogue: 0,0:03:33.71,0:03:35.96,Default,,0000,0000,0000,,Ils se superposent. Il prend trop de place. Dialogue: 0,0:03:35.96,0:03:42.24,Default,,0000,0000,0000,,Comme j'ai fais une fonction pour le dessiner,\Nje peux modifier leur taille d'un coup, Dialogue: 0,0:03:42.24,0:03:45.41,Default,,0000,0000,0000,,juste en changeant une ligne de code ! Dialogue: 0,0:03:45.41,0:03:51.13,Default,,0000,0000,0000,,Essayons de prendre la valeur 190, Yeah !\NIl va maigrir d'un coup... 190. Dialogue: 0,0:03:51.13,0:04:01.65,Default,,0000,0000,0000,,C'est pas mal ! et si je modifie encore \Nun peu leur position, ça ira mieux. Dialogue: 0,0:04:01.65,0:04:06.17,Default,,0000,0000,0000,,Cool ! Bon. \NRevoyons un peu ce que ce code fait. Dialogue: 0,0:04:06.17,0:04:09.54,Default,,0000,0000,0000,,On a définit une fonction appelée \N"drawWinston()", Dialogue: 0,0:04:09.54,0:04:15.19,Default,,0000,0000,0000,,Cette fonction accepte 2 valeurs, \Nqu'on a nommées faceX et faceY. Dialogue: 0,0:04:15.19,0:04:21.80,Default,,0000,0000,0000,,Ces valeurs sont portées par ces deux variables \Nqu'on peut utiliser dans le reste de la fonction. Dialogue: 0,0:04:21.80,0:04:25.95,Default,,0000,0000,0000,,Exactement comme si on les\Navait déclarées en haut normalement, Dialogue: 0,0:04:25.95,0:04:30.01,Default,,0000,0000,0000,,Et on peut appeler cette fonction \Noù on veut (après l'avoir déclarée) Dialogue: 0,0:04:30.01,0:04:34.56,Default,,0000,0000,0000,,et lui passer des valeurs \Ndifférentes en paramètre à chaque fois. Dialogue: 0,0:04:34.56,0:04:37.51,Default,,0000,0000,0000,,On vient de voir un truc super utile\Navec les fonctions. Dialogue: 0,0:04:37.51,0:04:40.43,Default,,0000,0000,0000,,Quand on a du code qu'on pense\Npouvoir ré-utiliser, Dialogue: 0,0:04:40.43,0:04:42.74,Default,,0000,0000,0000,,il suffit de le mettre dans une fonction. Dialogue: 0,0:04:42.74,0:04:45.12,Default,,0000,0000,0000,,Ensuite, on peut lui passer des paramètres Dialogue: 0,0:04:45.12,0:04:47.30,Default,,0000,0000,0000,,pour la personnaliser ou changer \Nson comportement. Dialogue: 0,0:04:47.30,0:04:48.91,Default,,0000,0000,0000,,C'est comme une recette. Dialogue: 0,0:04:48.91,0:04:52.69,Default,,0000,0000,0000,,Vous écrivez la recette pour un gâteau.\NMais si vous avez besoin d'en faire 4, Dialogue: 0,0:04:52.69,0:04:57.48,Default,,0000,0000,0000,,Vous n'avez pas à tout ré-inventer... \Nil suffit de tout multiplier par 4. Dialogue: 0,0:04:57.48,0:05:02.20,Default,,0000,0000,0000,,A vous de trouver le code que vous pouvez ré-utiliser !