in datawig-js/static/jspsych-6.1.0/plugins/jspsych-rdk.js [780:881]
function makeDotArray() {
var tempArray = []
for (var i = 0; i < nDots; i++) {
//Initialize a dot to be modified and inserted into the array
var dot = {
x: 0, //x coordinate
y: 0, //y coordinate
vx: 0, //coherent x jumpsize (if any)
vy: 0, //coherent y jumpsize (if any)
vx2: 0, //incoherent (random) x jumpsize (if any)
vy2: 0, //incoherent (random) y jumpsize (if any)
latestXMove: 0, //Stores the latest x move direction for the dot (to be used in reinsertOnOppositeEdge function below)
latestYMove: 0, //Stores the latest y move direction for the dot (to be used in reinsertOnOppositeEdge function below)
lifeCount: Math.floor(randomNumberBetween(0, dotLife)), //Counter for the dot's life. Updates every time it is shown in a frame
updateType: "" //String to determine how this dot is updated
};
//randomly set the x and y coordinates
dot = resetLocation(dot);
//For the same && random position RDK type
if (RDK == 1) {
//For coherent dots
if (i < nCoherentDots) {
dot = setvxvy(dot); // Set dot.vx and dot.vy
dot.updateType = "constant direction";
}
//For opposite coherent dots
else if(i >= nCoherentDots && i < (nCoherentDots + nOppositeCoherentDots)){
dot = setvxvy(dot); // Set dot.vx and dot.vy
dot.updateType = "opposite direction";
}
//For incoherent dots
else {
dot.updateType = "random position";
}
} //End of RDK==1
//For the same && random walk RDK type
if (RDK == 2) {
//For coherent dots
if (i < nCoherentDots) {
dot = setvxvy(dot); // Set dot.vx and dot.vy
dot.updateType = "constant direction";
}
//For opposite coherent dots
else if(i >= nCoherentDots && i < (nCoherentDots + nOppositeCoherentDots)){
dot = setvxvy(dot); // Set dot.vx and dot.vy
dot.updateType = "opposite direction";
}
//For incoherent dots
else {
dot.updateType = "random walk";
}
} //End of RDK==2
//For the same && random direction RDK type
if (RDK == 3) {
//For coherent dots
if (i < nCoherentDots) {
dot = setvxvy(dot); // Set dot.vx and dot.vy
dot.updateType = "constant direction";
}
//For opposite coherent dots
else if(i >= nCoherentDots && i < (nCoherentDots + nOppositeCoherentDots)){
dot = setvxvy(dot); // Set dot.vx and dot.vy
dot.updateType = "opposite direction";
}
//For incoherent dots
else {
setvx2vy2(dot); // Set dot.vx2 and dot.vy2
dot.updateType = "random direction";
}
} //End of RDK==3
//For the different && random position RDK type
if (RDK == 4) {
//For all dots
dot = setvxvy(dot); // Set dot.vx and dot.vy
dot.updateType = "constant direction or opposite direction or random position";
} //End of RDK==4
//For the different && random walk RDK type
if (RDK == 5) {
//For all dots
dot = setvxvy(dot); // Set dot.vx and dot.vy
dot.updateType = "constant direction or opposite direction or random walk";
} //End of RDK==5
//For the different && random direction RDK type
if (RDK == 6) {
//For all dots
dot = setvxvy(dot); // Set dot.vx and dot.vy
//Each dot will have its own alternate direction of motion
setvx2vy2(dot); // Set dot.vx2 and dot.vy2
dot.updateType = "constant direction or opposite direction or random direction";
} //End of RDK==6
tempArray.push(dot);
} //End of for loop
return tempArray;
}