A2 · 第1集 · 5:40

用Scratch控制角色移动

本集讲解如何用键盘方向键控制Scratch角色左右上下移动,并实现转向和换装动画效果。

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

字幕

  1. Coder un jeu avec Scratch, premier épisode dans lequel nous allons voir comment

    用Scratch编程制作一款游戏,第一集我们将学习

  2. coder les déplacements d'un lutin,

    编写角色的移动程序,

  3. pour que celui- ci se déplace avec les touches du clavier,

    使其能通过键盘按键控制移动,

  4. comme par exemple la raquette du jeu de pong ici,

    比如这里乒乓游戏中的球拍,

  5. ou le petit chat qui se déplace de la gauche vers la droite ou de haut en bas grâce

    或小猫借助键盘方向键,

  6. aux flèches du clavier.

    从左向右、从上向下移动。

  7. Nous allons apprendre à coder ceci avec Scratch et nous y allons tout de suite.

    我们将用Scratch来学习编写这段程序,现在就开始吧!

  8. Alors nous voici sur Scratch et nous allons donc déplacer notre lutin de la gauche

    好了,我们现在进入Scratch界面,

  9. vers la droite ou de haut en bas en utilisant les quatre flèches du clavier.

    将用键盘四个方向键控制角色左右或上下移动。

  10. Pour cela, dans le menu événement,

    为此,在‘事件’菜单中,

  11. j'ai un événement qui dit quand une touche du clavier est pressée,

    我选择一个‘当按下键盘某键时’的事件,

  12. alors un script va commencer.

    此时脚本便会开始运行。

  13. Et ici, je peux choisir n'importe quelle touche du clavier,

    在这里,我可以任选一个键盘按键,

  14. par exemple la flèche droite.

    例如右箭头键。

  15. Et quand la flèche droite est pressée,

    当按下右箭头键时,

  16. on va faire bouger le lutin vers la droite. Alors l'axe horizontal,

    让角色向右移动。水平方向是X轴,即横坐标轴。

  17. c'est l'axe X, l'axe des abscisses.

    (即横坐标轴)

  18. Et donc quand on va vers la droite,

    因此,向右移动时,

  19. on va se déplacer sur l'axe X et on va ajouter 10 à l'abscisse du lutin,

    我们沿X轴移动,并给角色的横坐标加10,

  20. ce qui va le faire aller vers la droite.

    这样它就会向右移动。

  21. Si je veux le faire aller vers la gauche, je vais dupliquer ceci.

    如果想让它向左移动,我就复制这一段代码。

  22. Donc quand la flèche gauche est pressée, pour le faire aller vers la gauche,

    所以当按下左箭头键时,为让它向左移动,

  23. il faut retrancher 10 à son abscisse.

    需从它的横坐标中减去10。

  24. Et donc je vais ajouter- 10 à

    因此,我给角色的横坐标

  25. l'abscisse du lutin.

    加上–10。

  26. J'ajoute- 10 à X.

    我给X加上10。

  27. Et là, si je regarde ce que ça donne,

    现在,如果我看看效果,

  28. mon lutin va de la droite vers la gauche. Alors avant de faire aller de haut en bas,

    我的角色会从右向左移动。所以在让它上下移动之前,

  29. on va essayer d'améliorer un petit peu ceci.

    我们先稍微改进一下这个效果。

  30. Parce que là, quand il va vers la gauche, il donne l'impression de reculer.

    因为目前它向左移动时,看起来像是在后退。

  31. Or ce que je voudrais, c'est qu'il se retourne avant

    而我希望的是:

  32. d'aller vers la gauche.

    在向左移动之前先转身。

  33. Donc pour ça, on va choisir la fonction" s'orienter à".

    因此,我们要选择“面向”这个指令。

  34. Donc avant de le faire se déplacer, et si je déroule ici,

    也就是说,在让它移动之前,如果我在这里展开菜单,

  35. je vois que je peux l'orienter à- 90 degrés, c'est- à- dire vers la gauche.

    就能看到可以把它设为-90度方向,也就是朝左。

  36. Donc si je regarde ce que ça donne maintenant,

    那么现在再看效果:

  37. quand j'appuie sur la touche gauche, hop, il s'est retourné,

    当我按下左方向键时,它立刻转身了,

  38. il va avancer.

    然后向前走。

  39. Par contre, quand j'appuie sur la touche droite,

    但当我按下右方向键时,

  40. il reste retourné vers la gauche. Donc avant de le déplacer à droite,

    它仍面朝左边。所以,在让它向右移动前,

  41. on va également le retourner vers la droite, c'est à 90 degrés,

    我们也要让它转向右边,即90度方向。

  42. et maintenant mon lutin va dans un sens et dans l'autre.

    现在,我的角色就能左右自如地移动了。

  43. Alors le lutin que j'ai choisi ici, c'est le lutin par défaut.

    我这里选用的角色是默认角色。

  44. Si je regarde ses costumes, il a deux costumes.

    如果查看它的造型,会发现它有两个造型。

  45. Et quand on fait succéder ces deux

    当这两个造型快速交替显示时,

  46. costumes, ça nous donne l'impression que le lutin marche.

    就会让人感觉角色在走路。

  47. Alors ici, à chaque fois qu'il aura avancé,

    所以,每次它前进之后,

  48. je vais aller dans Apparence et je vais faire changer son costume.

    我就进入「外观」类别,让它切换造型。

  49. Je vais aller au costume suivant,

    我将切换到下一个造型,

  50. comme ceci, et ici aussi.

    像这样,这里也一样。

  51. Et là, quand je le fais se déplacer,

    这时,当我让它移动时,

  52. j'ai l'impression qu'il marche avec la succession de costumes.

    我感觉它正穿着一套套服装行走。

  53. C'est un petit peu plus joli comme mouvement.

    这样运动看起来更美观一些。

  54. Alors maintenant, on va pouvoir faire pareil

    现在,我们可以用同样的方法,

  55. pour aller vers le haut, vers le bas, on va voir si ça marche.

    实现向上、向下移动,来看看效果如何。

  56. Donc je vais choisir toujours mon événement quand une touche est pressée,

    我仍选择“当按下某个键时”这个事件,

  57. donc je vais choisir la touche haut.

    这次选“上箭头键”。

  58. Cette fois, je vais faire pareil, je vais l'orienter vers le haut.

    这次我也做同样的操作:让它朝上方向。

  59. Donc ici, il s'agit de l'orienter à 0 degré, donc je l'oriente vers le haut.

    这里需要设为0度方向,也就是朝上。

  60. C'est marqué dans le menu, 0

    菜单里写着:

  61. degré correspond vers le haut.

    0度对应朝上方向。

  62. Ici, on va ajouter 10 cette fois à Y, ce qui va le faire monter.

    这里,我要给Y坐标加10,让它向上移动。

  63. L'axe vertical, c'est l'axe des ordonnées, c'est Y, il est noté Y cet

    垂直轴是纵轴,即Y轴,

  64. axe, c'est positif vers le haut, négatif vers le bas.

    这个轴标为Y,向上为正,向下为负。

  65. Et toujours pareil, on va le faire passer au costume suivant pour donner

    同样地,我们让它切换到下一个造型,

  66. l'impression qu'il avance.

    以营造前进的视觉效果。

  67. Alors si je regarde ce que ça donne.

    我来查看一下效果。

  68. Alors il change bien de costume, mais

    它确实顺利切换了造型,但

  69. il n'est pas orienté vers le haut.

    它并没有朝上方向。

  70. Parce que par défaut, l'orientation ne se fait que de gauche à droite.

    因为默认情况下,角色只支持左右方向旋转。

  71. Alors ici, dans le menu des mouvements,

    在“运动”菜单中,

  72. il y a un bloc qui s'appelle" fixer le sens de rotation", vous voyez,

    有一个叫“设定旋转方式”的积木,您看——

  73. position à gauche ou à droite, et ici on peut le faire s'orienter à 360 degrés.

    可设为仅左右翻转,或允许360度任意旋转。

  74. Donc je vais rajouter ça au début de mon script ici.

    所以我要把这个积木加到脚本开头。

  75. Et si je regarde ce que ça donne, cette fois,

    再来看效果——

  76. il s'est bien orienté vers le haut. Alors je vais dupliquer tout ça et je vais juste

    这次它确实朝上方向了。接下来我复制整个脚本,

  77. changer la flèche.

    只把按键换成其他方向键。

  78. Je vais cliquer sur la flèche bas, donc il va se ranger,

    我将点击向下箭头,这样它就会自动对齐。

  79. je laisse orienter à 360 degrés, on va l'orienter vers le bas,

    我先保持方向为360度,再把它朝下调整。

  80. c'est- à- dire 180 degrés.

    也就是180度。

  81. Et pour le faire descendre, il faut retrancher 10,

    要让它下降,需减去10。

  82. c'est- à- dire ajouter moins 10 à y.

    也就是给y坐标加上负10。

  83. Alors si je regarde ce que ça donne, vers le haut, vers le bas,

    现在我来看看效果:向上、向下,

  84. ça fonctionne.

    没问题。

  85. Si je vais à droite, ça fonctionne.

    向右移动,也没问题。

  86. Par contre, quand je vais à gauche, il marche à l'envers.

    但向左移动时,方向却反了。

  87. Vers la droite, c'est bon, et vers la gauche, il marche à l'envers.

    向右是对的,向左却反了。

  88. Donc en fait, ce que je vais faire ici,

    所以,我接下来要做的,

  89. c'est que pour l'orientation dans les mouvements gauche- droite,

    针对左右移动的方向设定,

  90. je vais fixer le sens de rotation uniquement en position gauche- droite et non pas à

    只在左右位置固定旋转方向,

  91. 360 degrés. Donc je vais en mettre un ici et je vais en remettre un ici.

    而不是设为360度。因此,我要在这里加一个,再在这里加一个。

  92. Voilà, et là je devrais avoir un script qui fonctionne.

    好了,现在这个脚本应该能正常运行了。

  93. Mon lutin se déplace de la gauche.

    我的角色能从左向右移动,

  94. vers la droite et de haut en bas exactement comme je le souhaite.

    也能从上到下移动,完全符合我的预期。

  95. Voilà donc pour ce script.

    以上就是这个脚本的全部内容。

  96. Cet épisode est terminé, ne ratez pas le prochain épisode dans lequel nous verrons

    本期节目到此结束,敬请期待下期,

  97. une autre façon de déplacer le lutin qui sera plus adaptée au mouvement d'un

    我们将介绍另一种移动角色的方法,

  98. vaisseau spatial ou d'un bateau par exemple.

    这种方法更适用于航天器或轮船等物体的运动。

  99. À bientôt!

    我们下次见!