A2 · 第10集 · 6:07
用Scratch计时器
本集讲解如何在Scratch中使用计时器功能,通过每5秒增加老鼠角色移动速度来提升游戏难度。
来源:Montagne Vincent / tube-numerique-educatif.apps.education.fr · 许可:CC BY 4.0
字幕
Coder un jeu avec Scratch, neuvième épisode dans lequel nous allons voir comment
用Scratch编程制作游戏,第九集,我们将学习
utiliser le chronomètre qui est disponible dans Scratch.
如何使用Scratch中内置的计时器。
Alors par exemple ici, dans le jeu du chat et la souris,
例如,在这个‘猫抓老鼠’游戏中,
vous voyez le chronomètre en bleu là qui décompte et toutes les cinq secondes,
您可以看到右上方蓝色的倒计时器;每过五秒,
la vitesse de la souris augmente de deux.
老鼠的速度就增加2。
Là elle est de cinq, elle va bientôt passer à sept.
目前是5,很快就会升到7。
Voilà, ce qui augmente la difficulté du jeu en fait.
这样,游戏难度就逐步提高了。
Ici j'utilise le chronomètre pour augmenter la difficulté du jeu,
这里我用计时器来提升游戏难度,
mais on peut imaginer l'utilisation du chronomètre pour compter les points,
但您也可以用它来计分,
pour donner un score par exemple, on peut imaginer énormément de choses.
比如计算最终得分——其实能想到的应用还有很多。
Donc nous allons voir comment fonctionne ce chronomètre dans Scratch et nous y
接下来,我们就来看看Scratch中的计时器是如何工作的,
allons tout de suite.
马上开始吧!
Alors nous y voici donc, et nous retrouvons les scripts que nous avons laissés à
好了,我们已进入项目界面,
l'épisode précédent.
上一集留下的脚本都还在。
Alors j'y reviens rapidement.
我快速回顾一下。
Pour le chat, j'ai d'abord ici une initialisation,
对于猫角色,我首先设置了初始化,
puis après dans la boucle répéter indéfiniment,
接着在‘重复执行’循环中,
on teste si la souris est touchée. Si la souris est touchée,
检测是否碰到了老鼠;如果碰到,
le chat a un effet de pixellisation,
猫会显示像素化效果,
puis il envoie à tous les autres lutins un message" game over".
再向所有其他角色广播‘游戏结束’消息。
À côté, c'est le script
旁边这个脚本,
pour ses déplacements.
控制猫的移动。
Si je regarde le chien, le chien est caché en début de partie quand on commence le
再看狗角色:游戏一开始它被隐藏,
jeu, et il n'apparaît qu'à l'écran lorsqu'il reçoit le message" game over".
只有收到‘游戏结束’消息后才显示出来。
Pareil pour le lutin texte" game over" qui apparaît uniquement quand la partie est
同样,‘游戏结束’文字角色也只在游戏结束时出现。
finie. Et la souris sur laquelle nous allons travailler maintenant,
而我们现在要重点处理的老鼠角色,
donc j'ai un script d'initialisation, ensuite j'ai son déplacement,
我为它编写了初始化脚本和移动脚本:
elle se dirige tout le temps vers le chat, et lorsque le chat est touché,
它始终朝向猫移动;一旦被猫碰到,
elle a un script avec un effet graphique.
就会触发一个图形特效脚本。
Et quand elle reçoit le message game over,
当她收到‘游戏结束’消息时,
elle disparaît.
她就会消失。
Alors nous allons travailler sur la souris et nous allons commencer tout d'abord par
接下来,我们将处理老鼠角色,首先
créer une variable.
创建一个变量。
Donc le but c'est que la vitesse de la souris augmente toutes les cinq secondes.
目标是:老鼠的移动速度每五秒增加一次。
Alors on va commencer par créer une variable.
我们先来创建一个变量。
ici qu'on va appeler vitesse
这里我们把它命名为‘老鼠速度’,
souris par exemple.
例如。
Comme ceci. Donc cette variable,
像这样。这个变量
c'est la variable dans laquelle nous allons mettre la vitesse de la souris.
将用来存储老鼠的当前移动速度。
Alors ici, vitesse souris peut prendre la valeur que je veux.
此时,‘老鼠速度’可以设为任意值。
Alors par exemple, au lieu d'avancer de 5 dans le script,
例如,在移动脚本中,原本是前进5步,
nous allons avancer de la vitesse souris.
现在我们将改为按‘老鼠速度’的值前进。
Mais au début du jeu, il va falloir que j'initialise cette vitesse dans le script
但游戏一开始,我需要在初始化脚本中
d'initialisation, et on va mettre la vitesse de la souris, par exemple,
设定好这个速度;比如,
à 3. Donc au début du jeu, la vitesse de la souris est à 3,
设为3。因此游戏开始时,老鼠速度是3,
et dans le script du déplacement, on avance de la vitesse de la souris,
而在移动脚本中,我们就按‘老鼠速度’的值前进,
c'est- à- dire à 3, tant
也就是3步,
que cela n'aura pas été changé.
直到该值被更改为止。
Maintenant, ce que je veux, c'est écrire un script qui me permette,
现在,我想编写一个脚本,
toutes les 5 secondes, d'ajouter 2 à cette vitesse, à cette variable.
每隔5秒,给这个速度(即该变量)加2。
Alors pour cela, nous allons utiliser dans les capteurs, le chronomètre.
为此,我们要用到‘传感器’类别中的‘计时器’功能。
Donc nous avons deux blocs ici qui concernent le chronomètre.
这里有两个与计时器相关的积木。
D'abord la réinitialisation du chronomètre,
首先是‘重置计时器’,
c'est- à- dire on met le chronomètre à 0.
也就是把计时器归零。
Donc ça, on va le mettre dans l'initialisation,
因此,这个要放在初始化部分,
dans le script d'initialisation, quand on clique sur le drapeau vert,
也就是点击绿色旗帜时运行的初始化脚本中。
le chronomètre est à 0.
此时计时器归零。
Et ici, je peux lire avec ce bloc la valeur du chronomètre.
在这里,我可以用这个积木读取计时器的当前值。
Donc ce que nous allons faire, c'est que si le chronomètre est supérieur à 5,
接下来我们要做的是:如果计时器超过5秒,
Donc on va prendre un bloc dans les opérateurs, le bloc supérieur à.
我们从运算符中选取‘大于’这个积木。
Donc si le chronomètre.
如果计时器……
Je vais mettre ici est supérieur
我将在这里填入‘大于’,
à 5. Alors nous allons ajouter 2 à la vitesse de la souris.
再设为‘5’。那么,我们就给鼠标速度加2。
Donc alors, on va mettre
于是,我们来设置:
la vitesse, on va pardon ajouter.
鼠标速度——抱歉,是‘增加’速度,
2 à la vitesse de la souris,
给鼠标速度加2,
comme ceci. Et on va remettre le chronomètre à zéro.
像这样。同时,把计时器重置为零。
Et comme ça, si on répète cela indéfiniment, toutes les 5 secondes,
这样一来,只要无限循环执行,每过5秒,
on va ajouter 2 à la vitesse de la souris.
鼠标速度就会增加2。
Alors ce script, on peut le commencer dès que la partie commence,
这个脚本,可以在游戏一开始时就启动,
donc on va mettre un événement" quand le drapeau vert est cliqué".
所以添加一个‘当绿旗被点击’事件。
On répète indéfiniment, si le chronomètre est supérieur à 5,
无限循环执行:如果计时器大于5,
alors. La vitesse de la souris augmente de 2 et on remet le chronomètre à 0.
那么,鼠标速度加2,并将计时器重置为0。
Donc dans mon initialisation, j'ai bien
因此,在我的初始化部分,我确实已先将速度设为3,
commencé par mettre la vitesse à 3, je remets le chronomètre à 0 au début du jeu,
并在游戏开始时把计时器归零,
et dans le script de mouvement, il faut bien avancer de vitesse souris,
而在移动脚本中,必须用‘以鼠标速度前进’,
car c'est ça qui va changer.
因为这才是会动态变化的参数。
Alors si je regarde ce qui se passe maintenant,
现在,我来看看实际效果:
donc quand je clique sur le drapeau vert, la souris avance tout doucement,
点击绿色旗帜后,鼠标缓慢前进,
et petit à petit, elle va augmenter, voilà.
然后逐渐加快,就是这样!
Alors on va rajouter quelque chose, le chronomètre,
接下来,我们添加一个计时器。
on peut l'afficher à l'écran en cochant la case qui est devant le bloc ici.
勾选该积木前方的复选框,即可在屏幕上显示它。
Et ici, vous voyez, le chronomètre est ici,
您看,计时器就在这里。
comme ça j'ai la vitesse de la souris et le chronomètre.
这样,我就能同时看到鼠标速度和计时器了。
Alors ici, le chronomètre, il s'arrête pas, il continue,
这里的计时器不会自动停止,它会一直运行。
mais quand je clique sur le drapeau vert, voilà, le chronomètre a commencé à 0,
但当我点击绿色旗帜时,计时器就会从0开始计时。
et lorsqu'il va arriver à 5 secondes, si j'y arrive, je recommence,
当它到达5秒时——如果我能完成——我就重新开始。
s'il arrive à 5 secondes, vous allez voir.
如果它真到了5秒,您马上就能看到效果。
que la vitesse de la souris va passer à 5, voilà, elle a augmenté,
此时,鼠标速度会变为5,看,它提升了。
donc ça va un petit peu plus vite, et.
因此鼠标移动会稍快一些。
Là, elle est passée à 7, et voilà.
现在,速度已升至7,就是这样。
Donc voilà comment utiliser le chronomètre
这就是Scratch中计时器的使用方法。
qui est disponible dans Scratch.
它内置在Scratch中,随时可用。
C'est une utilisation, il y en a évidemment d'autres.
这只是其中一种用法,当然还有其他多种用途。
Ce script est opérationnel et il est terminé.
这个脚本已可正常运行,并已全部完成。
Cet épisode est terminé, ne ratez pas le prochain épisode dans lequel nous verrons
本期节目到此结束,下期节目请勿错过——我们将学习
comment créer un jeu de tir, pour cela nous utiliserons les clones.
如何制作射击游戏,为此我们将用到“克隆”功能。
À bientôt.
我们下次再见!