[solved] How to ignore incorrect mouse responses?
Hi,
I have a very simple program where you touch a red dot that appears randomly on the screen. If you click the dot that is a correct response. However, if you click somewhere not on the dot, I want nothing to happen. Currently, when you make an incorrect response the program advances to the next trial. I basically want participants to stay on a trial until they click the dot.
Here is my mouse inline script, where I think I should be controlling this. I'm guessing something is wrong with my loop.
from openexp.mouse import mouse
from math import sqrt
my_mouse = mouse(exp, visible = False)
# Use Pythagoras to determine the click error
xc = self.get('width') / 2
yc = self.get('height') / 2
# Determine x and y error
dx = self.get('cursor_x')- xc - self.get('xRed')
dy = self.get('cursor_y')- yc - self.get('yRed')
target_positions = [(dx, dy)]
# The maximum error from the target center
maxClickErr = 100
clickErr = sqrt(dx**2 + dy**2)
hit = False
for target_x, target_y in target_positions:
if clickErr <= maxClickErr:
exp.set('correct', 1)
hit = True
if not hit:
pass

Comments
Hi,
Your script is a bit funky in a number of ways. First off, you define a
mouseobject, but never use it, apparently because you use amouse_responseitem to collect mouse clicks. Second, you definetarget_positionslist, which is walked through, but is functionally ignored. (And at any rate does not contain a list of target positions, as you would expect!)Below you see a modified version of your script, which should do more-or-less what you want. The idea is to use a
mouseobject to collect clicks in an endless loop that is broken only when a click is close enough to the target (defined by thexRedandyRedexperimental variables). Does that make sense? This script is instead of amouse_responseitem, so you can remove that from your trial sequence.It might also be a good idea to walk through a basic Python tutorial, to get a grip on using while-loops, etc.
Cheers!
Sebastiaan
Check out SigmundAI.eu for our OpenSesame AI assistant!
Thanks Sebastiaan! This works perfectly. I will definitely have a look at the python training.