Psychopy 鼠标点击并确认

from psychopy import visual, core, event,gui,clock
import os


win = visual.Window(size = (1024,768), color = (1,1,1), fullscr = False )
def decision():

    ###隐匿鼠标

     win.mouseVisible=False

    ####设置相关图形
    G=60;w=75;g=45;x=80;p=1/4
    line_y=0.8*(1/2-p)
    rect1=visual.Rect(win,pos=(-0.4,0),width=0.4,height=0.8,lineColor='black',lineWidth=10,fillColor='DarkTurquoise',opacity = 0.5)
    rect2=visual.Rect(win,pos=(0.4,0),width=0.4,height=0.8,lineColor='black',lineWidth=10,fillColor='DarkTurquoise',opacity = 0.5)
    line1=visual.Line(win,start=(-0.6,line_y),end=(-0.2,line_y),lineColor='black',lineWidth=10,fillColor='DarkTurquoise',opacity = 0.5)
    line2=visual.Line(win,start=(0.2,line_y),end=(0.6,line_y),lineColor='black',lineWidth=10,fillColor='DarkTurquoise',opacity = 0.5)
    word1=visual.TextStim(win, text =u'',height = 0.05,pos = (-0.4,(0.4+line_y)/2),italic = False,color = 'black',font = "Songti SC",opacity = 0.5)
    word2=visual.TextStim(win, text =u'',height = 0.05,pos = (-0.4,(line_y-0.4)/2),italic = False,color = 'black',font = "Songti SC",opacity = 0.5)
    word3=visual.TextStim(win, text =u'',height = 0.05,pos = (0.4,(0.4+line_y)/2),italic = False,color = 'black',font = "Songti SC",opacity = 0.5)
    word4=visual.TextStim(win, text =u'',height = 0.05,pos = (0.4,(line_y-0.4)/2),italic = False,color = 'black',font = "Songti SC",opacity = 0.5)
    word1.text=str(int(p*100))+'%的机会获得'+str(G)
    word2.text=str(int((1-p)*100))+'%的机会获得'+str(w)
    word3.text=str(int(p*100))+'%的机会获得'+str(g)
    word4.text=str(int((1-p)*100))+'%的机会获得'+str(x)
    rect1.draw();rect2.draw();line1.draw();line2.draw()
    word1.draw();word2.draw();word3.draw();word4.draw()

    sure_rect=visual.Rect(win,pos=(0,-0.6),width=0.25,height=0.12,lineColor='black',lineWidth=5,fillColor='Coral',opacity = 0.5)
    sure_text=visual.TextStim(win,text=u'确定',height=0.05,pos=(0,-0.6),bold=True,italic=False,color = 'black',font= "Songti SC",opacity = 0.5)
    sure_rect.draw();sure_text.draw()
    win.flip()
    core.wait(2) 

    ###2秒后鼠标才能进行选择

    myMouse = event.Mouse()

    check=0
    F=True
    while F:

        #### 鼠标点击 改变其透明度
        if (myMouse.isPressedIn(rect1)):check=1;
        if (myMouse.isPressedIn(rect2)):check=2;
    
        if (check==1):
            rect1.opacity = 1;line1.opactiy = 1
            word1.opactiy = 1;word2.opactiy = 1
            rect2.opacity = 0.5;line2.opactiy = 0.5
            word3.opactiy = 0.5;word4.opactiy = 0.5
        elif (check==2):
            rect1.opacity = 0.5;line1.opactiy = 0.5
            word1.opactiy = 0.5;word2.opactiy = 0.5
            rect2.opacity = 1;line2.opactiy = 1
            word3.opactiy = 1;word4.opactiy = 1
        else:
            rect1.opacity = 0.5;line1.opactiy = 0.5
            word1.opactiy = 0.5;word2.opactiy = 0.5
            rect2.opacity = 0.5;line2.opactiy = 0.5
            word3.opactiy = 0.5;word4.opactiy = 0.5

      ####点击选项之后才能对‘确定’按钮进行点击

        if (check>0):
            sure_rect.opacity = 1
            sure_text.opacity = 1
        else:
            sure_rect.opacity = 0.5
            sure_text.opacity = 0.5

        rect1.draw();rect2.draw();line1.draw();line2.draw()
        word1.draw();word2.draw();word3.draw();word4.draw()
        sure_rect.draw();sure_text.draw()
        win.flip()
        if (check>0) and (myMouse.isPressedIn(sure_rect)):F=False 
    return (p,G,w,g,x,check)

dd=decision()

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值