>> ZAMYLA CHAN: Bonjour, et bienvenue à la solution de Scratch.
Mon nom est Zamyla et je vais être en tête soluces pour vous cette année.
En CS50, chaque problème posé est accompagnée d'une procédure.
Au cours de ces procédures pas à pas, je vais aller sur problème de jeu de la semaine, explique le
concepts nécessaires et briser le problème mis en bouchées faciles à gérer.
>> Pour la première p-set en CS50, nous avons effectivement n'allons pas entrer dans la dactylographie et
Code machine de choses tout à fait encore.
Au contraire, nous allons utiliser Scratch, un programme qui nous permet d'explorer
les concepts de programmation dans un manière visuelle et créative.
Cette procédure va explorer concepts fondamentaux que nous utilisons
tout au long CS50, ainsi que de servir comme un didacticiel Scratch.
Dans chaque procédure pas à pas, je vais énumérer un ensemble des outils que vous pouvez utiliser pour le
problème posé.
De grandes notions du cours de réelle fonctions, il est bon et utile de
savez ce que vous êtes équipé avant s'attaquer au problème posé.
>> Tout d'abord, parlons de sprites.
Lutins sont au cœur de faire projets dans Scratch.
Chaque objet ou chaque personnage, que ce soit un chat, un chien ou un
balle, est appelé un sprite.
Si je veux, par exemple, deux chats dans mon projet, Je vais avoir besoin de faire deux
sprites distincts dans Scratch, même s'ils sont absolument identiques.
>> Chaque sprite possède des scripts associés avec cette image-objet spécifique.
Les scripts sont ce que vous allez à construire en faisant glisser
et laisser tomber des blocs.
Les scripts sont des instructions qui déterminer et de définir
comment se comporte le script.
>> Maintenant, sprites ne sont pas seulement des images.
Un costume de sprites détermine ce que le sprite ressemble.
Toute sprite peut avoir plus d'un costume.
Un peu plus tard au cours de cette procédure pas à pas je vais vous montrer comment vous pouvez avoir votre
changer de costume sprite au cours de votre programme.
>> Pour créer un sprite à zéro, vous pouvez soit choisir son costume initial pour
La bibliothèque de Scratch, dessinez votre propre Scratch est construit dans l'éditeur de peinture,
télécharger votre propre image, ou prendre une photo avec la caméra de votre ordinateur.
Tous les sprites sont placés sur ce que nous appelons la scène.
La scène est comme notre toile où sprites peuvent se déplacer.
>> Même si nous pouvons avoir des multiples sprites, il ne peut y avoir une étape.
Sinon, les stades et les sprites sont assez similaire en ce que l'étape peut
avoir aussi des scripts.
Scripts sur la scène sont très utiles quand vous n'avez pas un script qui
n'est pas nécessairement concerner pas à une image-objet spécifique.
Peut-être ce qui a trait à plusieurs rayures, ou pas du tout.
>> C'est généralement une bonne conception de placer votre son exécution sur la scène s'ils sont
assez générales et ne concernent pas de sprites spécifiques.
Et tout comme les sprites ont des costumes, étapes ont décors qui peuvent changer
au cours de votre programme.
Et vous pouvez dessiner vos propres, télécharger une l'image, prendre une photo, ou utilisez le
bibliothèque de Scratch de décors.
La scène et sprites peuvent également jouer sons provenant de la bibliothèque de zéro, ou
vous pouvez télécharger et enregistrer votre propre.
>> Pour commencer votre programme de Scratch vous aurez besoin de cliquer sur le drapeau vert à l'
coin supérieur droit de la fenêtre de la scène.
Mais si vous ne connectez rien à ce bloc ici, alors rien n'est
en fait va se passer parce que votre sprites et la scène doivent être racontées
pour répondre à l'événement de l' drapeau vert est cliqué.
Ainsi, vous aurez besoin d'attacher des blocs à l' rainure au fond de la verdure
drapeau, puis le programme sera exécuté ces actions lorsque vous démarrez
votre programme.
>> Eh bien, ce qui vient après?
Eh bien, Scratch a beaucoup de blocs pour que vous puissiez utiliser, et vous pouvez
même faire votre propre.
Vous verrez trois onglets, les scripts, Les costumes et les sons.
Sous l'étiquette de scripts sont des catégories des états.
Les déclarations sont facilement organisé par la couleur.
Vous avez des actions liées à la circulation, sonore, les regards, et ainsi de suite.
Même si vous avez d'autres blocs de construction autour de vos déclarations, c'est l'
déclarations qui aideront les sprites ou l'étape de faire quelque chose, alors que
autres blocs aideront à déterminer quand les faire.
>> Disons que vous créez votre très premier projet et vous voulez seulement le
chat à miauler sous certaines conditions circonstances.
Pour mettre en œuvre, nous pouvons prendre avantage des booléens.
Ce sont des expressions qui évaluent soit vraie ou fausse.
Dans Scratch ceux-ci sont identifiés par l' des angles à la fin des blocs.
Vous avez une variété de différents types des booléens tels que la souris
étant enfoncé, ne 2 plus 2 assimilent à 5, ou est l'utilisateur en appuyant
vers le bas une certaine touche du clavier?
>> Maintenant, vous ne pouvez pas utiliser ces booléens seul.
Vous aurez besoin de les combiner avec ce que nous appelons conditions.
blocs de condition peuvent être trouvés dans les instructions de contrôle d'orange.
Conditions ont idéalement un peu espace réservé qui montre la forme de
le bloc que vous avez besoin à mettre dedans.
Donc, selon le contexte de la situation, vous pouvez choisir un booléen
et le placer à l'intérieur de votre condition.
Et mettez ensemble, vous avez une instruction conditionnelle.
Une fois que vous mettez à l'intérieur des déclarations qui bloquer vous avez une structure mise en place
où une fois un certain état est remplie, vous exécutez ensuite ceux
déclarations.
>> Un des avantages des ordinateurs est la grande puissance et la vitesse à laquelle ils
peut exécuter les processus répétitifs.
Au lieu de, disons, la répétition d'une instruction à plusieurs reprises et plus
encore et fait taper que sur, ou dans ce cas, en faisant glisser et en déposant
et glisser-déposer, ce que nous pouvez faire est d'encapsuler dans une boucle.
>> Les boucles peuvent être utilisés pour exécuter soit choses à l'infini avec une boucle pour toujours,
ou pour un nombre déterminé de fois.
Par exemple, répéter la déclaration, dire hi, 10 fois, ou peut-être jusqu'à un certain
condition est vraie.
Et avec cette Répétez l'opération jusqu'à bloquer voir que Scratch insinue que
vous aurez besoin de placer un booléen en la répétition Jusqu'à bloc pour faire un
instruction conditionnelle.
>> Maintenant, nous savons que nous pouvons encapsuler processus répétitifs à l'intérieur de boucles,
de sorte que vous pouvez voir pourquoi quelque chose comme ce ne serait pas idéal.
C'est super long, il n'a tout simplement la même chose encore et encore
encore une fois, 10 fois, en fait.
Il se déplace 10 étapes, dit bonjour, Déplacer de 10 étapes, dit bonjour.
Mais avec l'aide de boucles nous peut corriger ce un peu.
Voyez comment cela est beaucoup mieux.
C'est plus court, il est plus petit et il remplit la même chose.
>> Passant à des variables.
Les variables sont essentiellement contenants pour les valeurs.
Dans Scratch, ces types de valeurs peuvent être soit des mots ou ils peuvent être
nombres, des valeurs que nous avoir le contrôle.
Dans ce premier bloc, nous avons une variable de texte contenant l'
valeur, Bonjour tout le monde.
Dans le deuxième exemple, il est supposé que nous avons déjà une variable nommée
Compteur et nous incrémentation par trois.
Et puis, dans le dernier exemple, nous voyons un exemple de variables étant utilisées
à l'intérieur de conditions.
Dans ce bloc, nous demandons si la variable Le compteur est inférieur à zéro.
>> Maintenant, lorsque vous créez une variable que vous avez de décider si vous faites le
variable disponible pour tous les sprites dans votre programme de Scratch, ou
juste pour les sprites spécifiques sélectionnés quand vous faites la variable.
Et cela est très important décision à prendre.
Il revient à ce champ vous la variable doit avoir.
>> Un exemple de portée locale serait un variables pour un seul sprite spécifique,
ce qui signifie que seul ce serait sprite être capable de voir ou de le modifier.
Si vous constatez une variable globale portée en sélectionnant pour tous
sprites, alors cela signifie que la scène, ainsi que tous les sprites,
sera en mesure de voir, modifier, et l'accès que
variable que vous avez créé.
Et en termes de design, il est préférable d' choisir portée locale chaque fois que vous le pouvez
de sorte que tout le reste des sprites et la scène n'ont pas à s'inquiéter
garder la trace de cette variable.
>> Vous pouvez avoir deux variables d' le même nom pour différents sprites
longtemps que ce sont des variables locales.
Sprite un, un chat peut avoir une variable Nom du compteur, et sprite deux, un chien,
peut aussi avoir une variable nommée Contrer autant que ces
sont tous deux des variables locales.
Parce que la portée de la variable ne s'étend pas au reste de l'
programme, et aucun des autres sprites ou le stade va se confondre.
>> Plus tôt, j'ai mentionné le point d'entrée, le drapeau vert quand bloc cliqué.
Ce bloc et l'accompagnement déclarations sont essentiellement disent
vos sprites ou la scène, OK, lorsque le drapeau vert est cliqué, ce n'est
ce que vous devriez faire.
Mais ce n'est pas le seul événement qui sprites et la scène peuvent répondre.
Nous avons, par exemple, un événement pour quand une touche du clavier est enfoncée.
Vous pouvez en fait choisir les lettres A à Z, de zéro à neuf ou l'
touches fléchées.
>> Il ya d'autres événements, aussi, comme si votre sprite est cliqué.
Lorsque vous démarrez avec des blocs d'événements comme ceux-ci, vous remarquerez une tendance.
Ils ont tous un seul groupe sur le inférieure et une supérieure lisse, qui
indique que rien au-dessus se fixe à ce bloc.
Vous construisez le cadre de ces événements blocs et construire vers le bas.
>> Maintenant, qu'est-ce qui se passe si nous voulons un événement de se produire, par exemple, quand un chat est
toucher une certaine partie de la phase?
Nous n'avons en fait pas tout intégré événement pour signifier que, si ce que nous allons
avoir à faire est de créer notre propre événement.
Et c'est ce qu'on appelle la radiodiffusion.
>> Ainsi, lorsque vous souhaitez signaler qu'un certain événement s'est produit, alors vous
utiliser un appelé diffusion noir, qui se trouve dans l'onglet de configuration.
Il vous tapez le nom de l' Si vous voulez diffuser, et
alors quel sprite ou étape peut réagir à ce que
diffuser si vous le souhaitez.
L'Quand je reçois bloc raconte l' sprites quoi faire quand ils sont
notifié que votre commande événement s'est produit.
Alors, n'oubliez pas que chaque fois que vous diffusez un événement, c'est avec l'
étant entendu que l'un de l' sprites ou le stade va
recevoir cet événement et à y répondre.
>> Maintenant, le dernier concept avant que nous obtenions à un exemple réel d'un Scratch
programme, c'est le concept de threads.
C'est alors que votre ordinateur est l'exécution simultanée
processus en même temps.
Et je suis sûr que nous avons tous été pris avantage de cela.
Comme surfer sur le Web tout en écouter de la musique.
L'ordinateur peut exécuter plusieurs choses en même temps.
>> Dans cet exemple ici, ces deux scripts peuvent être utilisés pour
Même sprite exacte.
Le bloc de point d'entrée, si le drapeau vert Cliqué, est utilisé plusieurs fois, mais
ce sont deux scripts distincts.
En effet, le drapeau vert cliqué bloc sera probablement l'un des plus
blocs populaires dans votre programme.
Ici, nous voyons que lorsque le drapeau vert est cliqué, il ya un processus en cours
sur, aussi bien que l'autre.
Alors Scratch sera effectivement exécuter ces deux à la même heure.
Et sachant que vous pouvez en fait avoir plus d'un point d'entrée, même si
c'est le même point d'entrée, qui va pour être vraiment utile si vous voulez
tâches distinctes séparées les uns des autres.
>> Très bien.
Alors, maintenant que nous avons couvert l'ensemble de ces concepts, prenons un exemple.
J'ai fait une série de programmes de grattage, essayez donc de suivre pendant que nous
faire un petit match.
Commençons par l'ouverture Hungry Dino zéro.
>> Disons cliquez sur le drapeau vert pour commencer et voir ce qu'il fait.
Nous avons un sprite de bug qui se déplace pour un quelques étapes, remet à une certaine hauteur, et
puis recule.
Et puis nous avons un dino sprite.
En appuyant sur les touches fléchées, je me déplace le sprite dino autour, faisant tourner
et faire pivoter.
Cela peut être assez amusant, mais il n'y a pas beaucoup
scripts de ce programme.
Nous pouvons certainement ajouter à cela.
>> Par exemple, lorsque le dino se déplace, il peut effectivement descendre l'écran et
presque disparaître à partir du site.
Nous voulons changer cela parce que nous ne veulent pas le dino de s'échapper.
Alors arrêtons notre script avec le rouge drapeau et puis éditer les scripts dino.
Notez que ce script particulier a une boucle infinie, qui se termine par un
bord droit.
Il n'a pas de rainure au fond.
Et cela a un sens de l' nom, une boucle infinie.
C'est l'exécution de quelque chose d'infiniment et ne finira jamais.
Il s'agit donc d'une excellente occasion à introduire un fil.
>> Très bien.
Donc, nous allons ajouter un autre script.
Je vais commencer par cette entrée moment, quand drapeau vert cliqué.
Et je tiens à vérifier en permanence si le dino va être
toucher le bord.
Dans la motion il ya un petit bloc soignée cela dit, si au rebond Edge.
Et si nous voulons continuellement exécuter cette.
>> Que cette déclaration ne fait que vérifie si l'image-objet est sur le bord de l'
scène, et rebondit si elle est.
Et parce que l'utilisateur peut toujours déplacer le dino, nous voulons trouver une sorte de
boucle qui nous permet de continuellement exécuter cette instruction.
Regarder sous contrôle, nous allons choisir la boucle pour toujours.
Donc, nous allons glisser que dans le son dino, puis
Ajouter si Le rebond Edge.
Et puis nous allons tester notre programme.
>> Ainsi, le bug se déplace comme d'habitude, et alors si nous testons notre nouveau script par
déplacer notre dino du bord, nous voyons qu'il ne peut pas
échapper à la scène plus.
Il rebondit tout de suite.
Maintenant, vous pourriez vous demander pourquoi le dino rebonds, mais pas le bug.
Eh bien, c'est parce que nous avons écrit notre nouveau script dans le son dino
et non pas les bugs.
Ainsi, le bug ne sera pas écouter la instructions nous ont donné le dino.
>> Très bien.
Donc, nous allons ajouter quelque chose de nouveau maintenant.
Si vous allez à l'onglet Costumes vous verrez que les différents costumes que
sont préchargés avec votre sprite sélectionné si vous choisissez l'un de l'
bibliothèque de Scratch.
Il ya ce mignon petit dino Chomp costume, nous allons donc mettre en œuvre le dino
ronge quand nous presse, dire, la touche Espace.
>> Retour aux scripts dino.
Dans ce script ici, je suis déjà vérifier dans la boucle pour toujours si
certaines touches sont enfoncées et en déplaçant le dino en conséquence.
S'ils flèche gauche est enfoncée, le dino tourne dans le sens antihoraire.
Si la flèche de droite est enfoncée, le dino tourne dans le sens horaire.
Donc, si la flèche du haut est enfoncée, puis le dino progresse vers l'avant.
Nous pouvons simplement ajouter au script au lieu de ajoutant un bassin séparé parce que cette
est déjà en vérifiant le thème de qui touche pressée.
>> Ajoutons-en une qui vérifie la touche Espace enfoncée.
Ces blocs ici, parcourez pour les touches sont pressées.
Ils sont tous dans le bleu lumineux, de sorte Allons à la détection bleu vif
déclarations et regarder autour.
Voici un bloc de presse Spaced Key.
Donc, ce que nous voulons faire, c'est avoir le dino passer à son abattant costume
si, et seulement si, l'espace touche est appuyée.
>> Donc nous allons imiter la structure ici.
Maintenant, le changement de costume a à voir avec comment le dino a l'air si nous irons à
Regardez déclaration.
Et bien sûr, nous avons un commutateur Costume de Dino Chomp.
Maintenant, quand nous chomp bas, nous ne voulons pas le dino être ronge à jamais,
Ajoutons donc une déclaration indiquant pour revenir.
Il va passer costumes genre de rapidement, cependant, parce que dans les états de grattage
exécutera dos à dos vraiment rapidement, presque instantanément.
Allons donc au contrôle et ensuite faire le dino pause pour un peu en attendant
une seconde après qu'il mastique bruyamment vers le bas.
>> Maintenant, nous allons éditer le sprite de bug.
Le sprite de bug s'avance cinq étapes a au total cinq fois après une
de silence moment.
Dans le bloc haut ici le bug se place à une certaine
coordonnée x valeur.
Pour trouver les coordonnées que vous pouvez réellement la souris sur l'écran et
puis dans le coin inférieur de l'étage fenêtre les coordonnées mettra à jour si
vous pouvez profiter de cette pratique proposera de mettre en œuvre les coordonnées
que vous voulez.
Et, dans cette déclaration ici, nous chargeons le bug de commencer à la même
x valeur à chaque fois, mais de choisir un au hasard hauteur pour le bug qui reste
séjours dans les limites de l'étage.
>> Voyons ici que je profite de la diffusion de l'événement dans Scratch.
Ce gestionnaire d'événements est appelé New Bug1.
Donc, chaque fois que le bug reçoit l'événement New Bug1,
il va exécuter l'instruction.
Ainsi, après qu'il se déplace vers l'avant son ensemble nombre de fois, il fait
diffuse l'événement New bug1.
>> Mais que diriez-vous nous changeons ce script un peu?
Actuellement, nous avons le bug déplacer cinq étapes.
Ce n'est pas beaucoup, un total de cinq fois.
Nous ne savons pas vraiment combien de fois allez- être nécessaire jusqu'à ce que le bug atteint,
dire la fin de l'écran, nous allons donc rendre le mais atteindre la fin de l'
écran, mais utiliser une sorte d'autre construction.
>> Je vais séparer cela parce que nous allons changer quelques petites choses.
Pour supprimer des blocs à partir de zéro vous faites glisser les blocs à l'
à gauche, puis relâchez.
Et il est supprimé.
Si vous décidez que vous n'avez pas Voulez-vous le supprimer, vous pouvez
allez dans Edition et Undelete.
Mais nous ne voulons débarrasser de ce bloc.
>> Ce que nous voulons faire maintenant est de passer, disons, 50 étapes et une pause d'une seconde, et
Répétez jusqu'à ce que nous touchons l'extrémité de l'écran.
Nous allons donc utiliser une boucle qui nous permet d' répéter un processus jusqu'à ce qu'un certain
condition est remplie, le bien nommé Répéter jusqu'à.
>> Ce qui se passe à l'intérieur de l'état d'une répétition Jusqu'au?
Quelque chose qui nous dit si l' bug touche le bord de la
écran, ce qui va être en vertu les états de détection.
Voici ce Boolean, Toucher.
Et vous pouvez choisir ici quel vous voulez vérifier.
Donc, nous allons sélectionner Front Touchant et ajoutons cette instruction conditionnelle arrière po
>> Alors maintenant, si nous regardons notre bug, ça va déplacer de nouveau une fois qu'elle touche
le bord de la scène.
Grand.
Nous avons terminé avec Hungry Dino zéro, nous allons donc ouvrir Hungry Dino One.
Un peu comme une émission de cuisine, j'ai ajouté un peu plus de fonctionnalités.
Par exemple, vous verrez que le bug est effectivement glissant tout simplement maintenant
par opposition à la précédente.
Sous mouvement il ya cette glisser déclaration.
Maintenant, le bug glisse 70 unités à l' droit de son exposition actuelle, mais
reste à la même position y ici.
Et nous pouvons maintenant avoir un dino ronge que nous avons mis en avant.
>> Mais, ce programme n'est pas appelé Hungry Dion pour rien si nous allons avoir l'
dino mange le bug.
Comment pourrions-nous dire le bug, ou raconter l' dino, qu'il a abattu?
Comment pourrions-nous communiquer cet événement?
Eh bien, nous savons que lorsque nous passons le costume pour le dino au dino Chomp
que nous avons chomped bas.
Et dire que nous voulons que le bug de disparaître une fois qu'il a mangé.
Eh bien, nous allons devoir vérifier si le bug a été chomped sur et
communiquer au bug que cela va avoir de cacher ou de disparaître de l'écran
une fois qu'il a été chomped bas.
>> Donc ce genre de concept, ce genre de outil que nous pouvons utiliser pour avoir le dino
communiquer au bug qui il a chomped bas?
Radiodiffusion.
Donc nous allons aller à des événements et ajouter un événement à diffuser.
Chomp.
OK.
Mais rappelez-vous qu'une fois que nous diffusons quelque chose que nous devons aussi
recevoir cet événement.
Alors, qui sprite diffusera Chomp?
Eh bien, nous allons avoir le dino le faire quand la touche est pressée de l'espace.
>> Ajoutons un bloc de recevoir Chomp.
Maintenant, quand le dino descend juste sur un espace vide que nous ne voulons pas le bug
à réagir à ce qu'au total, seulement si l' dino touchait le mais à l'époque
du Chomp-nous réellement faire quelque chose.
Donc, nous allons utiliser la condition Si, en raison Nous vérifions si quelque chose est
vrai ou non.
>> Maintenant, si nous revenons à détection, puis nous pouvons utiliser cette Touching
bloquer et sélectionner Dino.
Puis, sous Looks, nous trouvons cette Masquer bloc qui va faire le gros bug
disparaître de la scène.
>> Nous ferons cacher, mais nous faisons vouloir un autre bug, non?
Notre dino a faim.
Donc, nous voulons lui donner une autre bug de chasse.
Donc, nous allons également diffusé l'événement New Bug1.
Sauf que nous voulons c'est d'attendre pendant un certain temps avant qu'un autre bug apparaît, nous allons donc
aussi attendre une seconde.
>> Très bien.
Donc, nous allons vérifier cela.
Nous chomped bas, mais disparaît une, une autre apparaît, et nous chomp bas
dessus à nouveau.
Cela est à la recherche comme une jolie jeu amusant, mais tous les jeux
besoin de marquer, non?
Alors, que pouvons-nous utiliser pour garder une trace de combien de bogues le dino a mangé?
Une variable.
Donc, nous allons ajouter un appelé Score variable.
>> Et maintenant, nous devrons décider ce que portée de cette variable.
Donc, nous allons réfléchir.
Alors que nous pourrions vouloir l'augmenter, mais à le score si elle a été
mangé avec succès, et le stade pourrait avoir quelque chose à voir avec le
note ainsi, nous allons donc assigner cette variable pour tous les sprites.
>> Nous voulons augmenter le score si, et seulement si, un bug a été mangé.
Et nous avons déjà écrit un script qui traite d'un bug mangés si
Ajoutons que cette seule déclaration , changez Score par un.
Cela signifie qu'une fois que vous mangez un bug le score augmente.
>> Jouons un peu et manger, Je ne sais pas, trois bogues.
Alors vous êtes fatigué du jeu, eh bien, vous appuyez sur la touche d'arrêt rouge
signer pour arrêter la partie.
Et lorsque vous voulez revenir vous aurez appuyez à nouveau sur le drapeau vert.
Mais le score est toujours de trois même si je joue une nouvelle partie.
Nous ne voulons pas donner aux utilisateurs une tête commencer, nous aurons besoin de réinitialiser le
marquer chaque fois qu'ils commencer une nouvelle partie.
Donc, nous allons ajouter une déclaration à la phase de script de point d'entrée pour régler l'
Score variables à zéro.
Alors maintenant, chaque fois que vous lancez un jeu, Le score va commencer à zéro.
>> Maintenant, nous allons ouvrir Hungry Dino 2 où J'ai ajouté quelques petites choses.
J'ai juste cliqué sur le sprite de bug pour reproduire le sprite qui fait une
sprite identique à ma précédente.
Poison Bug est essentiellement identique à Bug1 mais j'ai choisi un nouveau costume parce que
J'ai pensé qu'il avait l'air bien, sorte de poison.
Au lieu d'augmenter le score lorsque le bug de poison est mangé, j'ai effectivement
réduire le score en changeant score négatif.
>> Et puis j'ai fait un autre costume pour notre dino utilisant l'éditeur de peinture
faire un dino air malade et l'a nommé Dino malade.
Mais nous n'utilisons pas ce costume dans notre programme encore, nous allons donc ajouter un peu
des déclarations et des blocs qui vont changer le costume du dino aux malades vert
costume à chaque fois qu'il mange un bug empoisonné.
>> Maintenant, puisque nous avons dupliqué le sprite de bug, le bug a empoisonné tous
les scripts que l' bug originale fait.
Si vous voulez copier des scripts à partir autres sprites, vous pouvez faire glisser les
scénario sur le dessus du sprite que vous souhaitez copier.
Mais nous n'aurons pas besoin de faire cela ici parce que le bug empoisonné dispose déjà d'un
script qui vérifie que le bug a été chomped vers le bas sur.
Et nous pouvons profiter de cela pour communiquer au dino qu'il a mangé un
bug toxique.
Et nous communiquons entre sprites de radiodiffusion.
Donc, nous allons diffusé un nouveau événement appelé Dino malade.
>> Et nous savons que nous avons un costume pour le dino de changer, mais nous avons également
savoir à partir plus tôt que c'est préférable d'ajouter une pause
entre les changements de costumes.
Alors, quand je reçois Dino malade, je vais de changer de costume Dino Sick, attendez
une seconde, puis passer revenir à Dino Hungry.
Très bien.
Jouons notre jeu et de manger un bug et le coléoptère.
Et le score diminue d'une unité.
>> Maintenant, parfois, vous remarquerez peut-être que l' la variable peut ne pas apparaître sur l'
coin supérieur gauche de l'écran.
Si vous accédez à la section de données sous les scripts, vous verrez cette coche
à côté des variables que vous créez.
Et cela cache ou les unhides variable de l'écran.
Mais vous pouvez également utiliser une instruction appelé Show ou
Masquer une variable spécifique.
Nous allons donc utiliser cette variable Montrer Score à assurez-vous que chaque fois que nous commençons
le jeu, la variable est représentée.
Grand.
>> Donc, nous allons lancer le jeu et de manger un bug de poison tout de suite.
Maintenant, c'est un peu étrange d'avoir un jeu d'avoir des points négatifs, non?
Donc, nous allons introduire une autre fonction.
Si le dino mange trop toxique bogues alors il devient trop malade et l'
jeu est terminé.
Donc, pour mettre en œuvre, nous diffusons un autre cas, Game Over.
Comment savons-nous que pour exécuter Game Over cette diffusion?
>> Eh bien, nous pouvons le faire de plusieurs façons.
Nous pouvons avoir un script dans le stade que vérifie en permanence si le score
est négatif ou pas, et les émissions Game Over lorsque l'
Score devient négative.
Ou nous pourrions profiter du fait que la seule façon dont le résultat pourrait jamais
être négatif, c'est quand un poison bug est consommé.
Parce que quand vous mangez l'autre bug, le score augmente.
Il ne sert à vérifier si elle devrait être Game Over ou non lorsque vous
manger un bug comestible.
>> Nous pouvons donc il suffit d'ajouter à l' script qui reçoit le Dino Sick
événement diffusé.
Nous voulons demander au dino comme suit.
Si le score est inférieur à zéro, diffuser Game Over.
Donc, nous allons construire le score inférieur à zéro condition à l'aide d'un bloc de la
la section de commande, et en faisant glisser dans notre note à ce bloc.
Et voyez ici vous pouvez simplement faire glisser le Score variable et mettre inférieure à zéro.
Et nous allons diffuser un nouvel événement, Game Over.
>> Mais si le score n'est pas allé au-dessous zéro, nous voulons que le dino de
continuer la partie.
Ainsi, au lieu d'utiliser un si ici, nous allons utiliser une autre si la construction.
Une si else raconte notre dino de faire une chose si la condition est vraie
et une autre chose si l' condition est fausse.
Le corps de notre première si l'on peut aller dans le cas d'autre, donc nous allons glisser ce po
Mais si le score n'est pas inférieur à zéro, puis nous allons revenir à l'
Hungry costume Dino.
Nous ne voulons pas le faire de manière préventive.
Grand.
>> Mais puisque nous diffusons Game Over, nous avons encore besoin de faire une
bloc de réception d'événements.
Il ya effectivement un arrêt Tous déclaration dans le contrôle, nous allons donc le raccorder à
lorsque je reçois Game Over.
Mais nous voulons aussi le bug de s'arrêter, de sorte nous allons glisser ce script à tous
le bug sprites ainsi que la scène.
Essayons cela.
>> Manger un bug poison tout de suite, le programme s'arrête comme prévu.
Aucun des autres insectes se déplacent et ne ne le dino si vous appuyez
les touches fléchées.
Mais disons que nous ne voulons pas de rappeler l'utilisateur de leur score négatif, de sorte
cachons le score variable d' la scène lorsque le jeu
Au cours événement est reçu.
Très bien.
>> Donc, c'est un jeu assez décent.
Avec plus de temps, vous pouvez ajouter plus sprites et plusieurs scripts.
Peut-être que les insectes peuvent se déplacer à des vitesses différentes.
Vous pouvez ajouter un nouvel arrière-plan à l'étape -
un Game Over toile de fond -
de telle sorte que, lorsque l'étage reçoit l' Game Over cas, il peut passer à l'
Game Over toile de fond et tout des sprites peau.
Beaucoup de petites modifications peuvent être apportées à faire votre jeu un peu plus poli.
>> Et ce n'est qu'un exemple d'une projet que vous pouvez faire dans Scratch
en utilisant tous les outils qui nous avons discuté plus tôt -
sprites, costumes, scènes, décors, conditions, des boucles, des variables,
événements radiodiffusion et des fils.
Hungry Dino n'utilise pas son effets, mais vous pouvez facilement ajouter votre
propre en accédant à l'onglet Sons et explorer les déclarations sonores.
Scratch est une excellente introduction à concepts de la programmation, alors soyez créatifs
et, surtout, amusez-vous.
Mon nom est Zamyla, et c'est CS50.