显示参与者的光标: 多用户演示
概述
在一个多用户实验中,多个参与者实时参加实验,您可能希望让他们的光标彼此可见。在此演示中,我们将向您展示如何设置此功能。
实施说明
请注意,由于该平台灵活,有多种方法可以在Labvanced中实现多个参与者的光标位置共享,因此在选择方法之前,考虑您的实验设计非常重要。
为使此点清晰,我们将介绍两种实现此目标的方法:
方法1: 使用鼠标跟踪和数组显示光标
该演示包括两个对象(每个用户一个鼠标),并在对象面板的侧边栏中列出。此方法可用于有2个以上参与者的多用户研究。
对象
下面是 对象属性
面板,所有视觉样式可以在此处处理。目前,两者的光标的 可见性
值为1(这意味着不透明度=100%),如下所示:
对于该演示,我们将 可见性
更改为0,如下所示。稍后,当实验开始时,我们将使其中一个光标可见。即,如果您是参与者1,则可以在此处看到参与者2的光标对象,反之亦然。这在 事件:Init 部分中有所描述。
如果您不想为光标对象使用两个对象,请参考 此部分 以查看仅使用单个光标对象的替代方法。
自定义变量
在这里,我们列出了为该演示创建的所有自定义变量。您可以提前在编辑器中创建它们或在构建实验时创建它们。
事件概述
要添加事件,请单击 [+] 帧事件(仅在此帧上)
。
我们在此演示中有以下事件:
- 事件:Init: 使其他参与者的鼠标可见
- 事件: sendMove: 发送鼠标坐标
- 事件: receiveMove: 接收鼠标坐标
以下将描述每个事件的结构。
事件: init
此事件指定帧初始化时会发生什么。在本例中,我们的目标是让参与者1看到参与者2的鼠标,反之亦然。
触发器
该事件的触发器是 帧初始化
,因为我们希望在帧初始化时分配光标对象的可见性。
动作
在指定此事项并单击“下一步”按钮后,您可以选择在帧初始化时发生的动作。
下面显示的动作是 控制动作 → '如果...那么',,因此:
- 如果
Role_Id
等于 1(注意: Role_Id 是一个唯一于多用户研究的变量,并为参与者分配其ID)。 - 然后,将
mouse_user_2
对象的可见性
设置为1。 - 注意: 这两个行动的组合本质上意味着:“如果您是参与者1(Role_Id==1),那么您将看到mouse_user_2对象。”
- 注意: 在编辑器中如何指定
Role_Id == 1
?请参考 逐步说明部分,其中对此进行了更详细的解释。
在 如果否则
部分,我们对参与者2(Role_Id==2)做同样的事情。目标对象是 mouse_user_1
,它的 可见性
值应为1。
事件: sendMove
接下来,我们必须建立两位参与者之间的“桥梁”,如果您移动鼠标,这些值将被跟踪/存储并发送给另一位参与者。
触发器
因此, 鼠标触发器
用于该事件,任何“移动”操作都将触发该事件。
动作
同样需要 控制动作
→ 如果…那么
命令:
如果您的 Role_Id==1,则以下 变量操作
发生:
否则,如果您的 Role_Id==2
……
然后:
moveMouse2
将记录鼠标 [X,Y] 数组(与上面的示例相同),但我们将其用于存储参与者2的鼠标跟踪值,并将其等于他们的鼠标 [X,Y] 数组。- 然后,将该变量分发给参与者1。
总结- 到目前为止,我们已完成:
- 创建变量以存储每个参与者的鼠标跟踪 [X,Y] 数组(moveMouse1 用于参与者1的光标,moveMouse2 用于参与者2的光标)
- 并建立一座桥梁,将鼠标跟踪值通过分发变量操作发送给另一位参与者。
事件: receiveMove
接下来,我们需要指定这些鼠标跟踪值的处理方式。在这种情况下,当以数组格式接收到鼠标移动时,我们希望更改鼠标光标对象以反映移动!换句话说,使用 [X,Y] 数组,我们将这些值绑定到鼠标光标,以便它本质上会移动,显示另一位参与者在屏幕上所做的事情!因此,为完成此任务,将使用以下描述的触发器和动作。
触发器
由于鼠标跟踪值存储在变量中,因此每当这些变量更改时,都意味着鼠标在移动。因此,我们可以使用 变量值更改
触发器 来通过选择持有光标跟踪值的两个特定变量来更新屏幕上的光标位置,如下所示:
动作
接下来,我们希望使用 从数组选择(读取)
动作 以从光标的变量数组中提取 x 和 y 坐标值,因为我们计划使用它们来设置对象的坐标。
因此,我们选择 moveMouse1
变量,其包含参与者1的 [X,Y] 数组,并调用第一个值,该值为 固定索引
1,并将该值存储在名为 x_mouse1
的数字变量中,因为 x 值在数组中的位置为第一个。
我们再添加一个 从数组选择(读取)
动作,并将 固定索引
设置为2,因为我们想提取第二个数组值,即y坐标,并将其存储在 y_mouse1
变量中。
为了使光标图像实时移动,我们需要更新其图像坐标,使其采用与从鼠标跟踪获取并存储在变量 x_mouse1
和 y_mouse1
中的 x 和 y 值相等的坐标。
为实现此目的,我们需要选择 设置对象属性
动作,使 mouse_user_1
的 目标
(在下面的图像中只是写为“鼠标”,因为对话框缩短了标题)和其属性 X
的值等于 x_mouse1 + 5
,这是一种 算术操作. 请参考 逐步说明,了解如何设置此内容。
此时您可能会想知道,输入框中为什么会出现+5……这因为我们需要创建一个偏移量,因为该对象实际上是一个文本对象,包括一个嵌入的图像(如 本演示开头所述)。因此,如果您需要构建研究并让用户看到自己定制的光标,就像我们在这里做的那样,但同时也能点击研究中的其他对象,那么在不创建这个偏移量的情况下是无法做到的(除非您选择省略光标的图像,只保留文本标签)。
继续,我们选择 +添加属性
并指向同一图像对象,选择 Y
属性并将其设置为变量 y_mouse1
。
我们重复同样的过程,但只选择我们为参与者2准备的其他变量:
在这里,我们指向对象 mouse_user_2
并分配相应的变量:
总之,所有这些动作使得两个光标对象对两个参与者都能移动,通过读取数组变量中的值,然后使用这些数值来设置对象的x和y值。
事件: end
接下来,我们创建一个事件以正式结束数据记录过程并存储数据,插入一个“结束”按钮,当其作为触发器使用时,将导致控制动作 接受/结束会话
采取行动。
触发器
要结束会话,按钮触发器是点击 结束按钮
将触发会话结束。
动作
该动作是接受/结束会话。
再次请注意,该演示仅用于学习目的,并且仅是多用户研究设置中共享鼠标和光标位置的多种方法之一。如何实现此效果的另一个示例将在以下部分中描述。
方法2: 单变量共享光标的多用户研究
在此另一个演示中, 我们展示了如何使用单个值(即直接调用X和Y坐标)而不是数组。
以下是该演示的完整预览,包括最后记录的数据预览:
单光标对象
该演示与前一个演示的不同之处在于,不是两个光标对象,而是只有一个。此方法非常适合只想显示“对手”或“队友”光标位置的多用户研究。
自定义变量
此演示还包括以下自定义变量及其规格。虽然该演示的变量较少,但却需要使用更多的事件/动作,而不是使用数组的前一个示例。
事件: sendMove
触发器是鼠标移动:
该动作是在两个单独变量中记录鼠标的 X 坐标和 Y 坐标的触发器特定值,这两个变量被具体命名以指示参与者1。
接下来的操作在此如果/则条件下,可将这两个值分发给参与者2。
然后我们添加一个 “否则如果” 条件,以在两个单独变量中记录鼠标的 X 坐标和 Y 坐标的触发器特定值,这两个变量被具体命名以指示参与者2。
接下来的操作用于将这两个值分发给参与者1。
事件: receiveMove1
现在我们需要一个事件来传输鼠标坐标。因此,当与参与者1相关的这些特定变量值变化时,它们将用作触发器:
然后我们使用一个动作更新光标位置的对象属性,以接受这些值。实际上,如果您是参与者2,则对手对象会采用参与者1的变量坐标:
事件: receiveMove2
我们在这里做同样的事。如果您是参与者1,则对手对象会采用参与者2的变量坐标:
结论
该演示展示了更新对象属性的多种方法之一,以便在多用户研究设置中传输光标位置。您可以使用数组
演示细节: 逐步输入值
如果您仍在熟悉Labvanced或只是需要一些额外的说明,下面的部分逐步展示了您需要采取的某些命令和使用菜单实现它们的步骤:
- 指定
Role_ID==1
在要求操作中 - 选择 鈥淗 鼠标 [X,Y] 数组记录为鼠标跟踪的变量
- 使用算术操作设置对象属性
指定 Role_ID==1
在要求操作中
在上述演示中,这一行频繁出现,那么您该如何获取它?
首先 +添加动作
和选择 控制动作 → 要求动作(如果...那么),因为这是它频繁出现的背景。
接下来, +条件
以便更详细地指定如果条件。
对于第一个铅笔图标(正式称为 值选择菜单),选择 变量
→ 选择变量
以指向Role_Id变量。
这将打开变量菜单,所有本地/全局变量都会在这里存储。在顶部面板的 全局变量
下,您将找到 Role_Id
变量。选择它。
接下来,在另一个铅笔图标上,您需要指定参与者角色ID的值。因此,转到 常量值 → 数值.
并简单输入数字 1. 太好了!
使用算术操作设置对象属性
设置光标位置是通过使用设置对象属性操作,指定目标对象及其属性,然后指定要用作对象属性的新值的变量值来完成的。
选择对象操作:
对于 目标
,点击第一个 空
并从列表中选择第一个光标对象 mouse_user_1
。对于对象属性的第二个列表,选择 X
选项:
然后,点击铅笔图标。选择菜单中的 操作
,并选择 算术
选项:
单击第一个铅笔图标,选择 变量
→ 选择变量
,然后会出现一个变量对话框,您可以从中选择 x_mouse1
变量:
然后,单击第二个铅笔图标,选择 常量值
→ 数值
,并在出现的字段中输入数字5。
由于这与演示有关,其中对象包含图像加文本的组合,因此我们需要将值偏移5个点,以便下面的对象可以点击:
单击 +添加属性
并指明 y_mouse1
变量将分配给 mouse_user_1
对象的 Y
对象属性。