A2 · 第3集 · 5:50

游戏初始化设置

本集讲解如何在Scratch中为游戏角色(猫和老鼠)设置初始位置、大小和方向,确保每次点击绿旗时游戏都能正确重置。

来源:Montagne Vincent / tube-numerique-educatif.apps.education.fr · 许可:CC BY 4.0

字幕

  1. Coder un jeu avec Scratch, troisième épisode dans lequel nous allons nous intéresser

    用Scratch编程制作游戏,这是第三集,我们将关注

  2. à l'initialisation d'un programme,

    程序的初始化,

  3. qui est absolument indispensable pour tous les jeux.

    这对所有游戏都绝对必不可少。

  4. Il s'agit de donner par exemple ici au chat et à la souris une position initiale,

    例如,这里要给小猫和老鼠设定初始位置,

  5. une taille initiale.

    以及初始大小。

  6. Si je n'ai pas d'initialisation au début de mon programme,

    如果我的程序开头没有初始化步骤,

  7. le chat et la souris resteraient dans la position où ils étaient quand la partie

    小猫和老鼠就会停留在上一局结束时所在的位置,

  8. s'est arrêtée.

    也就是暂停的位置。

  9. Or je veux que la souris aille dans le coin en haut à gauche,

    但我希望老鼠出现在左上角,

  10. que le chat aille dans le coin en haut à en bas,

    小猫出现在右下角,

  11. et qu'ils se remettent à une taille normale au début du jeu.

    而且它们在游戏开始时恢复为正常尺寸。

  12. C'est ce que l'on appelle l'initialisation,

    这便称为初始化,

  13. et ce que nous allons apprendre à coder avec Scratch tout de suite.

    接下来我们就马上学习如何用Scratch编写初始化代码。

  14. Alors nous voici donc avec notre jeu du chat et de la souris.

    现在,我们来看这个“小猫抓老鼠”的游戏。

  15. Donc ça c'est la position initiale que je souhaite,

    这就是我想要的初始状态,

  16. c'est- à- dire quand je commence le jeu,

    也就是说,当我开始游戏时,

  17. le chat est en bas à droite de l'écran et la souris en haut à gauche,

    小猫位于屏幕右下角,老鼠位于左上角,

  18. et leurs dimensions respectives sont celles- ci.

    它们各自的尺寸就如图中所示。

  19. Alors voyons voir ce qui se passe maintenant si je lance le jeu,

    现在我们来看看,如果运行游戏会发生什么——

  20. j'ai enlevé le script qui initialise le jeu, on va voir ce qui se passe.

    我已移除了初始化脚本,来观察效果。

  21. Donc si la souris mange le chat, voilà ce qui se passe,

    比如,当老鼠吃掉小猫时,就会出现这种情况;

  22. et maintenant si je reclique sur le drapeau de démarrer,

    现在,我再点击绿色旗子重新启动游戏,

  23. j'ai enlevé le script uniquement pour le chat.

    我只移除了小猫的初始化脚本。

  24. Donc la souris recommence bien au bon endroit, mais vous voyez le chat,

    所以老鼠能正确回到初始位置,但您看小猫——

  25. lui, il a recommencé là où il était resté après s'être fait croquer par la souris,

    它却停在了上次被老鼠吃掉时的位置,

  26. et il est resté à la taille à laquelle il était.

    尺寸也保持被吃掉时的大小。

  27. Et si je recommence encore une fois, il est encore plus petit,

    如果我再重复一次,它就变得更小了,

  28. puisqu'à chaque fois sa taille diminue.

    因为每次它的尺寸都会缩小。

  29. C'est une partie du script que je ne vous montre pas pour le moment,

    这部分脚本我暂时不向你们展示,

  30. on la verra plus tard.

    稍后我们再来看。

  31. Mais en tout cas, ce n'est pas convenable, puisque moi ce que je veux,

    但无论如何,这并不合适,因为我的目标是:

  32. c'est que quand je clique sur le bouton vert,

    当我点击绿色按钮时,

  33. le chat revienne à sa position initiale et à sa taille initiale.

    小猫能回到初始位置和初始大小。

  34. Alors ça se passe quand on clique sur le drapeau vert.

    这发生在点击绿色旗帜时。

  35. Donc déjà, je vais prendre dans les événements le bloc" quand le drapeau vert est

    因此,我先从‘事件’类别中选择这个积木:

  36. cliqué" et nous allons faire des choses à partir de là.

    ‘当绿旗被点击’,然后我们从这里开始操作。

  37. Alors première chose qu'on peut faire,

    那么,我们能做的第一件事是,

  38. c'est remettre le chat à sa taille initiale. Vous voyez ici le bloc" mettre à un

    将小猫恢复到初始大小。你们看,这里是这个积木:

  39. certain pourcentage de sa taille initiale".

    ‘设为初始大小的特定百分比’。

  40. Là on est à 5, 6%, c'est la taille actuelle en fait.

    目前显示的是5.6%,也就是它当前的实际大小。

  41. Là actuellement le chat est à 5, 6% de sa taille initiale.

    此刻,小猫的大小是其初始大小的5.6%。

  42. Je vais le mettre à 75% parce que je trouve que 100%, c'est trop gros.

    我把它设为75%,因为我觉得100%太大了。

  43. Donc je le mets à 75% de sa taille initiale,

    所以我把它设为初始大小的75%,

  44. c'est comme ça que je veux qu'il soit au début du jeu.

    这就是我希望游戏开始时它的样子。

  45. Maintenant au niveau de sa position, je vais dans les blocs des mouvements,

    接下来处理它的位置,我进入‘运动’类积木,

  46. et on va mettre le chat à une certaine position, vous voyez x,

    并把小猫移到某个坐标位置——你们看,x 和 y。

  47. y. Alors pour vous expliquer ça,

    为了帮你们理解这一点,

  48. je vais basculer sur un arrière- plan qui est celui- ci.

    我切换到这个背景画面。

  49. Il faut comprendre que dans Scratch, les points ont des coordonnées,

    需要明白,在Scratch中,每个点都有坐标,

  50. les lutins ont des coordonnées, car nous avons un repère ici,

    角色也有坐标,因为我们这里有一个坐标系:

  51. vous voyez deux axes qui sont tracés, un axe en orange,

    你们看到两条轴线,橙色的是横轴,

  52. c'est l'axe horizontal, c'est l'axe des abscisses, et verticalement,

    即x轴(横坐标轴),而竖直方向的是y轴(纵坐标轴)。

  53. l'axe des ordonnées.

    就是y轴(纵坐标轴)。

  54. Donc l'abscisse, c'est x, peut varier entre- 240

    因此,横坐标x的取值范围是-240到240。

  55. et 240. L'ordonnée, sur l'axe vertical, peut varier entre- 180 et+ 180.

    纵坐标(垂直轴上的坐标)则在-180到+180之间。

  56. Les coordonnées 0, 0, x égal 0, y égal 0, correspondent au centre de l'écran.

    坐标(0, 0),即x=0、y=0,对应屏幕中心位置。

  57. Et vous pouvez remarquer aussi qu'en bas à droite

    另外,您还可以注意到游戏屏幕的右下角,

  58. de l'écran de jeu, il y a les deux coordonnées X et Y qui sont affichées,

    显示着X和Y两个坐标值,

  59. qui correspondent aux coordonnées du pointeur de la souris.

    它们代表鼠标指针当前所在的位置。

  60. Si je mets au centre de l'écran, j'arrive à 0 0.

    如果我把鼠标移到屏幕正中央,坐标就变成0, 0。

  61. Et là où je veux que le chat soit au départ, je suis ici vers 200- 140

    而我希望小猫初始出现在这里,大约是(200, -140),

  62. peut- être. Donc c'est là que je vais mettre mon chat au départ.

    所以我就把小猫的起始位置设在这里。

  63. Donc si je reviens, alors je vais revenir sur l'arrière- plan que j'utilise,

    现在我返回背景设置界面,

  64. je reviens sur mon lutin, si ça veut bien marcher, et je reviens au script.

    再回到角色编辑页——希望它能正常响应——然后回到脚本区。

  65. Donc ici, je vais mettre mon lutin sur X,

    在这里,我将设置角色的X坐标,

  66. on va le mettre à 200 et sur Y à- 140. Voyons

    设为200;Y坐标设为-140。我们来看看效果。

  67. voir ce que ça donne maintenant.

    ……

  68. Donc si je clique sur le drapeau vert, le lutin est bien revenu à

    点击绿色旗帜后,角色确实回到了正确的位置,

  69. la bonne position, à la bonne taille,

    也恢复了正确的大小,

  70. mais par contre il n'est pas orienté comme je veux,

    但朝向却不是我想要的——

  71. il est orienté vers le bas, parce que quand il a terminé la partie précédente,

    它朝下,因为上一关结束时,

  72. il était orienté vers le bas.

    它就是朝下的。

  73. Moi je orienté vers la gauche.

    而我希望它朝左。

  74. Donc je vais prendre le bloc s'orienter à, je l'oriente vers la gauche,

    所以我选用‘面向…方向’积木,并把它设为朝左,

  75. c'est- à- dire- 90 degrés.

    也就是-90度。

  76. Voyons voir ce que ça donne maintenant.

    再来看看效果如何。

  77. Ah, là il s'est orienté vers la gauche, mais il est à l'envers.

    啊,它确实朝左了,但却是倒立的!

  78. Alors si vous avez regardé les épisodes précédents,

    如果您看过之前的视频集,

  79. vous savez qu'on peut fixer le sens de la rotation à droite- gauche.

    就知道我们可以把旋转方式固定为左右翻转。

  80. Là, par défaut, il était à 360 degrés.

    这里,默认值是360度。

  81. Donc voyons voir ce que cela donne maintenant.

    我们来看看现在效果如何。

  82. Le chat est dans la bonne position au bon endroit.

    小猫已处在正确的位置。

  83. Alors on va faire plusieurs essais pour voir si ça marche.

    接下来,我们将多次测试,看看是否正常运行。

  84. Il a l'air de revenir toujours au bon endroit et dans la bonne position.

    它似乎每次都准确回到原位并保持正确朝向。

  85. Alors j'ai un script à peu près équivalent pour la souris.

    我还为鼠标编写了一个功能相近的脚本。

  86. qui elle revient en haut à gauche de l'écran, contrairement au chat,

    鼠标会回到屏幕左上角,而小猫不会。

  87. le script de la souris le voici.

    这是鼠标的脚本。

  88. L'initialisation c'est ceci, mettre la taille à 75%, on va à X- 200,

    初始化部分包括:将大小设为75%,移动到X坐标-200、

  89. Y 147, et on l'oriente à 90 degrés.

    Y坐标147,并将方向设为90度。

  90. Voilà, donc ça ce sont des scripts d'initialisation qui sont absolument

    这些是初始化脚本,

  91. indispensables pour commencer un jeu dans de bonnes conditions.

    对游戏顺利启动至关重要。

  92. Voilà, ce script et cet épisode sont terminés,

    好了,这个脚本和本集内容就到这里。

  93. ne ratez pas le prochain épisode dans lequel nous verrons comment écrire un script

    请别错过下一期,

  94. qui permet à un lutin de se diriger automatiquement vers un autre lutin.

    我们将学习如何编写一个脚本,让角色自动朝向另一个角色移动。

  95. À bientôt!

    我们很快再见!