使用事件#

Using Events

本教程讲解如何在 VEXcode V5 中使用事件。学完本教程后,您将了解如何广播事件并让另一组模块响应该事件。

事件允许项目中不同的代码块堆栈相互通信,使用的都是逻辑 - 事件类别的代码块。名称以广播开头的代码块表示事件已发生,而名称以当开头的代码块则会响应事件的发生而运行其关联的代码块堆栈。

在你的项目中添加一个广播模块或一个广播并等待模块。

逻辑 - 事件工具箱类别的屏幕截图,其中突出显示了广播和广播并等待块。

在广播模块的下拉菜单中选择现有事件,或创建、重命名或删除事件。

广播模块下拉菜单打开的屏幕截图,显示了 my_event 选项以及“新建事件”、“重命名事件”和“删除“my_event”事件”选项。

在工作区中添加一个“当我收到”模块,并将其下拉菜单设置为与“广播”模块中使用的事件名称相匹配。然后,在其下方添加模块,因为这些模块会在广播该事件时运行。

逻辑 - 事件工具箱类别的屏幕截图,其中“启动时”和“接收时”模块已突出显示。

一旦“接收时”模块与“广播”模块使用的事件名称匹配,运行该项目即可让两个堆栈同时运行。例如,此项目会一直旋转,直到按下“大脑”的屏幕,然后广播一个事件来停止机器人的行驶。

启动后,机器人会旋转,直到屏幕被按下,然后广播一个事件,当接收到该事件时,机器人就会停止旋转。#
when started
turn [right v]
wait until <screen pressed?>
broadcast [my_event v]
when I receive [my_event v]
stop driving

以“when”开头的模块也可以连接到传感器上,当传感器的条件满足时,它们所连接的模块就会运行。例如,“when Brain screen”和“when Bumper Switch”这两个模块。

当大脑屏幕帽子块出现时。#
when Brain screen [pressed v] :: hat events
当 Bumper Switch 帽块。#
when [BumperA v] [pressed v] :: hat events