float[] xPos = new float[0];
float[] yPos = new float[0];
float[] xVel = new float[0];
float[] yVel = new float[0];
float[] partSize = new float[0];
bang = loadImage("http://rickpowell.co.uk/hap-pea_christmas/bang.png");
cracker = loadImage("http://rickpowell.co.uk/hap-pea_christmas/cracker.png");
happea = loadImage("http://rickpowell.co.uk/hap-pea_christmas/happea.png");
float bg =constrain(map( mouseY, 300, 450, 0, 255), 0, 255);
background(150, 120, bg);
(mouseX < rectX+rectWidth)&&
(mouseY < rectY+rectHeight)) {
image(bang, 0, height-264);
image(cracker, 0, height-264);
rect(rectX, rectY, rectWidth, rectHeight);
xPos = append(xPos, random(0, 600));
xVel = append(xVel, random(-1, 1));
yVel = append(yVel, random(1, 3));
partSize = append(partSize, random(1, 6));
for (int i=0; i<xPos.length; i++) {
ellipse(xPos[i], yPos[i], partSize[i], partSize[i]);
partSize = subset(partSize, 1);
float leftXpos = constrain(map( mouseX, 100, 300, 205, 210), 205, 210);
float leftYpos = constrain(map( mouseY, 300, 500, 430, 440), 430, 440);
ellipse(leftXpos, leftYpos, 4, 4);
float rightXpos = constrain(map( mouseX, 100, 300, 224, 230), 224, 230);
float rightYpos = constrain(map( mouseY, 300, 500, 427, 435), 427, 435);
ellipse(rightXpos, rightYpos, 4, 4);
float right1Xpos = constrain(map( mouseX, 300, 500, 378, 383), 378, 383);
float right1Ypos = constrain(map( mouseY, 300, 500, 427, 435), 427, 435);
ellipse(right1Xpos, right1Ypos, 4, 4);
float left1Xpos = constrain(map( mouseX, 300, 500, 397, 403), 397, 403);
float left1Ypos = constrain(map( mouseY, 300, 500, 430, 440), 430, 440);
ellipse(left1Xpos, left1Ypos, 4, 4);