PsychoPy入门_07_鼠标的使用

不靠谱PsychoPy入门教程目录:

  1. PsychoPy入门00安装

  2. PsychoPy入门01文字和图片的呈现

  3. PsychoPy入门02按键等待&反应时

  4. PsychoPy入门03视频和音频的呈现

  5. PsychoPy入门04等级评定

  6. PsychoPy入门05循环和随机

  7. PsychoPy入门06数据记录

  8. PsychoPy入门07鼠标的使用

  9. 用PsychoPy做视觉搜索任务实验


操纵鼠标算是比较好玩而且看上去比较高端一点的技术。在我自己的学习和使用PsychoPy的时候并没有涉及到鼠标,最多用myMouse.setVisible(0)把鼠标变得不可见,以避免它在屏幕上产生干扰。但是后来在帮同学、学妹编程的时候时不时用到一下,所以就尽我所了解的给大家说一下event.Mouse()的用法。

呃,有之前的基础之后应该不需要再拆分步骤一点一点的说了吧。我就把代码一股脑贴出来,关键点解释一下好了。(嗯,就是为自己的懒找借口啦,但是也就这样吧。)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from psychopy import visual, core, event

win = visual.Window(size = [800,600])

#-------------A 卡片选择 -------------------
'''
    这里我建了两个矩形框,一个红色一个绿色。
    当鼠标进入某个矩形框的时候,它的颜色加深,离开则恢复原状。
    两个色块会一直停在屏幕上,直到你点选一个。
    在output去打印出我们所选择的颜色。
'''
# 图形顶点坐标。你可以通过顶点个数和位置控制图形的形状。
card_vert = [[0.2,0.3],[-0.2,0.3],[-0.2,-0.3],[0.2,-0.3]]       

# 建立两个形状刺激。用法和其他视觉刺激差不多。
card_1 = visual.ShapeStim(win, lineColor = None, 
                        fillColor = 'red',              # 填充颜色
                        opacity = 0.3,                  # 透明度
                        vertices = card_vert,           # 矩形的顶点
                        pos = (0.3,0))                  # 位置
card_2 = visual.ShapeStim(win, lineColor = None, 
                        fillColor = 'green', 
                        opacity = 0.3, 
                        vertices = card_vert, 
                        pos = (-0.3,0))

# 创建一个鼠标对象
myMouse = event.Mouse()

while not( myMouse.isPressedIn(card_1) or myMouse.isPressedIn(card_2)):
# 当两个色块都没有被点击的时候循环做以下内容
    choice = 'NONE'
    # 新建变量choice,用来标记鼠标是在红色色块内还是绿色色块内。
    if card_1.contains(myMouse):    # 当红色矩形包含(contains)鼠标时
        card_1.opacity = 0.7        # 不透明度增高。
        choice = 'red'              # choice赋值为“red”
    elif card_2.contains(myMouse):  # 同上
        card_2.opacity = 0.7
        choice = 'green'
    else:                           # 两个矩形都不包含鼠标时
        card_1.opacity = 0.3        # 透明度恢复原值。
        card_2.opacity = 0.3
    card_1.draw()                   # 呈现这两个色块
    card_2.draw()
    win.flip()                      # 刷新屏幕

win.flip()          
#这里是在做出选择之后刷新屏幕,不然的话会停留在之前的界面上。

print choice   # 打印

到这里先运行一下看。鼠标不在两个矩形区域时(背景、颜色什么都是随便选的,比较丑):


鼠标在红色区域时(鼠标确实在红色矩形内的,只是截图截不到鼠标,所以看不到。):


点选红色矩形之后output区的结果(那个警告什么的我也处理不了,就那样呆着好了。):


用鼠标做点选操作基本上就是这样了。那用这样的方法我们就可以做一个【继续】按钮。代码如下,接着上面的程序放就行。

#--------------------B 继续按钮----------------------------
event.clearEvents()                 # 清除之前的event事件。
button = visual.Rect(win, width=0.2, height=0.11, 
                    fillColor = 'yellow', 
                    pos = (0.5,-0.4))     # 用visual.Rect建了一个0.2*0.11的矩形。
text = visual.TextStim(win, text = 'Next', 
                    height = 0.1, 
                    color = 'black', 
                    pos = (0.5,-0.4))     # 位置与button相同。

while not myMouse.isPressedIn(button):
# 这里的逻辑跟--A 卡片选择--一样。
    if button.contains(myMouse):
        button.opacity = 0.4
    else:
        button.opacity = 0.2
    button.draw()
    text.draw()
    win.flip()

win.close()
core.quit()

运行界面像这样↓。

点击跳转,没别的了。

以上。

PsychoPy的入门教程就这样虎头蛇尾地结束了。耶~~鼓掌!啪啪啪。

有什么疑问或者建议请在评论区留言。不过我猜应该多半没人看,所以我就当练习排版了[二哈]。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容