程式碼:
PImage img,imn;
int i=0,j=0,k=0;
int num = 50;
int[] x = new int[num];
int[] y = new int[num];
int w=50,h=50;
int a,b;
void setup()
{
background(255);
size(1000, 1000);
frameRate(25);
noStroke();
smooth();
img = loadImage("robot.jpg");
imn = loadImage("robo.jpg");
for(int i=0;i<50;i++) //蚊子隨機產生的位子
{
a=(int)random(50,850);//{這4行要放在FOR裡面
b=(int)random(50,750);// 否則跑出來的圖片蕙質有一隻蚊子
x[i]=a; //
y[i]=b; //
image(img,a,b,w,h);
}
PFont font = loadFont("Ziggurat-32.vlw"); //初始計值
textFont(font);
textSize(18);
fill(0);
text("SCORE = ", 750, 750);
}
void draw()
{
if(k<50)
{
background(255);
PFont font = loadFont("Ziggurat-32.vlw");
textFont(font);
textSize(18);
fill(0);
for(int i=0;i<50;i++) //將剩下的蚊子依原本的位子標上去
{
image(img,x[i],y[i],w,h); //x[i] y[i]的值與上面對應的值一樣
}
text("SCORE = "+k, 750, 750);
{
image(imn,mouseX-25,mouseY-25,w,h);
for(int i=0;i<50;i++)
{
if(mouseX<=x[i]+50 && mouseX>=x[i] && mouseY<=y[i]+50 && mouseY>=y[i] )
{
x[i]=1000; //移動蒼蠅拍
y[i]=800;
k++;
}
}
}
}
else if(k==50)
{
background(0);
textSize(80);
fill(143,22,22);
text("Game Over", 250, 250);
}
}
考上機考碰到蚊子被打不會消失的時候,感覺只有一個字:冏,幸好之後在同學的協助下知道了要在set時用了兩個陣列來表示他們的位子,計分方面在滑鼠每經過一隻蚊子的時候讓計分的總數加一,以便於做分數的加減,同時用for迴圈來重複貼上背景和剩下來的蚊子的位址來讓已死去的蚊子不見
沒有留言:
張貼留言