1 00:00:00,000 --> 00:00:10,820 2 00:00:10,820 --> 00:00:13,190 >> ZAMYLA CHAN: Bonjour, et bienvenue à la solution de Scratch. 3 00:00:13,190 --> 00:00:16,490 Mon nom est Zamyla et je vais être en tête soluces pour vous cette année. 4 00:00:16,490 --> 00:00:20,340 En CS50, chaque problème posé est accompagnée d'une procédure. 5 00:00:20,340 --> 00:00:23,200 Au cours de ces procédures pas à pas, je vais aller sur problème de jeu de la semaine, explique le 6 00:00:23,200 --> 00:00:27,790 concepts nécessaires et briser le problème mis en bouchées faciles à gérer. 7 00:00:27,790 --> 00:00:31,360 >> Pour la première p-set en CS50, nous avons effectivement n'allons pas entrer dans la dactylographie et 8 00:00:31,360 --> 00:00:33,780 Code machine de choses tout à fait encore. 9 00:00:33,780 --> 00:00:37,230 Au contraire, nous allons utiliser Scratch, un programme qui nous permet d'explorer 10 00:00:37,230 --> 00:00:40,420 les concepts de programmation dans un manière visuelle et créative. 11 00:00:40,420 --> 00:00:43,260 Cette procédure va explorer concepts fondamentaux que nous utilisons 12 00:00:43,260 --> 00:00:48,360 tout au long CS50, ainsi que de servir comme un didacticiel Scratch. 13 00:00:48,360 --> 00:00:51,030 Dans chaque procédure pas à pas, je vais énumérer un ensemble des outils que vous pouvez utiliser pour le 14 00:00:51,030 --> 00:00:52,080 problème posé. 15 00:00:52,080 --> 00:00:55,970 De grandes notions du cours de réelle fonctions, il est bon et utile de 16 00:00:55,970 --> 00:00:59,770 savez ce que vous êtes équipé avant s'attaquer au problème posé. 17 00:00:59,770 --> 00:01:02,500 >> Tout d'abord, parlons de sprites. 18 00:01:02,500 --> 00:01:05,420 Lutins sont au cœur de faire projets dans Scratch. 19 00:01:05,420 --> 00:01:08,560 Chaque objet ou chaque personnage, que ce soit un chat, un chien ou un 20 00:01:08,560 --> 00:01:10,660 balle, est appelé un sprite. 21 00:01:10,660 --> 00:01:14,590 Si je veux, par exemple, deux chats dans mon projet, Je vais avoir besoin de faire deux 22 00:01:14,590 --> 00:01:19,850 sprites distincts dans Scratch, même s'ils sont absolument identiques. 23 00:01:19,850 --> 00:01:23,920 >> Chaque sprite possède des scripts associés avec cette image-objet spécifique. 24 00:01:23,920 --> 00:01:26,460 Les scripts sont ce que vous allez à construire en faisant glisser 25 00:01:26,460 --> 00:01:27,910 et laisser tomber des blocs. 26 00:01:27,910 --> 00:01:30,480 Les scripts sont des instructions qui déterminer et de définir 27 00:01:30,480 --> 00:01:33,620 comment se comporte le script. 28 00:01:33,620 --> 00:01:35,700 >> Maintenant, sprites ne sont pas seulement des images. 29 00:01:35,700 --> 00:01:39,490 Un costume de sprites détermine ce que le sprite ressemble. 30 00:01:39,490 --> 00:01:42,090 Toute sprite peut avoir plus d'un costume. 31 00:01:42,090 --> 00:01:45,680 Un peu plus tard au cours de cette procédure pas à pas je vais vous montrer comment vous pouvez avoir votre 32 00:01:45,680 --> 00:01:48,110 changer de costume sprite au cours de votre programme. 33 00:01:48,110 --> 00:01:52,010 >> Pour créer un sprite à zéro, vous pouvez soit choisir son costume initial pour 34 00:01:52,010 --> 00:01:55,700 La bibliothèque de Scratch, dessinez votre propre Scratch est construit dans l'éditeur de peinture, 35 00:01:55,700 --> 00:02:00,340 télécharger votre propre image, ou prendre une photo avec la caméra de votre ordinateur. 36 00:02:00,340 --> 00:02:03,210 Tous les sprites sont placés sur ce que nous appelons la scène. 37 00:02:03,210 --> 00:02:06,840 La scène est comme notre toile où sprites peuvent se déplacer. 38 00:02:06,840 --> 00:02:10,530 >> Même si nous pouvons avoir des multiples sprites, il ne peut y avoir une étape. 39 00:02:10,530 --> 00:02:14,050 Sinon, les stades et les sprites sont assez similaire en ce que l'étape peut 40 00:02:14,050 --> 00:02:15,530 avoir aussi des scripts. 41 00:02:15,530 --> 00:02:18,910 Scripts sur la scène sont très utiles quand vous n'avez pas un script qui 42 00:02:18,910 --> 00:02:22,500 n'est pas nécessairement concerner pas à une image-objet spécifique. 43 00:02:22,500 --> 00:02:25,620 Peut-être ce qui a trait à plusieurs rayures, ou pas du tout. 44 00:02:25,620 --> 00:02:29,050 >> C'est généralement une bonne conception de placer votre son exécution sur la scène s'ils sont 45 00:02:29,050 --> 00:02:33,250 assez générales et ne concernent pas de sprites spécifiques. 46 00:02:33,250 --> 00:02:37,240 Et tout comme les sprites ont des costumes, étapes ont décors qui peuvent changer 47 00:02:37,240 --> 00:02:38,670 au cours de votre programme. 48 00:02:38,670 --> 00:02:42,670 Et vous pouvez dessiner vos propres, télécharger une l'image, prendre une photo, ou utilisez le 49 00:02:42,670 --> 00:02:46,330 bibliothèque de Scratch de décors. 50 00:02:46,330 --> 00:02:50,140 La scène et sprites peuvent également jouer sons provenant de la bibliothèque de zéro, ou 51 00:02:50,140 --> 00:02:51,390 vous pouvez télécharger et enregistrer votre propre. 52 00:02:51,390 --> 00:02:53,920 53 00:02:53,920 --> 00:02:57,000 >> Pour commencer votre programme de Scratch vous aurez besoin de cliquer sur le drapeau vert à l' 54 00:02:57,000 --> 00:02:59,530 coin supérieur droit de la fenêtre de la scène. 55 00:02:59,530 --> 00:03:02,810 Mais si vous ne connectez rien à ce bloc ici, alors rien n'est 56 00:03:02,810 --> 00:03:07,290 en fait va se passer parce que votre sprites et la scène doivent être racontées 57 00:03:07,290 --> 00:03:11,090 pour répondre à l'événement de l' drapeau vert est cliqué. 58 00:03:11,090 --> 00:03:14,340 Ainsi, vous aurez besoin d'attacher des blocs à l' rainure au fond de la verdure 59 00:03:14,340 --> 00:03:19,640 drapeau, puis le programme sera exécuté ces actions lorsque vous démarrez 60 00:03:19,640 --> 00:03:21,750 votre programme. 61 00:03:21,750 --> 00:03:23,450 >> Eh bien, ce qui vient après? 62 00:03:23,450 --> 00:03:26,360 Eh bien, Scratch a beaucoup de blocs pour que vous puissiez utiliser, et vous pouvez 63 00:03:26,360 --> 00:03:27,730 même faire votre propre. 64 00:03:27,730 --> 00:03:32,440 Vous verrez trois onglets, les scripts, Les costumes et les sons. 65 00:03:32,440 --> 00:03:36,800 Sous l'étiquette de scripts sont des catégories des états. 66 00:03:36,800 --> 00:03:39,380 Les déclarations sont facilement organisé par la couleur. 67 00:03:39,380 --> 00:03:45,000 Vous avez des actions liées à la circulation, sonore, les regards, et ainsi de suite. 68 00:03:45,000 --> 00:03:47,640 Même si vous avez d'autres blocs de construction autour de vos déclarations, c'est l' 69 00:03:47,640 --> 00:03:51,650 déclarations qui aideront les sprites ou l'étape de faire quelque chose, alors que 70 00:03:51,650 --> 00:03:55,990 autres blocs aideront à déterminer quand les faire. 71 00:03:55,990 --> 00:03:59,400 >> Disons que vous créez votre très premier projet et vous voulez seulement le 72 00:03:59,400 --> 00:04:02,620 chat à miauler sous certaines conditions circonstances. 73 00:04:02,620 --> 00:04:06,070 Pour mettre en œuvre, nous pouvons prendre avantage des booléens. 74 00:04:06,070 --> 00:04:10,470 Ce sont des expressions qui évaluent soit vraie ou fausse. 75 00:04:10,470 --> 00:04:14,960 Dans Scratch ceux-ci sont identifiés par l' des angles à la fin des blocs. 76 00:04:14,960 --> 00:04:18,850 Vous avez une variété de différents types des booléens tels que la souris 77 00:04:18,850 --> 00:04:23,340 étant enfoncé, ne 2 plus 2 assimilent à 5, ou est l'utilisateur en appuyant 78 00:04:23,340 --> 00:04:26,750 vers le bas une certaine touche du clavier? 79 00:04:26,750 --> 00:04:29,330 >> Maintenant, vous ne pouvez pas utiliser ces booléens seul. 80 00:04:29,330 --> 00:04:32,380 Vous aurez besoin de les combiner avec ce que nous appelons conditions. 81 00:04:32,380 --> 00:04:36,250 blocs de condition peuvent être trouvés dans les instructions de contrôle d'orange. 82 00:04:36,250 --> 00:04:39,390 Conditions ont idéalement un peu espace réservé qui montre la forme de 83 00:04:39,390 --> 00:04:41,410 le bloc que vous avez besoin à mettre dedans. 84 00:04:41,410 --> 00:04:44,960 Donc, selon le contexte de la situation, vous pouvez choisir un booléen 85 00:04:44,960 --> 00:04:47,210 et le placer à l'intérieur de votre condition. 86 00:04:47,210 --> 00:04:50,450 Et mettez ensemble, vous avez une instruction conditionnelle. 87 00:04:50,450 --> 00:04:53,890 Une fois que vous mettez à l'intérieur des déclarations qui bloquer vous avez une structure mise en place 88 00:04:53,890 --> 00:04:57,510 où une fois un certain état est remplie, vous exécutez ensuite ceux 89 00:04:57,510 --> 00:05:00,330 déclarations. 90 00:05:00,330 --> 00:05:04,460 >> Un des avantages des ordinateurs est la grande puissance et la vitesse à laquelle ils 91 00:05:04,460 --> 00:05:06,960 peut exécuter les processus répétitifs. 92 00:05:06,960 --> 00:05:10,110 Au lieu de, disons, la répétition d'une instruction à plusieurs reprises et plus 93 00:05:10,110 --> 00:05:14,080 encore et fait taper que sur, ou dans ce cas, en faisant glisser et en déposant 94 00:05:14,080 --> 00:05:19,090 et glisser-déposer, ce que nous pouvez faire est d'encapsuler dans une boucle. 95 00:05:19,090 --> 00:05:23,220 >> Les boucles peuvent être utilisés pour exécuter soit choses à l'infini avec une boucle pour toujours, 96 00:05:23,220 --> 00:05:25,100 ou pour un nombre déterminé de fois. 97 00:05:25,100 --> 00:05:30,930 Par exemple, répéter la déclaration, dire hi, 10 fois, ou peut-être jusqu'à un certain 98 00:05:30,930 --> 00:05:32,970 condition est vraie. 99 00:05:32,970 --> 00:05:36,990 Et avec cette Répétez l'opération jusqu'à bloquer voir que Scratch insinue que 100 00:05:36,990 --> 00:05:41,510 vous aurez besoin de placer un booléen en la répétition Jusqu'à bloc pour faire un 101 00:05:41,510 --> 00:05:44,370 instruction conditionnelle. 102 00:05:44,370 --> 00:05:48,410 >> Maintenant, nous savons que nous pouvons encapsuler processus répétitifs à l'intérieur de boucles, 103 00:05:48,410 --> 00:05:52,990 de sorte que vous pouvez voir pourquoi quelque chose comme ce ne serait pas idéal. 104 00:05:52,990 --> 00:05:55,380 C'est super long, il n'a tout simplement la même chose encore et encore 105 00:05:55,380 --> 00:05:57,670 encore une fois, 10 fois, en fait. 106 00:05:57,670 --> 00:06:02,450 Il se déplace 10 étapes, dit bonjour, Déplacer de 10 étapes, dit bonjour. 107 00:06:02,450 --> 00:06:05,232 Mais avec l'aide de boucles nous peut corriger ce un peu. 108 00:06:05,232 --> 00:06:07,230 Voyez comment cela est beaucoup mieux. 109 00:06:07,230 --> 00:06:11,400 C'est plus court, il est plus petit et il remplit la même chose. 110 00:06:11,400 --> 00:06:13,560 >> Passant à des variables. 111 00:06:13,560 --> 00:06:16,810 Les variables sont essentiellement contenants pour les valeurs. 112 00:06:16,810 --> 00:06:20,060 Dans Scratch, ces types de valeurs peuvent être soit des mots ou ils peuvent être 113 00:06:20,060 --> 00:06:23,460 nombres, des valeurs que nous avoir le contrôle. 114 00:06:23,460 --> 00:06:26,640 Dans ce premier bloc, nous avons une variable de texte contenant l' 115 00:06:26,640 --> 00:06:28,460 valeur, Bonjour tout le monde. 116 00:06:28,460 --> 00:06:32,010 Dans le deuxième exemple, il est supposé que nous avons déjà une variable nommée 117 00:06:32,010 --> 00:06:35,870 Compteur et nous incrémentation par trois. 118 00:06:35,870 --> 00:06:39,500 Et puis, dans le dernier exemple, nous voyons un exemple de variables étant utilisées 119 00:06:39,500 --> 00:06:41,290 à l'intérieur de conditions. 120 00:06:41,290 --> 00:06:47,210 Dans ce bloc, nous demandons si la variable Le compteur est inférieur à zéro. 121 00:06:47,210 --> 00:06:51,030 >> Maintenant, lorsque vous créez une variable que vous avez de décider si vous faites le 122 00:06:51,030 --> 00:06:54,810 variable disponible pour tous les sprites dans votre programme de Scratch, ou 123 00:06:54,810 --> 00:06:58,610 juste pour les sprites spécifiques sélectionnés quand vous faites la variable. 124 00:06:58,610 --> 00:07:01,010 Et cela est très important décision à prendre. 125 00:07:01,010 --> 00:07:04,780 Il revient à ce champ vous la variable doit avoir. 126 00:07:04,780 --> 00:07:09,120 >> Un exemple de portée locale serait un variables pour un seul sprite spécifique, 127 00:07:09,120 --> 00:07:13,240 ce qui signifie que seul ce serait sprite être capable de voir ou de le modifier. 128 00:07:13,240 --> 00:07:17,570 Si vous constatez une variable globale portée en sélectionnant pour tous 129 00:07:17,570 --> 00:07:20,910 sprites, alors cela signifie que la scène, ainsi que tous les sprites, 130 00:07:20,910 --> 00:07:23,130 sera en mesure de voir, modifier, et l'accès que 131 00:07:23,130 --> 00:07:25,290 variable que vous avez créé. 132 00:07:25,290 --> 00:07:29,370 Et en termes de design, il est préférable d' choisir portée locale chaque fois que vous le pouvez 133 00:07:29,370 --> 00:07:32,390 de sorte que tout le reste des sprites et la scène n'ont pas à s'inquiéter 134 00:07:32,390 --> 00:07:33,915 garder la trace de cette variable. 135 00:07:33,915 --> 00:07:36,910 136 00:07:36,910 --> 00:07:40,380 >> Vous pouvez avoir deux variables d' le même nom pour différents sprites 137 00:07:40,380 --> 00:07:42,320 longtemps que ce sont des variables locales. 138 00:07:42,320 --> 00:07:46,620 Sprite un, un chat peut avoir une variable Nom du compteur, et sprite deux, un chien, 139 00:07:46,620 --> 00:07:49,110 peut aussi avoir une variable nommée Contrer autant que ces 140 00:07:49,110 --> 00:07:50,620 sont tous deux des variables locales. 141 00:07:50,620 --> 00:07:53,290 Parce que la portée de la variable ne s'étend pas au reste de l' 142 00:07:53,290 --> 00:07:56,940 programme, et aucun des autres sprites ou le stade va se confondre. 143 00:07:56,940 --> 00:07:59,850 144 00:07:59,850 --> 00:08:04,830 >> Plus tôt, j'ai mentionné le point d'entrée, le drapeau vert quand bloc cliqué. 145 00:08:04,830 --> 00:08:07,510 Ce bloc et l'accompagnement déclarations sont essentiellement disent 146 00:08:07,510 --> 00:08:11,710 vos sprites ou la scène, OK, lorsque le drapeau vert est cliqué, ce n'est 147 00:08:11,710 --> 00:08:13,250 ce que vous devriez faire. 148 00:08:13,250 --> 00:08:17,000 Mais ce n'est pas le seul événement qui sprites et la scène peuvent répondre. 149 00:08:17,000 --> 00:08:21,520 Nous avons, par exemple, un événement pour quand une touche du clavier est enfoncée. 150 00:08:21,520 --> 00:08:25,335 Vous pouvez en fait choisir les lettres A à Z, de zéro à neuf ou l' 151 00:08:25,335 --> 00:08:26,265 touches fléchées. 152 00:08:26,265 --> 00:08:30,590 >> Il ya d'autres événements, aussi, comme si votre sprite est cliqué. 153 00:08:30,590 --> 00:08:33,770 Lorsque vous démarrez avec des blocs d'événements comme ceux-ci, vous remarquerez une tendance. 154 00:08:33,770 --> 00:08:37,440 Ils ont tous un seul groupe sur le inférieure et une supérieure lisse, qui 155 00:08:37,440 --> 00:08:40,530 indique que rien au-dessus se fixe à ce bloc. 156 00:08:40,530 --> 00:08:43,000 Vous construisez le cadre de ces événements blocs et construire vers le bas. 157 00:08:43,000 --> 00:08:45,520 158 00:08:45,520 --> 00:08:49,750 >> Maintenant, qu'est-ce qui se passe si nous voulons un événement de se produire, par exemple, quand un chat est 159 00:08:49,750 --> 00:08:52,010 toucher une certaine partie de la phase? 160 00:08:52,010 --> 00:08:55,850 Nous n'avons en fait pas tout intégré événement pour signifier que, si ce que nous allons 161 00:08:55,850 --> 00:08:57,990 avoir à faire est de créer notre propre événement. 162 00:08:57,990 --> 00:09:00,240 Et c'est ce qu'on appelle la radiodiffusion. 163 00:09:00,240 --> 00:09:03,480 >> Ainsi, lorsque vous souhaitez signaler qu'un certain événement s'est produit, alors vous 164 00:09:03,480 --> 00:09:07,810 utiliser un appelé diffusion noir, qui se trouve dans l'onglet de configuration. 165 00:09:07,810 --> 00:09:11,240 Il vous tapez le nom de l' Si vous voulez diffuser, et 166 00:09:11,240 --> 00:09:14,290 alors quel sprite ou étape peut réagir à ce que 167 00:09:14,290 --> 00:09:16,260 diffuser si vous le souhaitez. 168 00:09:16,260 --> 00:09:20,560 L'Quand je reçois bloc raconte l' sprites quoi faire quand ils sont 169 00:09:20,560 --> 00:09:23,710 notifié que votre commande événement s'est produit. 170 00:09:23,710 --> 00:09:27,000 Alors, n'oubliez pas que chaque fois que vous diffusez un événement, c'est avec l' 171 00:09:27,000 --> 00:09:31,130 étant entendu que l'un de l' sprites ou le stade va 172 00:09:31,130 --> 00:09:35,440 recevoir cet événement et à y répondre. 173 00:09:35,440 --> 00:09:38,840 >> Maintenant, le dernier concept avant que nous obtenions à un exemple réel d'un Scratch 174 00:09:38,840 --> 00:09:41,360 programme, c'est le concept de threads. 175 00:09:41,360 --> 00:09:43,780 C'est alors que votre ordinateur est l'exécution simultanée 176 00:09:43,780 --> 00:09:45,790 processus en même temps. 177 00:09:45,790 --> 00:09:47,960 Et je suis sûr que nous avons tous été pris avantage de cela. 178 00:09:47,960 --> 00:09:50,900 Comme surfer sur le Web tout en écouter de la musique. 179 00:09:50,900 --> 00:09:54,160 L'ordinateur peut exécuter plusieurs choses en même temps. 180 00:09:54,160 --> 00:09:56,970 >> Dans cet exemple ici, ces deux scripts peuvent être utilisés pour 181 00:09:56,970 --> 00:09:58,430 Même sprite exacte. 182 00:09:58,430 --> 00:10:02,870 Le bloc de point d'entrée, si le drapeau vert Cliqué, est utilisé plusieurs fois, mais 183 00:10:02,870 --> 00:10:04,990 ce sont deux scripts distincts. 184 00:10:04,990 --> 00:10:08,870 En effet, le drapeau vert cliqué bloc sera probablement l'un des plus 185 00:10:08,870 --> 00:10:11,340 blocs populaires dans votre programme. 186 00:10:11,340 --> 00:10:14,550 Ici, nous voyons que lorsque le drapeau vert est cliqué, il ya un processus en cours 187 00:10:14,550 --> 00:10:16,450 sur, aussi bien que l'autre. 188 00:10:16,450 --> 00:10:19,760 Alors Scratch sera effectivement exécuter ces deux à la même heure. 189 00:10:19,760 --> 00:10:23,850 Et sachant que vous pouvez en fait avoir plus d'un point d'entrée, même si 190 00:10:23,850 --> 00:10:27,070 c'est le même point d'entrée, qui va pour être vraiment utile si vous voulez 191 00:10:27,070 --> 00:10:31,340 tâches distinctes séparées les uns des autres. 192 00:10:31,340 --> 00:10:31,920 >> Très bien. 193 00:10:31,920 --> 00:10:35,640 Alors, maintenant que nous avons couvert l'ensemble de ces concepts, prenons un exemple. 194 00:10:35,640 --> 00:10:38,720 J'ai fait une série de programmes de grattage, essayez donc de suivre pendant que nous 195 00:10:38,720 --> 00:10:40,050 faire un petit match. 196 00:10:40,050 --> 00:10:44,400 Commençons par l'ouverture Hungry Dino zéro. 197 00:10:44,400 --> 00:10:47,460 >> Disons cliquez sur le drapeau vert pour commencer et voir ce qu'il fait. 198 00:10:47,460 --> 00:10:52,580 Nous avons un sprite de bug qui se déplace pour un quelques étapes, remet à une certaine hauteur, et 199 00:10:52,580 --> 00:10:54,270 puis recule. 200 00:10:54,270 --> 00:10:55,950 Et puis nous avons un dino sprite. 201 00:10:55,950 --> 00:10:59,740 En appuyant sur les touches fléchées, je me déplace le sprite dino autour, faisant tourner 202 00:10:59,740 --> 00:11:01,310 et faire pivoter. 203 00:11:01,310 --> 00:11:04,170 Cela peut être assez amusant, mais il n'y a pas beaucoup 204 00:11:04,170 --> 00:11:05,210 scripts de ce programme. 205 00:11:05,210 --> 00:11:07,120 Nous pouvons certainement ajouter à cela. 206 00:11:07,120 --> 00:11:09,880 207 00:11:09,880 --> 00:11:13,705 >> Par exemple, lorsque le dino se déplace, il peut effectivement descendre l'écran et 208 00:11:13,705 --> 00:11:15,590 presque disparaître à partir du site. 209 00:11:15,590 --> 00:11:18,900 Nous voulons changer cela parce que nous ne veulent pas le dino de s'échapper. 210 00:11:18,900 --> 00:11:24,240 Alors arrêtons notre script avec le rouge drapeau et puis éditer les scripts dino. 211 00:11:24,240 --> 00:11:28,030 Notez que ce script particulier a une boucle infinie, qui se termine par un 212 00:11:28,030 --> 00:11:29,350 bord droit. 213 00:11:29,350 --> 00:11:31,060 Il n'a pas de rainure au fond. 214 00:11:31,060 --> 00:11:33,820 Et cela a un sens de l' nom, une boucle infinie. 215 00:11:33,820 --> 00:11:37,300 C'est l'exécution de quelque chose d'infiniment et ne finira jamais. 216 00:11:37,300 --> 00:11:42,150 Il s'agit donc d'une excellente occasion à introduire un fil. 217 00:11:42,150 --> 00:11:42,880 >> Très bien. 218 00:11:42,880 --> 00:11:44,710 Donc, nous allons ajouter un autre script. 219 00:11:44,710 --> 00:11:52,583 Je vais commencer par cette entrée moment, quand drapeau vert cliqué. 220 00:11:52,583 --> 00:11:55,510 221 00:11:55,510 --> 00:11:58,530 Et je tiens à vérifier en permanence si le dino va être 222 00:11:58,530 --> 00:12:00,460 toucher le bord. 223 00:12:00,460 --> 00:12:04,513 Dans la motion il ya un petit bloc soignée cela dit, si au rebond Edge. 224 00:12:04,513 --> 00:12:07,200 225 00:12:07,200 --> 00:12:10,700 Et si nous voulons continuellement exécuter cette. 226 00:12:10,700 --> 00:12:13,470 >> Que cette déclaration ne fait que vérifie si l'image-objet est sur le bord de l' 227 00:12:13,470 --> 00:12:15,440 scène, et rebondit si elle est. 228 00:12:15,440 --> 00:12:19,300 Et parce que l'utilisateur peut toujours déplacer le dino, nous voulons trouver une sorte de 229 00:12:19,300 --> 00:12:24,330 boucle qui nous permet de continuellement exécuter cette instruction. 230 00:12:24,330 --> 00:12:27,820 Regarder sous contrôle, nous allons choisir la boucle pour toujours. 231 00:12:27,820 --> 00:12:31,070 Donc, nous allons glisser que dans le son dino, puis 232 00:12:31,070 --> 00:12:34,250 Ajouter si Le rebond Edge. 233 00:12:34,250 --> 00:12:35,500 Et puis nous allons tester notre programme. 234 00:12:35,500 --> 00:12:38,720 235 00:12:38,720 --> 00:12:43,310 >> Ainsi, le bug se déplace comme d'habitude, et alors si nous testons notre nouveau script par 236 00:12:43,310 --> 00:12:46,150 déplacer notre dino du bord, nous voyons qu'il ne peut pas 237 00:12:46,150 --> 00:12:47,350 échapper à la scène plus. 238 00:12:47,350 --> 00:12:49,850 Il rebondit tout de suite. 239 00:12:49,850 --> 00:12:53,600 Maintenant, vous pourriez vous demander pourquoi le dino rebonds, mais pas le bug. 240 00:12:53,600 --> 00:12:57,150 Eh bien, c'est parce que nous avons écrit notre nouveau script dans le son dino 241 00:12:57,150 --> 00:12:58,050 et non pas les bugs. 242 00:12:58,050 --> 00:13:01,410 Ainsi, le bug ne sera pas écouter la instructions nous ont donné le dino. 243 00:13:01,410 --> 00:13:04,370 244 00:13:04,370 --> 00:13:04,980 >> Très bien. 245 00:13:04,980 --> 00:13:06,950 Donc, nous allons ajouter quelque chose de nouveau maintenant. 246 00:13:06,950 --> 00:13:12,690 Si vous allez à l'onglet Costumes vous verrez que les différents costumes que 247 00:13:12,690 --> 00:13:15,570 sont préchargés avec votre sprite sélectionné si vous choisissez l'un de l' 248 00:13:15,570 --> 00:13:16,800 bibliothèque de Scratch. 249 00:13:16,800 --> 00:13:20,420 Il ya ce mignon petit dino Chomp costume, nous allons donc mettre en œuvre le dino 250 00:13:20,420 --> 00:13:24,960 ronge quand nous presse, dire, la touche Espace. 251 00:13:24,960 --> 00:13:26,780 >> Retour aux scripts dino. 252 00:13:26,780 --> 00:13:30,070 Dans ce script ici, je suis déjà vérifier dans la boucle pour toujours si 253 00:13:30,070 --> 00:13:34,170 certaines touches sont enfoncées et en déplaçant le dino en conséquence. 254 00:13:34,170 --> 00:13:38,490 S'ils flèche gauche est enfoncée, le dino tourne dans le sens antihoraire. 255 00:13:38,490 --> 00:13:41,850 Si la flèche de droite est enfoncée, le dino tourne dans le sens horaire. 256 00:13:41,850 --> 00:13:45,580 Donc, si la flèche du haut est enfoncée, puis le dino progresse vers l'avant. 257 00:13:45,580 --> 00:13:48,940 Nous pouvons simplement ajouter au script au lieu de ajoutant un bassin séparé parce que cette 258 00:13:48,940 --> 00:13:53,660 est déjà en vérifiant le thème de qui touche pressée. 259 00:13:53,660 --> 00:13:56,830 >> Ajoutons-en une qui vérifie la touche Espace enfoncée. 260 00:13:56,830 --> 00:14:00,000 Ces blocs ici, parcourez pour les touches sont pressées. 261 00:14:00,000 --> 00:14:03,040 Ils sont tous dans le bleu lumineux, de sorte Allons à la détection bleu vif 262 00:14:03,040 --> 00:14:05,150 déclarations et regarder autour. 263 00:14:05,150 --> 00:14:07,240 Voici un bloc de presse Spaced Key. 264 00:14:07,240 --> 00:14:12,860 Donc, ce que nous voulons faire, c'est avoir le dino passer à son abattant costume 265 00:14:12,860 --> 00:14:17,760 si, et seulement si, l'espace touche est appuyée. 266 00:14:17,760 --> 00:14:19,365 >> Donc nous allons imiter la structure ici. 267 00:14:19,365 --> 00:14:24,760 268 00:14:24,760 --> 00:14:28,270 Maintenant, le changement de costume a à voir avec comment le dino a l'air si nous irons à 269 00:14:28,270 --> 00:14:29,330 Regardez déclaration. 270 00:14:29,330 --> 00:14:34,300 Et bien sûr, nous avons un commutateur Costume de Dino Chomp. 271 00:14:34,300 --> 00:14:37,710 Maintenant, quand nous chomp bas, nous ne voulons pas le dino être ronge à jamais, 272 00:14:37,710 --> 00:14:40,630 Ajoutons donc une déclaration indiquant pour revenir. 273 00:14:40,630 --> 00:14:50,870 274 00:14:50,870 --> 00:14:55,335 Il va passer costumes genre de rapidement, cependant, parce que dans les états de grattage 275 00:14:55,335 --> 00:14:59,230 exécutera dos à dos vraiment rapidement, presque instantanément. 276 00:14:59,230 --> 00:15:03,390 Allons donc au contrôle et ensuite faire le dino pause pour un peu en attendant 277 00:15:03,390 --> 00:15:07,420 une seconde après qu'il mastique bruyamment vers le bas. 278 00:15:07,420 --> 00:15:11,140 >> Maintenant, nous allons éditer le sprite de bug. 279 00:15:11,140 --> 00:15:15,650 Le sprite de bug s'avance cinq étapes a au total cinq fois après une 280 00:15:15,650 --> 00:15:17,520 de silence moment. 281 00:15:17,520 --> 00:15:21,150 Dans le bloc haut ici le bug se place à une certaine 282 00:15:21,150 --> 00:15:23,510 coordonnée x valeur. 283 00:15:23,510 --> 00:15:27,160 Pour trouver les coordonnées que vous pouvez réellement la souris sur l'écran et 284 00:15:27,160 --> 00:15:30,880 puis dans le coin inférieur de l'étage fenêtre les coordonnées mettra à jour si 285 00:15:30,880 --> 00:15:33,760 vous pouvez profiter de cette pratique proposera de mettre en œuvre les coordonnées 286 00:15:33,760 --> 00:15:35,950 que vous voulez. 287 00:15:35,950 --> 00:15:40,990 Et, dans cette déclaration ici, nous chargeons le bug de commencer à la même 288 00:15:40,990 --> 00:15:45,160 x valeur à chaque fois, mais de choisir un au hasard hauteur pour le bug qui reste 289 00:15:45,160 --> 00:15:47,900 séjours dans les limites de l'étage. 290 00:15:47,900 --> 00:15:52,880 >> Voyons ici que je profite de la diffusion de l'événement dans Scratch. 291 00:15:52,880 --> 00:15:57,450 Ce gestionnaire d'événements est appelé New Bug1. 292 00:15:57,450 --> 00:16:00,670 Donc, chaque fois que le bug reçoit l'événement New Bug1, 293 00:16:00,670 --> 00:16:02,180 il va exécuter l'instruction. 294 00:16:02,180 --> 00:16:05,150 Ainsi, après qu'il se déplace vers l'avant son ensemble nombre de fois, il fait 295 00:16:05,150 --> 00:16:08,480 diffuse l'événement New bug1. 296 00:16:08,480 --> 00:16:10,410 >> Mais que diriez-vous nous changeons ce script un peu? 297 00:16:10,410 --> 00:16:13,090 Actuellement, nous avons le bug déplacer cinq étapes. 298 00:16:13,090 --> 00:16:15,660 Ce n'est pas beaucoup, un total de cinq fois. 299 00:16:15,660 --> 00:16:19,630 Nous ne savons pas vraiment combien de fois allez- être nécessaire jusqu'à ce que le bug atteint, 300 00:16:19,630 --> 00:16:23,310 dire la fin de l'écran, nous allons donc rendre le mais atteindre la fin de l' 301 00:16:23,310 --> 00:16:27,650 écran, mais utiliser une sorte d'autre construction. 302 00:16:27,650 --> 00:16:30,820 >> Je vais séparer cela parce que nous allons changer quelques petites choses. 303 00:16:30,820 --> 00:16:35,480 Pour supprimer des blocs à partir de zéro vous faites glisser les blocs à l' 304 00:16:35,480 --> 00:16:39,210 à gauche, puis relâchez. 305 00:16:39,210 --> 00:16:40,060 Et il est supprimé. 306 00:16:40,060 --> 00:16:42,520 Si vous décidez que vous n'avez pas Voulez-vous le supprimer, vous pouvez 307 00:16:42,520 --> 00:16:44,510 allez dans Edition et Undelete. 308 00:16:44,510 --> 00:16:46,960 Mais nous ne voulons débarrasser de ce bloc. 309 00:16:46,960 --> 00:16:51,820 >> Ce que nous voulons faire maintenant est de passer, disons, 50 étapes et une pause d'une seconde, et 310 00:16:51,820 --> 00:16:55,190 Répétez jusqu'à ce que nous touchons l'extrémité de l'écran. 311 00:16:55,190 --> 00:17:00,110 Nous allons donc utiliser une boucle qui nous permet d' répéter un processus jusqu'à ce qu'un certain 312 00:17:00,110 --> 00:17:04,990 condition est remplie, le bien nommé Répéter jusqu'à. 313 00:17:04,990 --> 00:17:11,280 >> Ce qui se passe à l'intérieur de l'état d'une répétition Jusqu'au? 314 00:17:11,280 --> 00:17:13,859 Quelque chose qui nous dit si l' bug touche le bord de la 315 00:17:13,859 --> 00:17:17,490 écran, ce qui va être en vertu les états de détection. 316 00:17:17,490 --> 00:17:20,630 Voici ce Boolean, Toucher. 317 00:17:20,630 --> 00:17:24,359 Et vous pouvez choisir ici quel vous voulez vérifier. 318 00:17:24,359 --> 00:17:28,750 Donc, nous allons sélectionner Front Touchant et ajoutons cette instruction conditionnelle arrière po 319 00:17:28,750 --> 00:17:34,230 320 00:17:34,230 --> 00:17:38,220 >> Alors maintenant, si nous regardons notre bug, ça va déplacer de nouveau une fois qu'elle touche 321 00:17:38,220 --> 00:17:39,470 le bord de la scène. 322 00:17:39,470 --> 00:17:43,100 323 00:17:43,100 --> 00:17:43,810 Grand. 324 00:17:43,810 --> 00:17:47,440 Nous avons terminé avec Hungry Dino zéro, nous allons donc ouvrir Hungry Dino One. 325 00:17:47,440 --> 00:17:57,200 326 00:17:57,200 --> 00:18:00,110 Un peu comme une émission de cuisine, j'ai ajouté un peu plus de fonctionnalités. 327 00:18:00,110 --> 00:18:04,380 Par exemple, vous verrez que le bug est effectivement glissant tout simplement maintenant 328 00:18:04,380 --> 00:18:05,910 par opposition à la précédente. 329 00:18:05,910 --> 00:18:08,500 Sous mouvement il ya cette glisser déclaration. 330 00:18:08,500 --> 00:18:17,200 Maintenant, le bug glisse 70 unités à l' droit de son exposition actuelle, mais 331 00:18:17,200 --> 00:18:20,060 reste à la même position y ici. 332 00:18:20,060 --> 00:18:25,440 Et nous pouvons maintenant avoir un dino ronge que nous avons mis en avant. 333 00:18:25,440 --> 00:18:29,330 >> Mais, ce programme n'est pas appelé Hungry Dion pour rien si nous allons avoir l' 334 00:18:29,330 --> 00:18:32,390 dino mange le bug. 335 00:18:32,390 --> 00:18:36,850 Comment pourrions-nous dire le bug, ou raconter l' dino, qu'il a abattu? 336 00:18:36,850 --> 00:18:39,310 Comment pourrions-nous communiquer cet événement? 337 00:18:39,310 --> 00:18:44,520 Eh bien, nous savons que lorsque nous passons le costume pour le dino au dino Chomp 338 00:18:44,520 --> 00:18:45,990 que nous avons chomped bas. 339 00:18:45,990 --> 00:18:49,250 Et dire que nous voulons que le bug de disparaître une fois qu'il a mangé. 340 00:18:49,250 --> 00:18:52,510 Eh bien, nous allons devoir vérifier si le bug a été chomped sur et 341 00:18:52,510 --> 00:18:56,440 communiquer au bug que cela va avoir de cacher ou de disparaître de l'écran 342 00:18:56,440 --> 00:18:59,280 une fois qu'il a été chomped bas. 343 00:18:59,280 --> 00:19:02,980 >> Donc ce genre de concept, ce genre de outil que nous pouvons utiliser pour avoir le dino 344 00:19:02,980 --> 00:19:05,650 communiquer au bug qui il a chomped bas? 345 00:19:05,650 --> 00:19:07,120 Radiodiffusion. 346 00:19:07,120 --> 00:19:13,634 Donc nous allons aller à des événements et ajouter un événement à diffuser. 347 00:19:13,634 --> 00:19:14,884 Chomp. 348 00:19:14,884 --> 00:19:19,360 349 00:19:19,360 --> 00:19:20,290 OK. 350 00:19:20,290 --> 00:19:24,380 Mais rappelez-vous qu'une fois que nous diffusons quelque chose que nous devons aussi 351 00:19:24,380 --> 00:19:25,660 recevoir cet événement. 352 00:19:25,660 --> 00:19:29,240 Alors, qui sprite diffusera Chomp? 353 00:19:29,240 --> 00:19:35,640 Eh bien, nous allons avoir le dino le faire quand la touche est pressée de l'espace. 354 00:19:35,640 --> 00:19:38,730 >> Ajoutons un bloc de recevoir Chomp. 355 00:19:38,730 --> 00:19:42,740 Maintenant, quand le dino descend juste sur un espace vide que nous ne voulons pas le bug 356 00:19:42,740 --> 00:19:47,090 à réagir à ce qu'au total, seulement si l' dino touchait le mais à l'époque 357 00:19:47,090 --> 00:19:49,870 du Chomp-nous réellement faire quelque chose. 358 00:19:49,870 --> 00:19:54,020 Donc, nous allons utiliser la condition Si, en raison Nous vérifions si quelque chose est 359 00:19:54,020 --> 00:19:56,380 vrai ou non. 360 00:19:56,380 --> 00:19:59,460 >> Maintenant, si nous revenons à détection, puis nous pouvons utiliser cette Touching 361 00:19:59,460 --> 00:20:02,530 bloquer et sélectionner Dino. 362 00:20:02,530 --> 00:20:08,550 Puis, sous Looks, nous trouvons cette Masquer bloc qui va faire le gros bug 363 00:20:08,550 --> 00:20:09,845 disparaître de la scène. 364 00:20:09,845 --> 00:20:15,570 365 00:20:15,570 --> 00:20:18,470 >> Nous ferons cacher, mais nous faisons vouloir un autre bug, non? 366 00:20:18,470 --> 00:20:19,850 Notre dino a faim. 367 00:20:19,850 --> 00:20:22,700 Donc, nous voulons lui donner une autre bug de chasse. 368 00:20:22,700 --> 00:20:31,130 Donc, nous allons également diffusé l'événement New Bug1. 369 00:20:31,130 --> 00:20:34,022 370 00:20:34,022 --> 00:20:38,830 Sauf que nous voulons c'est d'attendre pendant un certain temps avant qu'un autre bug apparaît, nous allons donc 371 00:20:38,830 --> 00:20:40,096 aussi attendre une seconde. 372 00:20:40,096 --> 00:20:46,718 373 00:20:46,718 --> 00:20:47,670 >> Très bien. 374 00:20:47,670 --> 00:20:50,260 Donc, nous allons vérifier cela. 375 00:20:50,260 --> 00:20:54,793 Nous chomped bas, mais disparaît une, une autre apparaît, et nous chomp bas 376 00:20:54,793 --> 00:20:56,430 dessus à nouveau. 377 00:20:56,430 --> 00:20:59,160 Cela est à la recherche comme une jolie jeu amusant, mais tous les jeux 378 00:20:59,160 --> 00:21:00,460 besoin de marquer, non? 379 00:21:00,460 --> 00:21:04,840 Alors, que pouvons-nous utiliser pour garder une trace de combien de bogues le dino a mangé? 380 00:21:04,840 --> 00:21:06,120 Une variable. 381 00:21:06,120 --> 00:21:08,040 Donc, nous allons ajouter un appelé Score variable. 382 00:21:08,040 --> 00:21:12,070 383 00:21:12,070 --> 00:21:15,040 >> Et maintenant, nous devrons décider ce que portée de cette variable. 384 00:21:15,040 --> 00:21:16,380 Donc, nous allons réfléchir. 385 00:21:16,380 --> 00:21:19,560 Alors que nous pourrions vouloir l'augmenter, mais à le score si elle a été 386 00:21:19,560 --> 00:21:22,630 mangé avec succès, et le stade pourrait avoir quelque chose à voir avec le 387 00:21:22,630 --> 00:21:26,640 note ainsi, nous allons donc assigner cette variable pour tous les sprites. 388 00:21:26,640 --> 00:21:30,210 389 00:21:30,210 --> 00:21:34,440 >> Nous voulons augmenter le score si, et seulement si, un bug a été mangé. 390 00:21:34,440 --> 00:21:37,440 Et nous avons déjà écrit un script qui traite d'un bug mangés si 391 00:21:37,440 --> 00:21:41,930 Ajoutons que cette seule déclaration , changez Score par un. 392 00:21:41,930 --> 00:21:44,405 Cela signifie qu'une fois que vous mangez un bug le score augmente. 393 00:21:44,405 --> 00:21:48,400 394 00:21:48,400 --> 00:21:53,221 >> Jouons un peu et manger, Je ne sais pas, trois bogues. 395 00:21:53,221 --> 00:21:56,590 396 00:21:56,590 --> 00:21:59,400 Alors vous êtes fatigué du jeu, eh bien, vous appuyez sur la touche d'arrêt rouge 397 00:21:59,400 --> 00:22:00,470 signer pour arrêter la partie. 398 00:22:00,470 --> 00:22:03,800 Et lorsque vous voulez revenir vous aurez appuyez à nouveau sur le drapeau vert. 399 00:22:03,800 --> 00:22:08,290 Mais le score est toujours de trois même si je joue une nouvelle partie. 400 00:22:08,290 --> 00:22:12,110 Nous ne voulons pas donner aux utilisateurs une tête commencer, nous aurons besoin de réinitialiser le 401 00:22:12,110 --> 00:22:15,190 marquer chaque fois qu'ils commencer une nouvelle partie. 402 00:22:15,190 --> 00:22:21,370 Donc, nous allons ajouter une déclaration à la phase de script de point d'entrée pour régler l' 403 00:22:21,370 --> 00:22:23,810 Score variables à zéro. 404 00:22:23,810 --> 00:22:31,080 Alors maintenant, chaque fois que vous lancez un jeu, Le score va commencer à zéro. 405 00:22:31,080 --> 00:22:34,420 >> Maintenant, nous allons ouvrir Hungry Dino 2 où J'ai ajouté quelques petites choses. 406 00:22:34,420 --> 00:22:38,410 J'ai juste cliqué sur le sprite de bug pour reproduire le sprite qui fait une 407 00:22:38,410 --> 00:22:41,020 sprite identique à ma précédente. 408 00:22:41,020 --> 00:22:45,620 Poison Bug est essentiellement identique à Bug1 mais j'ai choisi un nouveau costume parce que 409 00:22:45,620 --> 00:22:47,320 J'ai pensé qu'il avait l'air bien, sorte de poison. 410 00:22:47,320 --> 00:22:51,920 Au lieu d'augmenter le score lorsque le bug de poison est mangé, j'ai effectivement 411 00:22:51,920 --> 00:22:55,890 réduire le score en changeant score négatif. 412 00:22:55,890 --> 00:22:59,690 >> Et puis j'ai fait un autre costume pour notre dino utilisant l'éditeur de peinture 413 00:22:59,690 --> 00:23:03,660 faire un dino air malade et l'a nommé Dino malade. 414 00:23:03,660 --> 00:23:06,790 Mais nous n'utilisons pas ce costume dans notre programme encore, nous allons donc ajouter un peu 415 00:23:06,790 --> 00:23:10,200 des déclarations et des blocs qui vont changer le costume du dino aux malades vert 416 00:23:10,200 --> 00:23:12,200 costume à chaque fois qu'il mange un bug empoisonné. 417 00:23:12,200 --> 00:23:16,430 418 00:23:16,430 --> 00:23:20,480 >> Maintenant, puisque nous avons dupliqué le sprite de bug, le bug a empoisonné tous 419 00:23:20,480 --> 00:23:23,230 les scripts que l' bug originale fait. 420 00:23:23,230 --> 00:23:27,290 Si vous voulez copier des scripts à partir autres sprites, vous pouvez faire glisser les 421 00:23:27,290 --> 00:23:30,300 scénario sur le dessus du sprite que vous souhaitez copier. 422 00:23:30,300 --> 00:23:33,680 Mais nous n'aurons pas besoin de faire cela ici parce que le bug empoisonné dispose déjà d'un 423 00:23:33,680 --> 00:23:38,010 script qui vérifie que le bug a été chomped vers le bas sur. 424 00:23:38,010 --> 00:23:41,790 Et nous pouvons profiter de cela pour communiquer au dino qu'il a mangé un 425 00:23:41,790 --> 00:23:43,120 bug toxique. 426 00:23:43,120 --> 00:23:46,190 Et nous communiquons entre sprites de radiodiffusion. 427 00:23:46,190 --> 00:23:49,326 Donc, nous allons diffusé un nouveau événement appelé Dino malade. 428 00:23:49,326 --> 00:23:57,270 429 00:23:57,270 --> 00:24:02,180 >> Et nous savons que nous avons un costume pour le dino de changer, mais nous avons également 430 00:24:02,180 --> 00:24:06,120 savoir à partir plus tôt que c'est préférable d'ajouter une pause 431 00:24:06,120 --> 00:24:07,370 entre les changements de costumes. 432 00:24:07,370 --> 00:24:10,110 433 00:24:10,110 --> 00:24:21,760 Alors, quand je reçois Dino malade, je vais de changer de costume Dino Sick, attendez 434 00:24:21,760 --> 00:24:32,620 une seconde, puis passer revenir à Dino Hungry. 435 00:24:32,620 --> 00:24:35,260 436 00:24:35,260 --> 00:24:36,130 Très bien. 437 00:24:36,130 --> 00:24:43,600 Jouons notre jeu et de manger un bug et le coléoptère. 438 00:24:43,600 --> 00:24:45,680 Et le score diminue d'une unité. 439 00:24:45,680 --> 00:24:52,120 440 00:24:52,120 --> 00:24:57,600 >> Maintenant, parfois, vous remarquerez peut-être que l' la variable peut ne pas apparaître sur l' 441 00:24:57,600 --> 00:24:59,270 coin supérieur gauche de l'écran. 442 00:24:59,270 --> 00:25:03,070 Si vous accédez à la section de données sous les scripts, vous verrez cette coche 443 00:25:03,070 --> 00:25:05,070 à côté des variables que vous créez. 444 00:25:05,070 --> 00:25:09,090 Et cela cache ou les unhides variable de l'écran. 445 00:25:09,090 --> 00:25:12,390 Mais vous pouvez également utiliser une instruction appelé Show ou 446 00:25:12,390 --> 00:25:14,060 Masquer une variable spécifique. 447 00:25:14,060 --> 00:25:19,560 Nous allons donc utiliser cette variable Montrer Score à assurez-vous que chaque fois que nous commençons 448 00:25:19,560 --> 00:25:23,320 le jeu, la variable est représentée. 449 00:25:23,320 --> 00:25:24,120 Grand. 450 00:25:24,120 --> 00:25:28,220 >> Donc, nous allons lancer le jeu et de manger un bug de poison tout de suite. 451 00:25:28,220 --> 00:25:40,410 Maintenant, c'est un peu étrange d'avoir un jeu d'avoir des points négatifs, non? 452 00:25:40,410 --> 00:25:42,990 Donc, nous allons introduire une autre fonction. 453 00:25:42,990 --> 00:25:46,750 Si le dino mange trop toxique bogues alors il devient trop malade et l' 454 00:25:46,750 --> 00:25:47,890 jeu est terminé. 455 00:25:47,890 --> 00:25:52,580 Donc, pour mettre en œuvre, nous diffusons un autre cas, Game Over. 456 00:25:52,580 --> 00:25:56,450 Comment savons-nous que pour exécuter Game Over cette diffusion? 457 00:25:56,450 --> 00:25:58,070 >> Eh bien, nous pouvons le faire de plusieurs façons. 458 00:25:58,070 --> 00:26:01,750 Nous pouvons avoir un script dans le stade que vérifie en permanence si le score 459 00:26:01,750 --> 00:26:04,740 est négatif ou pas, et les émissions Game Over lorsque l' 460 00:26:04,740 --> 00:26:06,870 Score devient négative. 461 00:26:06,870 --> 00:26:10,750 Ou nous pourrions profiter du fait que la seule façon dont le résultat pourrait jamais 462 00:26:10,750 --> 00:26:13,660 être négatif, c'est quand un poison bug est consommé. 463 00:26:13,660 --> 00:26:16,860 Parce que quand vous mangez l'autre bug, le score augmente. 464 00:26:16,860 --> 00:26:19,500 Il ne sert à vérifier si elle devrait être Game Over ou non lorsque vous 465 00:26:19,500 --> 00:26:21,110 manger un bug comestible. 466 00:26:21,110 --> 00:26:26,000 >> Nous pouvons donc il suffit d'ajouter à l' script qui reçoit le Dino Sick 467 00:26:26,000 --> 00:26:28,470 événement diffusé. 468 00:26:28,470 --> 00:26:31,750 Nous voulons demander au dino comme suit. 469 00:26:31,750 --> 00:26:35,510 Si le score est inférieur à zéro, diffuser Game Over. 470 00:26:35,510 --> 00:26:40,590 471 00:26:40,590 --> 00:26:44,550 Donc, nous allons construire le score inférieur à zéro condition à l'aide d'un bloc de la 472 00:26:44,550 --> 00:26:49,020 la section de commande, et en faisant glisser dans notre note à ce bloc. 473 00:26:49,020 --> 00:26:52,160 474 00:26:52,160 --> 00:26:58,626 Et voyez ici vous pouvez simplement faire glisser le Score variable et mettre inférieure à zéro. 475 00:26:58,626 --> 00:27:07,824 Et nous allons diffuser un nouvel événement, Game Over. 476 00:27:07,824 --> 00:27:15,080 477 00:27:15,080 --> 00:27:18,430 >> Mais si le score n'est pas allé au-dessous zéro, nous voulons que le dino de 478 00:27:18,430 --> 00:27:19,480 continuer la partie. 479 00:27:19,480 --> 00:27:23,310 Ainsi, au lieu d'utiliser un si ici, nous allons utiliser une autre si la construction. 480 00:27:23,310 --> 00:27:28,960 481 00:27:28,960 --> 00:27:33,050 Une si else raconte notre dino de faire une chose si la condition est vraie 482 00:27:33,050 --> 00:27:35,580 et une autre chose si l' condition est fausse. 483 00:27:35,580 --> 00:27:39,390 Le corps de notre première si l'on peut aller dans le cas d'autre, donc nous allons glisser ce po 484 00:27:39,390 --> 00:27:45,020 485 00:27:45,020 --> 00:27:48,760 Mais si le score n'est pas inférieur à zéro, puis nous allons revenir à l' 486 00:27:48,760 --> 00:27:50,760 Hungry costume Dino. 487 00:27:50,760 --> 00:27:54,930 Nous ne voulons pas le faire de manière préventive. 488 00:27:54,930 --> 00:27:56,150 Grand. 489 00:27:56,150 --> 00:27:58,830 >> Mais puisque nous diffusons Game Over, nous avons encore besoin de faire une 490 00:27:58,830 --> 00:28:00,980 bloc de réception d'événements. 491 00:28:00,980 --> 00:28:06,300 Il ya effectivement un arrêt Tous déclaration dans le contrôle, nous allons donc le raccorder à 492 00:28:06,300 --> 00:28:08,070 lorsque je reçois Game Over. 493 00:28:08,070 --> 00:28:21,490 494 00:28:21,490 --> 00:28:26,580 Mais nous voulons aussi le bug de s'arrêter, de sorte nous allons glisser ce script à tous 495 00:28:26,580 --> 00:28:32,430 le bug sprites ainsi que la scène. 496 00:28:32,430 --> 00:28:34,560 Essayons cela. 497 00:28:34,560 --> 00:28:42,500 >> Manger un bug poison tout de suite, le programme s'arrête comme prévu. 498 00:28:42,500 --> 00:28:46,040 Aucun des autres insectes se déplacent et ne ne le dino si vous appuyez 499 00:28:46,040 --> 00:28:47,250 les touches fléchées. 500 00:28:47,250 --> 00:28:51,240 Mais disons que nous ne voulons pas de rappeler l'utilisateur de leur score négatif, de sorte 501 00:28:51,240 --> 00:28:55,020 cachons le score variable d' la scène lorsque le jeu 502 00:28:55,020 --> 00:28:56,270 Au cours événement est reçu. 503 00:28:56,270 --> 00:29:00,240 504 00:29:00,240 --> 00:29:01,230 Très bien. 505 00:29:01,230 --> 00:29:02,920 >> Donc, c'est un jeu assez décent. 506 00:29:02,920 --> 00:29:06,270 Avec plus de temps, vous pouvez ajouter plus sprites et plusieurs scripts. 507 00:29:06,270 --> 00:29:08,550 Peut-être que les insectes peuvent se déplacer à des vitesses différentes. 508 00:29:08,550 --> 00:29:10,880 Vous pouvez ajouter un nouvel arrière-plan à l'étape - 509 00:29:10,880 --> 00:29:12,560 un Game Over toile de fond - 510 00:29:12,560 --> 00:29:16,660 de telle sorte que, lorsque l'étage reçoit l' Game Over cas, il peut passer à l' 511 00:29:16,660 --> 00:29:19,740 Game Over toile de fond et tout des sprites peau. 512 00:29:19,740 --> 00:29:23,950 Beaucoup de petites modifications peuvent être apportées à faire votre jeu un peu plus poli. 513 00:29:23,950 --> 00:29:27,630 >> Et ce n'est qu'un exemple d'une projet que vous pouvez faire dans Scratch 514 00:29:27,630 --> 00:29:29,990 en utilisant tous les outils qui nous avons discuté plus tôt - 515 00:29:29,990 --> 00:29:34,330 sprites, costumes, scènes, décors, conditions, des boucles, des variables, 516 00:29:34,330 --> 00:29:37,000 événements radiodiffusion et des fils. 517 00:29:37,000 --> 00:29:40,140 Hungry Dino n'utilise pas son effets, mais vous pouvez facilement ajouter votre 518 00:29:40,140 --> 00:29:47,650 propre en accédant à l'onglet Sons et explorer les déclarations sonores. 519 00:29:47,650 --> 00:29:51,050 Scratch est une excellente introduction à concepts de la programmation, alors soyez créatifs 520 00:29:51,050 --> 00:29:53,680 et, surtout, amusez-vous. 521 00:29:53,680 --> 00:29:56,420 Mon nom est Zamyla, et c'est CS50. 522 00:29:56,420 --> 00:30:03,072