processingのカーソルと画像の距離
processingでクリスマスカードを作るのですが、どうしてもカーソルと雪だるまの距離があいてしまいます。この距離をあけないようにするにはどうしたらいいでしょうか?わかる方がいらっしゃいましたらどうぞよろしくお願いします。
void setup()
{
size(600,600);
smooth();
noStroke();
}
int flag = 0;
void draw()
{
background(10,50,100);
fill(0);
rect(0,450,600,280);
int x=50,y=30;
fill(#006e54);
triangle(300,50,400,200,200,200);
triangle(300,50+x,420,280,180,280);
triangle(300,50+2*x,420+y,280+2*x,180-y,280+2*x);
fill(190,103,31);
rect(275,280+2*x,50,150);
textSize(45);
fill(255,0,0);
text("Merry X'mas!",170,580);
fill(random(255),random(255),random(255));
translate(249,5);
beginShape();
vertex(50 , 50 - 20);
vertex(50 - 12 , 50 + 15);
vertex(50 + 18 , 50 - 8);
vertex(50 - 18 , 50 - 8);
vertex(50 + 12 , 50 + 15);
endShape(CLOSE);
fill(random(255),random(255),random(255));
ellipse(20,90,30,30);
fill(random(255),random(255),random(255));
ellipse(100,130,30,30);
fill(random(255),random(255),random(255));
ellipse(10,170,30,30);
fill(random(255),random(255),random(255));
ellipse(55,220,30,30);
fill(random(255),random(255),random(255));
ellipse(130,250,30,30);
fill(random(255),random(255),random(255));
ellipse(90,350,30,30);
fill(random(255),random(255),random(255));
ellipse(30,300,30,30);
fill(random(255),random(255),random(255));
ellipse(10,360,30,30);
fill(random(255),random(255),random(255));
ellipse(160,320,30,30);
fill(random(255),random(255),random(255));
ellipse(-40,330,30,30);
if(mousePressed)
{
flag=1;
}
else
{
flag=0;
}
if(flag==1)
{
snowman();
}
else
{
textSize(20);
fill(255);
text("Please press mouse to create a snowman!",-150,20);
}
}
void snowman()
{
int speed=2;
int x=mouseX;
int y=mouseY;
x+=random(-speed,speed);//let snowman move randomly
// x=constrain(x,0,500);
y+=random(-speed,speed);
y=constrain(y,0,600);
fill(255); //make a little snowman
ellipse(x,y-50,50,50);
ellipse(x,y,100,100);
fill(0);
ellipse(x-10,y-55,10,10);
ellipse(x+10,y-55,10,10);
fill(#ff0000);
triangle(x-10,y-50,x+10,y-50,x,y-30);
}