显示参与者光标:多用户演示
概述
在一个多用户实验中,当多个参与者实时参与实验时,您可能希望让他们的光标彼此可见。在本演示中,我们将向您展示如何设置这一点。
实施说明
请注意,在Labvanced中有几种方法可以实现多参与者光标位置的共享,由于该平台灵活,因此在选择方法之前考虑您的实验设计非常重要。
为了明确这一点,我们将介绍两种实现方法:
- 方法1: 一个 利用数组的演示 来分配光标位置
- 方法2: 在 下面的部分, 我们将讨论一个 演示,其中可使用单个值 作为x和y坐标
方法1:使用鼠标跟踪和数组显示光标
该演示包含两个对象(每个用户一个鼠标),并在对象面板的侧边栏中列出。此方法可用于参与者数量为2个或以上的多用户研究。
对象
下面是 对象属性
面板,在此处可以处理所有视觉样式。目前,两个光标的 Visibility
值为1(这意味着不透明度=100%),如下所示:
在本演示中,我们将把 Visibility
值更改为0,如下所示。稍后,当实验开始时,我们将使其中一个光标可见。即,如果您是参与者1,那么您将在这里看到参与者2的光标对象,反之亦然。这将在 事件:Init 部分中描述。
如果您不想为光标创建两个对象,请参考 这一部分 查看仅使用单个光标对象的替代方法。
自定义变量
在这里,我们列出为本演示的目的创建的所有自定义变量。您可以在构建实验时提前创建它们或在编辑器中创建它们。
事件概述
要添加事件,请点击 [+] 帧事件(仅在此帧上)
。
在本演示中有以下事件:
- 事件:Init: 使其他参与者的鼠标可见
- 事件:sendMove: 发送鼠标坐标
- 事件:receiveMove: 接收鼠标坐标
下面将描述每个事件的结构。
事件:init
此事件指定当帧启动时会发生什么。在这种情况下,我们的目标是让参与者1看到参与者2的鼠标,反之亦然。
触发器
该事件的触发器是 On Frame Init
,因为我们希望在帧初始化时分配光标对象的可见性。
操作
在指定这一点并点击‘下一步’按钮后,您可以选择帧初始化时将发生的操作。
下面显示我们使用的操作是 控制操作 → ‘如果...那么’, 所以:
- 如果
Role_Id
等于 1(注意:Role_Id 是一个在多用户研究中唯一的变量,分配参与者的ID)。 - 那么,将
mouse_user_2
对象的Visibility
的Set Object Property
设置为1。 - 注意: 这两个操作的组合本质上意味着:“如果您是参与者1(Role_Id==1),那么您将看到mouse_user_2对象。”
- 注意: 如何在编辑器中指定
Role_Id == 1
?请参考下面 逐步部分 ,在其中对此进行了更详细的说明。
在 Else If
部分,我们对参与者2做相同的事情(Role_Id==2)。目标对象是 mouse_user_1
,其 Visibility
值应为1。
事件:sendMove
接下来,我们需要在两个参与者之间建立一个“桥”,当您移动鼠标时,这些值会被跟踪/存储并发送给另一个参与者。
触发器
因此,该事件使用 鼠标触发器
,在该事件中,任何“移动”将触发事件。
操作
同样,需要一个 控制操作
→ 如果...那么
命令:
如果您的 Role_Id==1,则会发生以下 变量操作
:
否则,如果您的 Role_Id==2
...
那么:
moveMouse2
将记录鼠标 [X,Y] 数组(就像上面的示例一样),但我们将使用它来存储参与者2的鼠标跟踪值,并将其设置为等于他们的鼠标 [X,Y] 数组。- 然后,将该变量分发给参与者1。
总结: 到目前为止,我们已经:
- 创建了变量以存储每个参与者的鼠标跟踪 [X,Y] 数组(参与者1的光标为moveMouse1,参与者2的光标为moveMouse2)
- 并建立了一座桥将鼠标跟踪值传送给其他参与者,使用分发变量操作。
事件:receiveMove
接下来,我们需要指定这些鼠标跟踪值将会发生什么。在这种情况下,当接收到以数组格式的鼠标移动时,我们希望更改鼠标光标对象以反映这些移动!换句话说,使用 [X,Y] 数组,我们将这些值绑定到鼠标光标上,以便它实际上移动,显示另一个参与者在屏幕上所做的事情!因此,为了实现这一点,将使用下面描述的触发器和操作。
触发器
由于鼠标跟踪值存储在变量中,因此每当这些变量变化时,意味着鼠标正在移动。因此,我们可以使用 变量值更改
触发器 通过选择保存鼠标跟踪值的两个特定变量来更新屏幕上的光标位置, 如下所示:
操作
接下来,我们想使用 从数组选择(读取)操作
从光标的变量数组中获取x和y坐标值,因为我们计划用它们来设置对象的坐标。
因此,我们选择moveMouse1
变量,它包含参与者1的 [X,Y] 数组,并调用第一个值,该值的 固定索引
为1,并将该值存储在名为 x_mouse1
的数值变量中,因为x值在数组中排在首位。
我们增加另一个 从数组选择(读取)
操作,并将 固定索引
写为2,因为我们想调用第二个数组值,即y坐标并存储在 y_mouse1
变量中。
为了使光标图像移动,我们需要实时更新其图像坐标,使其获取与鼠标跟踪等效的x和y值(在上述操作中我们获取并存储在变量 x_mouse1
和 y_mouse1
中)。
为了实现这一点,我们选择 设置对象属性
操作,使 mouse_user_1
的 目标
(在下面的图像中,它仅写作‘mouse’,因为对话框缩短了标题)和其属性 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
对象属性。