【发布时间】:2017-06-05 04:28:38
【问题描述】:
使用下面的代码,我试图打开一个窗口 10 秒,让用户根据需要多次单击屏幕上的任意位置,并且我想记录鼠标单击的位置。每次用户在窗口内单击(即 myMouse.getPressed)时,我都会将单击位置附加到列表中(mouse_click_locations[])。但是,该列表在每一帧上都多次附加了相同的单击位置。我想将单击位置附加到列表一次,直到启动另一次单击为止。我认为在每一帧的末尾添加“myMouse.clickReset()”可以做到这一点,但这并没有什么不同。
10 秒后,我希望每次启动鼠标单击时,列表都填充一个位置(x,y 坐标)。
from psychopy import visual, core, gui, event, sound
win = visual.Window([800,600],color=(1,1,1), colorSpace='rgb',
rgb=None, allowGUI=True, monitor='testMonitor',
units='deg', fullscr=False)
myMouse = event.Mouse(visible=True,win=win)
refresh_rate = 60.0
default_time = 10
time_window = default_time * refresh_rate
time_window = int(time_window)
running = 1
while running:
mouse_click_locations = []
for frame in range(time_window):
mouse_loc = myMouse.getPos()
mouse_click = myMouse.getPressed()
if mouse_click:
mouse_click_locations.append(mouse_loc)
win.flip()
myMouse.clickReset()
running = 0
win.close()
print mouse_click_locations
有人可以帮助我实现这一目标吗?我是否错误地使用了 myMouse.clickReset()?
干杯, 乔恩
【问题讨论】:
-
您的问题也在discourse.psychopy.org/t/logging-mouse-click-locations/2566PsychoPy 是一个小社区,请不要重复发帖浪费人们的时间。
-
抱歉,我没有发现问题,因为它是两个独立的网站。我从多个角度认为是一件好事。今后将不再使用。
-
没问题,该评论更多地是作为未来海报的指南,如果它看起来更像是一种责备,对不起。同一个人倾向于在每个站点上提供答案,因此我们倾向于让人们选择最合适的地点并在那里询问。 SO 适用于具有明确答案的基于代码的问题,discourse.psycho.org 更适用于图形生成器界面,和/或需要更多对话而不是单一问题/答案格式的问题。
-
啊,非常有道理!干杯迈克尔。