控件#

介绍#

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

  • wait – Pauses execution for a specific duration.

  • wait until – Pauses execution until a specified condition is met.

  • repeat – Repeats enclosed blocks a specific number of times.

  • forever – Repeats enclosed blocks indefinitely.

  • repeat until – Repeats enclosed blocks until a condition is met.

  • while – Repeats enclosed blocks while a condition remains true.

  • if – Runs enclosed blocks if a condition is true.

  • if / else – Runs one set of blocks if a condition is true, otherwise runs another.

  • if / else if / else – Runs different sets of blocks depending on multiple conditions.

  • break – Exits a repeat, forever, repeat until, or while loop immediately.

  • stop project – Ends the execution of the project.

等待#

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

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

参数

描述

时间

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

例子

启动后,向前移动一秒钟,然后停止所有移动。#
当开始 :: hat events
[向前移动一秒钟,然后停止.]
移动 [正 v]
等待 (1) 秒
停止移动

等到#

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

等到堆栈块#
等到 <>

参数

描述

状况

进入下一个区块之前必须满足的条件。

例子

启动后,向前移动直到按下屏幕,然后停止所有移动。#
当开始 :: hat events
[向前移动直到按下屏幕,然后停止.]
移动 [正 v]
等到 <屏幕按下了?>
停止移动

重复#

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

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

参数

描述

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

例子

当开始 :: hat events
[沿方形路径移动]
重复 [4]
移动 [正 v] [50] [mm v] ▶
[右 v] 转 [90] 度 ▶
结束

永远#

forever 块会不断运行其中的块,而不会停止。

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

参数

描述

该块没有参数。

例子

启动后,以方形路径连续移动,向前移动 50 毫米,向右旋转 90 度,无限循环。#
当开始 :: hat events
[永远沿着方形路径移动.]
永久循环
移动 [正 v] [50] [mm v] ▶
[右 v] 转 [90] 度 ▶
结束

重复直到#

当条件计算结果为 False 时,repeat until 块会重复执行封闭的块。

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

参数

描述

状况

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

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

例子

启动时,所有 LED 保持红色,直到按下屏幕,然后将其关闭。#
当开始 :: hat events
[重复此操作直到按下屏幕后再关闭 LED.]
重复直到 <屏幕按下了?>
将 [lightall v] LED颜色设置为 [红色 v]
结束
将 [lightall v] LED颜色设置为 [灭 v]

尽管#

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

当 c 块#
当 <>
结束

参数

描述

状况

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

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

例子

启动后,向前移动 200 毫米,同时所有 LED 保持绿色。移动停止后,LED 熄灭。#
当开始 :: hat events
[机器人移动时,LED 保持绿色.]
移动 [正 v] (200) [mm v] ◀ 并且不等待
当 <移动中?>
将 [lightall v] LED颜色设置为 [绿色 v]
结束
将 [lightall v] LED颜色设置为 [灭 v]

如果#

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

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

参数

描述

状况

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

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

例子

启动后,机器人会持续检测屏幕是否被按下。如果被按下,机器人会以中等力度踢出一个物体。#
当开始 :: hat events
[按下屏幕时踢人.]
永久循环
如果 <屏幕按下了?> 那么
[中 v] 踢出对象
结束
结束

如果/否则#

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

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

参数

描述

状况

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

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

例子

启动后,持续检测屏幕是否被按下。如果按下,则显示一个兴奋的期待表情;否则,显示一个无聊的期待表情。#
当开始 :: hat events
[触摸屏幕时显示一个表情符号,未触摸屏幕时显示另一个表情符号.]
永久循环
如果 <屏幕按下了?> 那么
显示 [emoji_excited v] 外观 [正 v]
否则
显示 [emoji_bored v] 外观 [正 v]
结束
结束

如果/否则 如果/否则#

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

  • 如果条件计算结果为 True,则运行其代码块。

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

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

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

参数

描述

状况

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

  • - 确定执行哪个代码块
  • - 如果都不为 ,则执行 else 代码块

例子

当控制器的轴1位置发生变化时,向前推则向前移动,向后拉则反向移动,中立时停止。#
当控制器轴发生变 [1 v] 化时 :: hat events
[根据操纵杆的位置使机器人前进或后退.]
如果 <(控制器轴 [1 v] 位置) [math_greater_than v] [0]> 那么
移动 [正 v]
否则如果 <(遥控器 [1 v] 轴位移) [math_less_than v] [0]> 那么
移动 [反 v]
否则
停止移动
结束

休息#

break 块立即退出循环。

打破堆栈块#
退出循环

参数

描述

该块没有参数。

例子

启动时,每 0.5 秒闪烁一次红色和绿色 LED,直到按下屏幕,然后停止。#
当开始 :: hat events
[LED 闪烁,直到按下屏幕。]
永久循环
将 [lightall v] LED颜色设置为 [红色 v]
等待 [0.5] 秒
将 [lightall v] LED颜色设置为 [绿色 v]
等待 [0.5] 秒
如果 <屏幕按下了?> 那么
退出循环
结束
结束

停止项目#

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

停止项目阻止#
停止程序

参数

描述

该块没有参数。

例子

启动时,每 0.5 秒闪烁一次红色和绿色 LED,直到按下屏幕,然后停止项目。#
当开始 :: hat events
[按下屏幕后停止项目.]
永久循环
将 [lightall v] LED颜色设置为 [红色 v]
等待 [0.5] 秒
将 [lightall v] LED颜色设置为 [绿色 v]
等待 [0.5] 秒
如果 <屏幕按下了?> 那么
停止程序
结束
结束