int score; //分數
int[] X; //X軸
int[] Y; //Y軸
int[] Z; //第i隻.用來判斷是否存在
PImage img;
PImage kill;
PImage hit;
//載入圖片,有寫但一直跑不出來,因為放錯地方了
void setup(){
size(800,800);
background(0);
score=0;
X= new int[50];
Y= new int[50];
Z = new int[50];
//用陣列設定全部蚊子存在(50隻所以陣列就設在50)
img = loadImage("1.jpg");
//原本只設這一個所以只打這一行,但我把它放在draw裡
kill = loadImage("3.jpg");
hit=loadImage("2.jpg");
//讀取圖片,後來知道三張圖是要分別設的
for(int i=0;i<50;i++){
//設定隨機設定蚊子位置,只知道要跑50隻,但發現要用矩陣比較好寫
Z[i]=1; //存在1隻
X[i]=(int)random(700);
Y[i]=(int)random(700);
}
for(int i=0;i<50;i++){
//印出蚊子所在的地方
if(Z[i]==1)image(img,X[i],Y[i]);
else if(Z[i]==0)image(kill,X[i],Y[i]);
}
}
void draw(){
background(0);//蓋畫面
for(int i=0;i<50;i++){
//開始要打蚊子:用滑鼠座標當拍子,當滑鼠座標與蚊子座標相同而且按下左鍵
if(mousePressed==true){
if(mouseButton==LEFT){
if(X[i]<=mouseX && X[i]>=mouseX-50 &&Y[i]<=mouseY &&Y[i]>=mouseY-50 && Z[i]==1 && score<50)
{
Z[i]=0; //蚊子被打死
score++; //獲得分數
}
}
}
}
for(int i=0;i<50;i++){
//再印出蚊子
if(Z[i]==1)
image(img,X[i],Y[i]);
else if(Z[i]==0)
image(kill,X[i],Y[i]);
}
PFont font;
font=loadFont("AndaleMono-24.vlw");
//印出字型,當初沒有印出是忘記還有印出分數這一塊
textFont(font);
textSize(30);
text("Score:",50,50);//印出分數的位置
text(score,190,50);//分數變化
image(hitto,mouseX-50,mouseY-50);
}
if(score==50){
//獲勝:達分數上限遊戲結束
background(255);
fill(0);
text("yayayaya!!!! :)))",100,100);//遊戲結束的畫面
}
PFont font;
font=loadFont("AndaleMono-24.vlw");//印出字型,當初沒有印出是忘記還有印出分數這一塊
textFont(font);
textSize(30);
text("Score:",50,50);//印出分數的位置
text(score,190,50);//分數變化
image(hit,mouseX-50,mouseY-50);
}
期中考分兩階段,第一階段的時候腦袋有點轉不過來,蚊子不知道為什麼就是出不來,後來回家問了同學的方式才突然發現,原來是放錯地方了,而且原本預設的也不對。第一階段根本沒有分數,和同學討論好久後才有的結果。其實並不難,只是把他想的太難了!!也沒有想到要用矩陣寫,看似複雜的東西,其實只要懂了就很有趣。
這次期中考題雖然以為老師會考很多格子,但沒想到是這樣子的題目,所以後來回家慢慢和同學討論還是可以寫出來的。原來可以也出這樣的小遊戲,好好玩。整個寫完後覺得挺有成就感的,雖然是和同學討論的,但以後一定也可以自己想出來。
沒有留言:
張貼留言