A2 · 第6集 · 5:59

角色移动与朝向

本集讲解如何让角色随左右方向键移动并自动转向对应方向。

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

字幕

  1. Bonjour à tous, dans cette vidéo nous allons voir comment orienter un personnage

    大家好,本期视频我们将学习如何让角色在移动时朝向正确的方向。

  2. lors d'un déplacement.

    当它移动时。

  3. Ici j'appuie sur la flèche droite, ici j'appuie sur la flèche gauche,

    这里我按右箭头键,这里我按左箭头键,

  4. on peut voir que mon personnage s'oriente dans la bonne direction en fonction de la

    可以看到,我的角色会根据所按的按键,自动转向对应的方向。

  5. touche appuyée.

    所按的按键。

  6. Voyons comment faire.

    我们来看看具体怎么做。

  7. Nous voici sur notre espace de travail.

    现在我们来到了工作区。

  8. Pour commencer, nous allons venir ajouter un arrière- plan à notre scène.

    首先,我们要为场景添加一个背景。

  9. Je vais dans la rubrique Arrière- plan,

    我点击‘背景’栏目,

  10. puis je vais choisir par exemple le fond Blue Sky.

    然后选择例如‘蓝天’这个背景。

  11. Ici mon fond d'écran est en place.

    这里,我的背景已经设置好了。

  12. Je vais pouvoir maintenant m'occuper du programme de mon lutin.

    接下来,我就可以开始编写角色的程序了。

  13. Pour commencer, je vais lui dire d'aller se mettre à une position de départ sur

    首先,我要让它移动到屏幕上的起始位置。

  14. l'écran. Pour cela, je déplace mon lutin à l'endroit de départ.

    为此,我把角色拖动到起始位置。

  15. Je vais le mettre ici, en bas à gauche.

    我把它放在这里,屏幕左下方。

  16. Je vais initialiser son programme en allant chercher l'événement drapeau vert qui me

    我将用‘绿旗’事件来初始化它的程序,

  17. servira de point de départ.

    这将成为程序的起点。

  18. Puis je vais lui indiquer ses coordonnées pour qu'il commence toujours à la même

    接着,我要设定它的坐标,确保它每次都在同一位置开始。

  19. place. Pour cela, je récupère le bloc de mouvement aller à x- 162 y- 119 que

    为此,我取出‘移到 x = -162,y = -119’这个移动积木,

  20. je viens mettre ici, ce

    把它放到这里。

  21. qui me permettra, si le personnage est déplacé malencontreusement,

    这样,如果角色不小心被移走了,

  22. en appuyant sur le drapeau vert de le remettre directement à sa bonne position.

    只要点击绿旗,它就会立刻回到正确的位置。

  23. Nous allons lui donner aussi une autre consigne,

    我们还要给它另一条指令,

  24. une autre instruction qui sera l'orientation du personnage.

    即设定角色的朝向。

  25. En effet, ici mon personnage peut se déplacer soit vers la droite,

    事实上,目前我的角色可以向右移动,

  26. soit vers la gauche.

    也可以向左移动。

  27. Donc je veux pouvoir le faire tourner soit vers la droite, soit vers la gauche.

    因此,我希望它能向右或向左旋转。

  28. Donc je vais fixer directement

    因此,我将直接设定

  29. le sens de rotation.

    旋转方向。

  30. Ici je vais choisir fixer le sens de rotation à gauche/ droite.

    这里我选择将旋转方向固定为向左或向右。

  31. Voilà ces instructions de départ.

    这就是初始指令。

  32. Occupons nous maintenant du mouvement et de l'orientation du personnage.

    接下来,我们来处理角色的移动和朝向。

  33. Je t'ai préparé ici les blocs nécessaires pour réaliser ce défi.

    我已为你准备好完成这个挑战所需的积木。

  34. Le chat pourra se déplacer vers la droite ou vers la gauche en regardant toujours

    小猫可以向右或向左移动,

  35. dans la bonne direction en fonction de la flèche appuyée.

    同时始终面朝按键所指示的正确方向。

  36. Certaines valeurs, ici par exemple touche espace,

    某些数值——比如这里的空格键,

  37. ou peut- être l'orientation ou le nombre de pixels,

    或者可能是朝向、像素数等,

  38. devront être modifiées selon ce que tu as en tête.

    需根据你的具体想法进行调整。

  39. Tu peux appuyer sur pause dans cette vidéo pour essayer de réaliser ce défi.

    你可以点击本视频的暂停键,尝试自己完成这个挑战。

  40. Voyons maintenant ensemble comment faire pour déplacer le chat et qu'il regarde dans

    现在,我们一起看看如何让小猫移动,

  41. la bonne direction.

    并让它始终面朝正确的方向。

  42. Première chose, j'initialise mon programme avec le drapeau vert,

    第一步,我用绿色旗子启动程序,

  43. ça sera le point de départ de ce programme.

    这将是本程序的起点。

  44. Puis je vais m'occuper de faire le déplacement du chat de manière très facile.

    接着,我将非常简单地实现小猫的移动。

  45. Donc je vais utiliser un bloc de condition: si

    因此,我将使用一个条件判断积木:如果

  46. la touche espace est pressée, ici cette touche ne convient pas,

    空格键被按下——但此处这个按键并不合适,

  47. donc je vais choisir la bonne touche.

    所以我将选择正确的按键。

  48. Si la touche flèche droite est pressée,

    如果右箭头键被按下,

  49. alors le chat devra avancer de dix pixels sur l'axe des x.

    那么小猫将在x轴上前进10个像素。

  50. Si, en revanche, la touche ici gauche est pressée,

    如果按下的却是左箭头键,

  51. le chat devra avancer sur moins dix x.

    小猫则应在x轴负方向移动10个像素。

  52. sur l'axe des abscisses.

    在横轴上。

  53. Voyons ensuite à quoi servent les blocs qui me restent.

    接下来,我们看看剩下的这些模块有什么用。

  54. L'orientation, si j'appuie sur la petite bulle ici,

    方向设置:如果我点击这里的这个小圆点,

  55. va me permettre de dire dans quelle direction le chat doit regarder.

    就能设定小猫朝哪个方向看。

  56. Donc je m'aperçois, soit si le chat est orienté à 90 degrés,

    我发现,当小猫朝向90度时,

  57. il regardera vers la droite.

    它就会朝右看。

  58. Donc ce bloc doit être associé à la touche flèche droite.

    因此,这个模块应与右箭头键关联。

  59. Si la touche flèche droite est pressée,

    当按下右箭头键时,

  60. alors le chat regardera à droite et avancera de 10 pixels.

    小猫就朝右看,并向前移动10像素。

  61. En revanche, ici, si je veux aller à gauche,

    相反,如果我想让它向左走,

  62. donc je peux utiliser la flèche en tournant,

    可以用旋转箭头的方式,

  63. je m'aperçois que la valeur est- 90. Donc

    我发现此时数值是-90。因此,

  64. si la touche flèche gauche est pressée,

    当按下左箭头键时,

  65. alors le chat devra s'orienter vers la gauche et devra avancer de- 10 pixels.

    小猫就要转向左边,并向左移动10像素。

  66. Ici, si je teste le programme, ça ne fonctionne pas.

    这里,如果我测试程序,它并不起作用。

  67. On se rappelle dans l'ancienne vidéo, il faut faire

    我们回想一下上期视频:必须让电脑不断重复提问:

  68. en sorte que l'ordinateur se répète systématiquement la question:

    “右箭头键或左箭头键是否被按下了?”

  69. est- ce que la touche droite ou la touche gauche est pressée?

    ——这个问题要一直重复问下去。

  70. Je vais prendre tout mon programme et le mettre à l'intérieur de la répétition.

    我要把整个程序放进这个循环模块里。

  71. Et je vois maintenant, avec cette initialisation là,

    现在,通过这样的初始化设置,

  72. l'ordinateur se posera la question: est- ce que flèche droite est pressée,

    电脑就会反复询问:“右箭头键是否被按下?”,

  73. est- ce que flèche gauche est pressée, est- ce que flèche droite est pressée,

    ‘左箭头键是否被按下?’,‘右箭头键是否被按下?’等等。

  74. etc. J'appuie sur drapeau vert, je teste mon programme,

    我点击绿色旗帜运行程序,

  75. et ici je vois que mon chat se déplace de gauche à droite en regardant dans la bonne

    发现小猫能左右移动,并且始终朝向正确的方向。

  76. direction. L'autre solution que l'on peut ici proposer,

    此外,我们还可以采用另一种方案:

  77. étant donné que le chat regarde dans la bonne direction,

    既然小猫已经朝向正确方向,

  78. nous avons le droit d'utiliser un nouveau bloc qui s'appelle Avancer.

    我们可以使用一个新模块——‘前进’。

  79. Ce bloc se trouve dans le bloc de mouvement, en tout premier.

    这个积木位于运动类积木区,排在最前面。

  80. Avancer de dix pas.

    向前移动十步。

  81. Je vais ici pour t'expliquer enlever ajouter dix à x et ajouter moins dix à x.

    我来这儿为你讲解:如何给 x 加 10,以及如何给 x 减 10。

  82. Je vais simplement dupliquer ce bloc pour l'avoir deux fois.

    我只需复制这个积木,得到两个相同的积木。

  83. Je vais donc dire que si la flèche droite est pressée,

    那么,我将设置条件:如果按下右箭头键,

  84. le chat regarde vers la droite et va avancer de dix pas.

    小猫就面向右侧,并向前移动十步。

  85. Et ici l'avantage de ce bloc, je vais pouvoir mettre exactement le même.

    这里这个积木的优势在于,我可以直接使用完全相同的积木。

  86. Pour la flèche gauche, il n'y a plus de signe négatif.

    对于左箭头,就不需要负号了。

  87. Pourquoi? Simplement parce que le lutin se déplacera systématiquement dans le sens

    为什么呢?因为角色会始终朝它当前面向的方向移动。

  88. dans lequel il est orienté.

    方向。

  89. Donc l'ordinateur comprend que si le chat regarde vers la gauche,

    所以,当小猫面向左侧时,

  90. quand je lui dis avance, c'est qu'il doit se déplacer vers la gauche.

    电脑就明白:我说‘前进’,意思就是让它向左移动。

  91. Donc voici les deux solutions que tu as pour faire déplacer ton chat.

    因此,你有两种方法让小猫移动。

  92. Soit tu utilises l'orientation 90 avec le bloc avancer,

    一种是用‘面向 90 度’积木配合‘移动’积木;

  93. soit tu utilises le bloc d'orientation plus les blocs dont tu as l'habitude sur

    另一种是用‘面向’积木,再配合你熟悉的 x 轴移动积木,

  94. l'axe de x avec les valeurs positives et les valeurs négatives selon la flèche qui

    根据按下的方向键,使用正数值或负数值;

  95. est appuyée.

    也就是按下的那个方向键。