使用事件#

Using Events

This tutorial covers how to use events in VEXcode IQ (2nd gen). By the end, you’ll know how to broadcast an event and have another stack of blocks respond to it.

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

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

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

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

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

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

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

以“when”开头的模块也适用于其他设备类别,当满足相应设备的条件时,它们会运行与其关联的模块。例如,“when Brain button”和“when Bumper”模块。

当大脑按钮帽块出现时。#
当Brain [ 按键 %2
当 Bumper hat block 出现时。#
当 [Bumper 1 v] [pressed v]

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

启动后,机器人会一直旋转,直到按下检查按钮,然后广播一个事件,当接收到该事件时,机器人就会停止旋转。#
当开始
[右 v] 转
等到 <Brain [Check v] 键按下了?>
广播 [my_event v]
当我收到 [my_event v]
驱动停止