控制#
简介#
VEXcode AIR 中的指令块通过处理循环、条件和延迟块运行来管理项目的流程。
循环是指计算机反复执行相同的步骤或一组步骤,直到收到停止指令为止。条件是计算机用来决定下一步操作的规则。例如,按下遥控器上的按钮,无人机就可以向前飞行。
以下是可用指令块列表:
等待 — 使指令块暂停运行一段指定的时长。
等待直到 — 暂停指令块运行,直到满足指定的条件。
重复 — 将一组指令块重复指定次数。
永久循环r — 永久循环一组指令块。
重复直到 — 重复执行一组指令块,直到满足某个条件。
当 — 当条件为真时重复执行一组指令块。
如果 — 如果条件为真,则运行一组指令块。
如果 那么/否则 — 如果条件为真,则运行一组指令块,否则运行另一组指令块。
如果/否则如果/否则 — 根据多种条件运行不同的指令块集。
退出循环 — 立即退出循环。
结束程序 — 结束项目。
等待#
等待 指令块会在执行下一个指令块之前,暂停当前指令块运行一段时间。
等待 (1) 秒
参数 |
说明 |
|---|---|
时间 |
等待时间,以秒为单位,表示为正整数或小数。 |
示例
当开始
[Fly for 1 second.]
起飞至 (500) [毫米 v] ▶
等待 [1] 秒
土地 ▶
等待直到#
等待直到指令块会暂停指令块的运行,直到满足指定的条件后才会执行下一个指令块。
等到 <>
参数 |
说明 |
|---|---|
条件 |
在继续执行下一个指令块之前必须满足的条件。如果其求值结果为:
|
示例
当开始
[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] ▶
永久循环
使用遥控器移动
结束
重复直到#
重复直到 C 型指令块会反复运行其内部的指令块,直到满足指定的条件为止。
重复直到 <>
结束
参数 |
说明 |
|---|---|
条件 |
每次循环前都会检查一个表达式或变量。如果该表达式或变量为假,则指令块继续重复执行;如果该表达式或变量为真,则循环停止。 |
示例
当开始
[Move with controller until button 7 is pressed.]
起飞至 [500] [毫米 v] ▶
重复直到 <遥控器按键 [7 v] 按下了?>
使用遥控器移动
结束
土地 ▶
当#
当 C 型指令块会在满足指定条件时重复运行其内部的指令块。
当 <>
结束
参数 |
说明 |
|---|---|
条件 |
每次循环前都会检查一个表达式或变量。如果为真,则指令块继续重复执行;如果为假,则循环停止。 |
示例
当开始
[Hover at 200 mm.]
起飞至 [500] [毫米 v] ▶
当 <(distance [downward v] range in [mm v]) [math_greater_than v] [200]>
爬升 [向下 v]
结束
徘徊
等待 (3) 秒
土地 ▶
如果#
如果 C 型指令块会在条件为真时运行其内部的指令块。
如果 <> 那么
结束
参数 |
说明 |
|---|---|
条件 |
语句运行时会检查一个表达式或变量。如果该表达式或变量为真,则执行如果指令块内的指令块;如果该表达式或变量为假,则跳过这些指令块。 |
示例
当开始
[Take a picture when button 5 is pressed.]
起飞至 [500] [毫米 v] ▶
永久循环
使用遥控器移动
如果 <遥控器按键 [5 v] 按下了?> 那么
在 [向前 v] 相机上捕捉图像
结束
结束
如果/否则#
如果/否则 C 型指令块根据条件是真还是假来决定运行哪一组指令块。
如果 <> 那么
否则
结束
参数 |
说明 |
|---|---|
条件 |
语句运行时会检查一个表达式或变量。如果它为真,则执行如果指令块内的指令块。如果它为假,则执行否则指令块内的指令块。 |
示例
当开始
[Climb when the left joystick is moved up.]
起飞至 [500] [毫米 v] ▶
永久循环
如果 <(控制器轴 [1 v] 位置) [math_greater_than v] [0]> 那么
爬升 [向上 v]
否则
徘徊
结束
如果/否则 如果/否则#
如果/否则如果/否则 可扩展 C 型指令块根据条件选择运行哪一组指令块:
如果条件评估结果为真,则如果 执行其指令块。
否则如果 语句仅在所有先前条件都为 假 时才会检查其他条件。可以使用多个 否则如果 语句。
否则,仅当前面所有条件均不为真时,才会执行其指令块。
如果 <> 那么
否则如果 <> 那么
否则
结束
参数 |
说明 |
|---|---|
条件 |
语句运行时会检查一个表达式或变量。第一个为真的条件会执行该组指令块。如果所有条件都为假,则会执行否则指令块内的指令块。 |
示例
当开始
[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]
否则
徘徊
结束
结束
退出循环#
退出循环 指令块会立即退出循环。该指令块可以用于 重复、重复直到、当 和 永久循环 指令块中。当循环需要根据项目运行过程中发生的事件(例如按钮被按下或传感器检测到物体)提前停止时,退出循环 非常有用。
退出循环
参数 |
说明 |
|---|---|
该指令块没有参数。 |
示例
当开始
[Land when button 5 is pressed.]
起飞至 [500] [毫米 v] ▶
永久循环
使用遥控器移动
如果 <遥控器按键 [5 v] 按下了?> 那么
退出循环
结束
结束
土地 ▶
结束程序#
结束程序指令块会结束正在运行的程序。
停止程序 :: control cap
参数 |
说明 |
|---|---|
该指令块没有参数。 |
示例
当开始
[Stop motors after landing.]
起飞至 [500] [毫米 v] ▶
等待 [1] 秒
土地 ▶
停止程序