A2 · 第7集 · 4:59
变量:计分功能
本集讲解如何在编程游戏中使用变量记录分数,以追踪玩家收集松饼的数量。
来源:ericgrisperez / tube-numerique-educatif.apps.education.fr · 许可:CC BY 4.0
字幕
Bonjour, suite de notre jeu de chat et de souris,
大家好,这是我们猫捉老鼠游戏的续篇。
donc la dernière fois nous avions mis en place des muffins à récupérer par la
上一次,我们设置了让老鼠去收集松饼。
souris. Donc notre jeu commence à devenir intéressant,
所以我们的游戏开始变得有趣了。
le problème étant que pour le moment, lorsque j'attrape un muffin,
但目前有个问题:每当我抓到一个松饼时,
je ne sais pas combien j'en ai récolté.
我并不知道已经收集了多少个。
Donc si je fais un jeu avec mes copains,
所以如果我和朋友们一起玩这个游戏,
j'aimerais savoir qui est le meilleur à ce jeu.
我就想知道谁是这个游戏里最厉害的。
Donc il me faudrait ici un
因此,我这里需要一个
score. J'ai ajouté ici une variable,
分数。我在这里添加了一个变量,
donc maintenant lorsque j'attrape un muffin, j'ai
现在,每当我抓到一个松饼,
bien à chaque fois plus 1 qui vient s'ajouter à mon score.
我的分数就会自动加一。
Donc si je perds.
如果我输了……
La partie, je peux montrer que j'ai réussi à faire deux sur ma partie.
这局游戏,我可以显示自己本局得了两分。
Avant de nous lancer, voyons ce qu'est une variable.
在正式开始前,我们先来了解一下什么是变量。
Une variable, c'est comme une boîte.
变量就像一个盒子。
Cette boîte sert à ranger une information dont le programme a besoin.
这个盒子用来存放程序需要的信息。
Dans une variable, on peut mettre un nombre, par exemple un score.
在变量里,我们可以存一个数字,比如分数。
Un texte, par exemple le nom du joueur,
也可以存一段文字,比如玩家的名字,
ou un temps ou encore une autre information.
或者时间,或者其他信息。
Dans un premier temps, je vais donner un nom à ma variable.
第一步,我要给这个变量起个名字。
Par exemple, ici ce qui m'intéresse c'est de connaître le score du joueur.
比如,我关心的是玩家的分数。
Donc je vais nommer cette variable score.
所以我把这个变量命名为‘score’(分数)。
Chaque muffin fera augmenter le score de un point.
每个松饼都会让分数增加一分。
Donc dans cette boîte, je viendrai ranger des nombres.
因此,在这个盒子里,我将存放数字。
Maintenant que je sais que ma variable se nomme score et qu'elle permet de ranger
现在我知道了,我的变量名叫‘score’,而且它用来存放
des nombres, je vais pouvoir définir des conditions pour l'utiliser.
数字,我就可以为它设定使用条件了。
Au début du jeu, elle devrait être à zéro, car pour le moment,
游戏开始时,它应该为零,因为目前
je n'ai rien attrapé.
我还没抓到任何松饼。
À chaque fois que j'attrape un muffin, j'ajouterai un point.
每次我抓到一个松饼,就加一分。
Essayons de faire ça maintenant avec nos blocs Scratch.
现在,让我们用Scratch积木来实现这个功能。
Concrètement, voici ce qu'il va se passer.
具体来说,接下来会发生这些事。
J'ai ici ma variable score qui est indiquée en haut à gauche de mon écran.
这里是我的‘分数’变量,显示在屏幕左上角。
Je lance mon jeu.
我启动游戏。
Ma souris peut se déplacer et peut aller attraper un muffin.
我的鼠标可以移动,并能去抓取一个松饼。
À chaque fois que la souris attrape un muffin,
每当鼠标抓到一个松饼时,
on peut voir que le score gagne un point.
我们都能看到分数增加了一分。
Voyons maintenant comment faire ça avec les blocs Scratch.
现在,我们来看看如何用Scratch积木实现这一点。
Nous voici dans la partie code.
我们已进入‘代码’区域。
Nous allons travailler avec le muffin.
我们将操作松饼角色。
C'est en effet lui qui donnera l'ordre à la variable d'augmenter de plus un point.
正是它会发出指令,让分数变量加一分。
Nous retrouvons ici le programme que nous avons fait où un son est joué si la souris
这里是我们之前编写的程序:当鼠标被碰到时,播放一个声音。
est touchée. Donc on va utiliser ce programme- là pour venir intégrer notre
因此,我们将复用这个程序,加入分数变量的功能。
variable. Pour créer une variable dans Scratch,
要在Scratch中创建变量,
il suffit d'aller dans la catégorie Variables.
只需进入‘变量’分类。
Ici, tu as un bouton pour créer une nouvelle boîte pour stocker des choses.
这里有一个按钮,用于新建一个存储数据的‘盒子’。
Donc j'appuie sur Créer une variable.
所以我点击‘创建变量’。
Cette variable, je vais l'appeler score, et j'appuie sur OK.
这个变量我命名为‘score’,然后点击‘确定’。
De nouveaux blocs sont maintenant disponibles.
现在,新的积木已经可用。
Donc ici, j'ai un menu déroulant qui me permet de choisir ma variable score.
这里有个下拉菜单,让我选择‘score’变量。
Donc les blocs qui vont nous intéresser ici,
因此,我们关注的积木是:
ça va être de mettre le score à zéro pour commencer le jeu,
游戏开始时,把分数设为零;
et d'ajouter plus un à la variable score.
以及给‘score’变量加一。
Fais bien attention ici à vérifier que la variable choisie est bien la bonne.
这里要特别注意,确认所选变量确实是正确的。
Ici, là où je veux ajouter un, c'est bien à score.
我要加1的位置,确实在'score'这个变量上。
Donc à partir de ce programme qui est déjà rédigé et de ces deux blocs,
现在,基于这个已写好的程序和这两个代码块,
essaye de faire en sorte que à chaque fois que le chat touche un muffin,
试着让小猫每次碰到松饼时,
le score augmente de un,
分数就增加1;
et quand le jeu est lancé, que cette variable revienne bien à zéro.
而且游戏启动时,该变量必须重置为零。
Tu peux mettre pause sur la vidéo pour essayer de résoudre ce défi.
你可以暂停视频,尝试解决这个挑战。
Voyons la correction ensemble.
我们一起来看答案。
Donc première chose, on se pose la question à quel moment le score doit revenir à
首先,我们要问:分数应在何时归零?
zéro. Eh bien tout simplement au début du jeu,
很简单——就在游戏开始时,
c'est- à- dire quand le drapeau vert est appuyé, je dois revenir à zéro.
也就是绿旗被点击的那一刻,我需要将分数设为零。
Donc ce bloc" mettre score à zéro",
所以这个‘将score设为0’的代码块,
je vais venir l'intercaler entre ma boucle et mon drapeau vert.
我要把它插在循环和绿旗之间。
Quand le drapeau vert est appuyé,
当绿旗被点击时,
je mets le score à zéro et ensuite je vérifie si le muffin est touché,
我先把分数设为0,然后检查是否碰到了松饼;
auquel cas, si la souris est touchée pardon,
如果碰到了——抱歉,是碰到了老鼠,
et auquel cas je jouerai un petit son pour dire que je l'ai mangé.
那么我就播放一个音效,表示它被吃掉了。
C'est à ce moment- là, une fois que le son est joué,
就在音效播放完毕的这一刻,
que je vais pouvoir ajouter plus un à score.
我才给score加1。
Donc ici je peux le mettre juste ici et je peux tester mon jeu.
所以我可以把它放在这里,然后测试我的游戏。
Je mets en plein écran, j'appuie sur le drapeau vert.
我切换到全屏,点击绿旗。
Je me prépare, et c'est parti.
我准备好了,开始!
Je vais attraper le muffin.
我去抓松饼。
J'ai bien le son qui est joué et j'ai bien le muffin qui disparaît et un score qui
音效正常播放了,松饼也消失了,分数也增加了。
s'ajoute. Donc maintenant, nous avons réussi à faire en sorte que la variable
因此,现在我们成功实现了变量的变化。
évolue. Donc ici, il s'agit d'une variable de score,
这里用的是一个计分变量,
mais on pourrait très bien imaginer aussi que notre souris a des vies et à chaque
但也可以设想:老鼠有生命值,
fois que le chat l'attrape, la vie descend.
每次被猫抓住,生命值就减少一点。