psychopy.event- for keypresses and mouse clicks¶
Mouse(visible=True, newPos=None, win=None)¶
Easy way to track what your mouse is doing.
It needn’t be a class, but since Joystick works better as a class this may as well be one too for consistency
Create your visual.Window before creating a Mouse.
clickReset(buttons=(0, 1, 2))¶
Reset a 3-item list of core.Clocks use in timing button clicks.
The pyglet mouse-button-pressed handler uses their clock.getLastResetTime() when a button is pressed so the user can reset them at stimulus onset or offset to measure RT. The default is to reset all, but they can be reset individually as specified in buttons list
Returns the current position of the mouse,
in the same units as the
Window (0,0) is at centre
Returns a 3-item list indicating whether or not buttons 0,1,2 are currently pressed.
If getTime=True (False by default) then getPressed will return all buttons that have been pressed since the last call to mouse.clickReset as well as their time stamps:
buttons = mouse.getPressed() buttons, times = mouse.getPressed(getTime=True)
Typically you want to call mouse.clickReset() at stimulus onset, then after the button is pressed in reaction to it, the total time elapsed from the last reset to click is in mouseTimes. This is the actual RT, regardless of when the call to getPressed() was made.
Returns the new position of the mouse relative to the
last call to getRel or getPos, in the same units as the
Gets the visibility of the mouse (1 or 0)
Returns the travel of the mouse scroll wheel since last call. Returns a numpy.array(x,y) but for most wheels y is the only value that will change (except Mac mighty mice?)
isPressedIn(shape, buttons=(0, 1, 2))¶
Returns True if the mouse is currently inside the shape and one of the mouse buttons is pressed. The default is that any of the 3 buttons can indicate a click; for only a left-click, specifiy buttons=:
if mouse.isPressedIn(shape): if mouse.isPressedIn(shape, buttons=): # left-clicks only
Ideally, shape can be anything that has a .contains() method, like ShapeStim or Polygon. Not tested with ImageStim.
Determine whether/how far the mouse has moved.
With no args returns true if mouse has moved at all since last getPos() call, or distance (x,y) can be set to pos or neg distances from x and y to see if moved either x or y that far from lastPos, or distance can be an int/float to test if new coordinates are more than that far in a straight line from old coords.
Retrieve time of last movement from self.mouseClock.getTime().
Reset can be to ‘here’ or to screen coords (x,y) which allows measuring distance from there to mouse when moved. If reset is (x,y) and distance is set, then prevPos is set to (x,y) and distance from (x,y) to here is checked, mouse.lastPos is set as current (x,y) by getPos(), mouse.prevPos holds lastPos from last time mouseMoved was called.
Binds the mouse to the experiment window. Only works in Pyglet.
In multi-monitor settings, or with a window that is not fullscreen, the mouse pointer can drift, and thereby PsychoPy might not get the events from that window. setExclusive(True) works with Pyglet to bind the mouse to the experiment window.
Note that binding the mouse pointer to a window will cause the pointer to vanish, and absolute positions will no longer be meaningful getPos() returns [0, 0] in this case.
Sets the current position of the mouse,
in the same units as the
Window. (0,0) is the center.
Sets the visibility of the mouse to 1 or 0
NB when the mouse is not visible its absolute position is held at (0, 0) to prevent it from going off the screen and getting lost! You can still use getRel() in that case.
The units for this mouse (will match the current units for the Window it lives in)
Clears all events currently in the event buffer.
Optional argument, eventType, specifies only certain types to be cleared.
waitKeys(maxWait=inf, keyList=None, modifiers=False, timeStamped=False)¶
Same as ~psychopy.event.getKeys, but halts everything (including drawing) while awaiting input from keyboard. Implicitly clears keyboard, so any preceding keypresses will be lost.
Returns None if times out.
getKeys(keyList=None, modifiers=False, timeStamped=False)¶
Returns a list of keys that were pressed.
xydist(p1=(0.0, 0.0), p2=(0.0, 0.0))¶
Helper function returning the cartesian distance between p1 and p2