2012年12月6日 星期四

上機考


打蚊子   小遊戲



* 老師的期中考配分要求:                              << 考試的狀況 >>
1.  50隻蚊子要顯示在螢幕上                                     (X) 未達到  
2.  蚊子要能被打死 ( 會消失 )                                   (O) 達到    
3.  要有計分的功能 ( Score顯示計分 )                      (X) 未達到     
4.  完全打完後,要出現 YOU WIN 標語                 (O) 達到      

<< 問題已解決 >>

// 1 ) 遇到的問題:50隻蚊子無法顯示在界面上 / Score 計分機制顯示 

當時不太清楚Array的使用,故剛開始再第一步:將50隻蚊子顯示在銀幕上,就卡住
了,但後來還是決定繼續做,並沿用之前學過的貓抓老鼠所學到的,只是將鍵盤的判斷語
法改成左鍵是否按下;再來就是計分的機制顯示,知道要如何顯示Score字體和計分,但
因和前者有所關聯,蚊子數量不夠多,故產生計分機制也不會有太大的意義。

// 2 ) 如何解決:

* 清楚了解到Array的宣告以後,就輕鬆許多了。
int[] x = new int[50]; //蚊子的x,y軸宣告數量0-49的陣列內容
int[] y = new int[50]; 
void setup()
{
size(800,800); 
img_1 = loadImage("1.jpg"); //1.jpg當然就為讀取蚊子的圖檔
for(int i=0;i<50;i++){ 
    x[i] = (int)random(700); //經由FOR迴圈在範圍(長,寬)在(700,700)
    y[i] = (int)random(700);   產生亂數的位置(random(x),random(y))                 
}



* Score計分機制的程式段落。
int score = 0; //設定Score的初始值為0
for(int i=0;i<50;i++){  
    image(img_1 , x[i] , y[i], 50 , 50);    
    textFont(font); 
    noStroke();
    fill(255);
    rect(650 , 0 ,150 ,50);
    fill(0);          
    text("Score" + score , 620 , 50);//在Score字樣後面加上計分的內容                                 
}
if (mousePressed == true) {
      if (mouseButton == LEFT) { 
        for(int i=0;i<50;i++){  
          if((mouseX < x[i] + 30 && mouseX > x[i] - 10)&&
             (mouseY < y[i] + 30 && mouseY > y[i] - 10))
          {
          score ++;
          println(score); //隨著For執行一次,當滑鼠移到所設定的x,y軸範圍      
          x[i] = (-100);    並按下左鍵後,將Score累加,並將內容印出。

          y[i] = (-100);
          }
        }


// 感想:
雖然這次這是考試沒有考得很順利,一寫程式因不知如何宣告這個遊戲需要的陣列,
使得後半部做的也很零散,但是並不遺憾,因為至少知道自己有盡力將自己上課所
學到的知識,運用到後面需要用到的地方,並不是從頭到尾都不會。且也可以,隨
著自己回去再次演練,印象也加深了,也深刻學會了新知識,我認為一切是值得的。


沒有留言:

張貼留言