E-prime教程

E-prime编写鼠标点击型记忆再认实验

2019-06-18  本文已影响0人  Ryan11

关于E-prime的鼠标点击实验,Ryan曾经写过一篇《E-prime中的鼠标点击》,当时讲的比较简略,这期准备根据一位朋友的提问结合具体的例子讲一讲。

例子是这样的,一个记忆-再认范式,首先有50个字的字表,从中随机抽选10个字作为学习材料给研究参与者逐个呈现,随后出现这个50个字的界面,让他用鼠标逐个点出之前呈现过的10个字,并且在界面上显示出来每次点击过的字。

接下来我们就详细看一下这样的实验需要如何编写吧。在教程中为了简化流程,只使用12个字,抽选3个做记忆材料。

首先,需要在主时间轴上放上开始以及结束语,中间是两个inline和list控件,一个list用于学习阶段,一个用于再认阶段。

随后需要在script中定义好需要的变量。数组a用于存储汉字代表的数字,数组b用于存储汉字,strHit为点击区域,ptMouse为点击点,定义cnvs为呈现点击汉字的画布,theState为slide的state。如下图所示:

之后在startup的inline中,设置i的初始值为10,并且定义好数组b中的各个汉字:

这里是i的初始值定为10是一个“偷懒”的处理,因为我们有12个词,如果从1开始在之后的操作中需要涉及到一位数和两位数的分离处理,定义为10的话就可以避开这个问题了。在数组b的设定中可以看到,为实验所用的每个汉字设置了一个对应的数字,比如“的”对应“11”这样,接下来会做具体讲解。

下一步是对记忆阶段的list进行设置。注意此时list中汉字word和对应数字n列中的材料,需要和上一步数组b的对应关系保持完全一致,同时设置list为3个sample后退出:

在记忆阶段的时间轴上,放置好呈现学习汉字的TextDisplay控件,存储学习材料的inline语句和空白屏:

其中inline语句store为循环累加i和把汉字对应的数字n赋值给数组a的操作:

下一步需要设置记忆阶段开始前的inline。显示鼠标光标,设置画布cnvs为呈现点击的汉字,包括字号、前景色、背景色、呈现位置的坐标x y等,并且重新定义i为10:

关于再认的list,需要设置click,zi、Cacc和Oacc四列,分别用于存储鼠标点击的位置,该位置的汉字,该次点击字的正确性,该次点击字顺序的正确性:

注意这里实际点击鼠标的trial数为3次,但是额外增加了一次,是为了在最后一次循环中呈现所点击的全部汉字。(当然这个也可以放到外层的主时间轴,看个人偏好吧)

在再认的时间轴上,依次的排布是:

在第一个inline中,设置最后一个trial的跳转,跳到呈现所有点击的汉字的界面:

在slide的界面,首先在最上方空白的、一般不会被点到的区域放了10个text控件,之后再在下面放上12个字的控件,此处需要注意的是,一定要有这10个空白的text,并且保证下面12个字的顺序与前面设置的汉字-数字对应关系完全一致,比如Text11是“的”字:

这一页还得把反应设置好,键盘对应{SPACE},鼠标对应“1”,收集好RESP和RT即可:

接下来是最核心的语句部分:

这里首先需要取到被试的反应,鼠标点击的位置或者空格键。如果是点击了Text控件,需要取这个Text控件的编号,通过这个编号与控件上呈现的汉字相关联,这个编号就是变量code。接下来用if语句判断,如果被试的反应是空格键,需要在结果中输出相应的按键,并且在cy这个变量里添加上“空”,表示这个trial是按的空格键所以没有汉字呈现;还需要考虑点击了鼠标,但是未点到Text控件内的情况,在数据中记录“未点中”;最后是点击到了汉字的Text控件的情况,在“zi”这个字段中记录下该位置的汉字,“click”字段记录下点击的Text控件名,"cy"变量添加点击的汉字和空格,最后做两次判断,一次判断是点击的汉字顺序是否和学习阶段呈现的顺序一致,是的话在“Oacc”这个字段中记录1,另一次是判断这个字是否是学习阶段出现过的,是的话在“Cacc”这个字段中记录1。最后就是在画布cnvs上使用Text形式呈现记录了点击汉字的变量"cy",并且每个trial向左移动一定距离,保证右侧的显示不超出屏幕边界。

接下来在jump中写的语句是跳转到trial最末端的Label2,并且在setresult中写下呈现最终被试点击过的汉字的屏幕的语句:

这样下来,这个记忆再认实验的程序便已基本编写完成。

这期鼠标点击与之前几个突出的不同点在于,1.使用canvas画布在屏幕上呈现信息;2.通过slide中text控件的编号来对应上汉字;3.通过两个判断语句来分别判断和记录当次trial的点击内容和顺序是否正确。

具体的程序示例在“阅读原文”中的可以下载,密码见评论区置顶项,欢迎尝试。如有问题也欢迎留言提问讨论。

也欢迎大家点点广告,或者给Ryan发红包打赏,哈哈哈哈!感激不尽~

好久没有写这么长的教程了,希望这个逻辑能够让大家理解清楚如何去编写这样一种要求下的实验程序。Ryan之前也没有做过这样的尝试,不过试出来之后觉得还挺有意思的。

欢迎有疑问的朋友继续在公众号后台或者微信上给Ryan留言提问~

祝好!

—Ryan的后记

如果觉得好看还请点击右下角的“在看”哈,让更多朋友看到~↓↓↓↓

上一篇下一篇

猜你喜欢

热点阅读