控件#

介绍#

VEXcode AIR 中的控制块通过处理循环、条件、延迟和停止执行来管理项目流程。以下是可用块的列表:

  • wait — 暂停执行一段特定的时间。

  • 等待直到 — 暂停执行,直到满足指定条件。

  • repeat — 重复封闭的块特定次数。

  • forever — 无限重复封闭的块。

  • 重复直到 — 重复封闭的块,直到满足条件。

  • while — 当条件保持为真时重复封闭的块。

  • if — 如果条件为真,则运行封闭的块。

  • if / else — 如果条件为真,则运行一组块,否则运行另一组块。

  • if / else if / else — 根据多种条件运行不同的块集。

  • break — 立即退出循环。

  • 停止项目 — 结束项目的执行。

等待#

等待块在移动到下一个块之前会暂停一段时间。

等待堆栈块#
等待 (1) 秒

参数

描述

时间

等待的时间量,以秒为单位的正整数或小数。

例子

当开始
[Fly for 1 second.]
起飞至 (500) [毫米 v] ▶
等待 [1] 秒
土地 ▶

等到#

等待直到块暂停执行,直到满足指定条件后再继续执行下一个块。

等到堆栈块#
等到 <>

参数

描述

状况

进入下一个区块前必须满足的条件。如果条件为:

  • False - 继续等待
  • True - 停止等待并进入下一个区块

例子

当开始
[Hover at 200 mm.]
起飞至 [500] [毫米 v] ▶
爬升 [向下 v]
等到 <(distance [downward v] range in [mm v]) [math_less_than v] [200]>
徘徊
等待 (3) 秒
土地 ▶

重复#

重复块会按照设定的次数运行其中的块。

重复 c 块#
重复 [10]
结束

参数

描述

设置重复块运行次数的整数。

例子

当开始
[Move back and forth four times then land.]
起飞至 [500] [毫米 v] ▶
重复 (4)
将 [向前 v] 移至 (500) [毫米 v] ▶
等待 (1) 秒
将 [backward v] 移至 (500) [毫米 v] ▶
等待 (1) 秒
结束
土地 ▶

永远#

永远块不断地运行其中的块而不停止。

永远的 c 块#
永久循环
结束

参数

描述

该块没有参数。

例子

当开始
[Move with controller.]
起飞至 [500] [毫米 v] ▶
永久循环
使用遥控器移动
结束

重复直到#

当条件评估为 False 时,repeat until 块会重复执行封闭的块。

重复直到阻塞#
重复直到 <>
结束

参数

描述

状况

每次迭代前都会计算的表达式或变量。如果计算结果为:

  • False - 循环继续
  • True - 循环停止

例子

当开始
[Move with controller until button 7 is pressed.]
起飞至 [500] [毫米 v] ▶
重复直到 <遥控器按键 [7 v] 按下了?>
使用遥控器移动
结束
土地 ▶

尽管#

当条件计算为 True 时,while 块会重复执行封闭的块。

当 c 块#
当 <>
结束

参数

描述

状况

每次迭代前都会求值的表达式或变量。如果求值为:

  • - 循环继续
  • - 循环停止

例子

当开始
[Hover at 200 mm.]
起飞至 [500] [毫米 v] ▶
当 <(distance [downward v] range in [mm v]) [math_greater_than v] [200]>
爬升 [向下 v]
结束
徘徊
等待 (3) 秒
土地 ▶

如果#

如果条件计算结果为 True,则 if 块执行封闭的代码块。

如果块#
如果 <> 那么
结束

参数

描述

状况

语句运行时计算的表达式或变量。如果计算结果为:

  • True - 执行 if 块内的代码
  • False - 跳过该块

例子

当开始
[Take a picture when button 5 is pressed.]
起飞至 [500] [毫米 v] ▶
永久循环
使用遥控器移动
如果 <遥控器按键 [5 v] 按下了?> 那么
在 [向前 v] 相机上捕捉图像
结束
结束

如果/否则#

if / else 块根据条件评估为 True 还是 False 来确定运行哪个封闭的代码块。

如果则否则块#
如果 <> 那么
否则
结束

参数

描述

状况

语句运行时计算的表达式或变量。如果计算结果为:

  • True - 执行 if 块内的代码
  • False - 改为执行 else 块内的代码

例子

当开始
[Climb when the left joystick is moved up.]
起飞至 [500] [毫米 v] ▶
永久循环
如果 <(控制器轴 [1 v] 位置) [math_greater_than v] [0]> 那么
爬升 [向上 v]
否则
徘徊
结束

如果/否则 如果/否则#

if / else if / else 块结构根据条件选择运行哪个封闭的代码块:

  • 如果条件评估为 True,则运行其代码块。

  • else if 仅当所有先前条件都为 False 时才检查附加条件。可以使用多个 else if 语句。

  • 否则,仅当先前的条件都不为 True 时才运行其代码块。

如果否则如果否则块#
如果 <> 那么
否则如果 <> 那么
否则
结束

参数

描述

状况

语句运行时计算的表达式或变量。第一个条件的计算结果为:

  • - 确定执行哪个代码块
  • - 如果没有 ,则运行 else 代码块

例子

当开始
[Move the drone up or down based on the position of the joystick.]
起飞至 [500] [毫米 v] ▶
永久循环
如果 <(控制器轴 [1 v] 位置) [math_greater_than v] [0]> 那么
移动 [向前 v]
否则如果 <(控制器轴 [1 v] 位置) [math_less_than v] [0]> 那么
移动 [反 v]
否则
徘徊
结束
结束

休息#

break 块立即退出循环。

循环包括:

打破堆栈块#
退出循环

参数

描述

该块没有参数。

例子

当开始
[Land when button 5 is pressed.]
起飞至 [500] [毫米 v] ▶
永久循环
使用遥控器移动
如果 <遥控器按键 [5 v] 按下了?> 那么
退出循环
结束
结束
土地 ▶

停止项目#

停止项目块结束正在运行的项目。

停止项目阻止#
停止程序 :: control cap

参数

描述

该块没有参数。

例子

当开始
[Stop motors after landing.]
起飞至 [500] [毫米 v] ▶
等待 [1] 秒
土地 ▶
停止程序