2022年10月17日 星期一

尖🦉筆記-week07

◇暗棋の亂數洗牌(延續上上週程式)

  1. mousePressed 的迴圈,上面要改成4,下面改成8。不然會出錯

  2.在setup()裡,洗牌,用for迴圈洗1000次,宣告兩個變數,隨機取0~3 or 0~7,之後用temp互換。

    for(int k=0;k<1000;k++){

         int i1=int(random(4)) ,j1=int(random(8)) ;

         int i2=int(random(4)) ,j2=int(random(8)) ;

         int temp=board[i1][j1];

         board[i1][j1]=board[i2][j2];

         board[i2][j2]=temp;

    }

    可以建立一個void shuffle_one函式,將剛剛for迴圈裡的東西丟進去,之後迴圈呼叫shuffle_one就OKAY!!

  3.設定變數

    int moveI = -1 ,moveJ = -1; ///用來記錄要移動的棋子位置,-1表示目前沒有。

    boolean moving=false;//目前沒有移動

 4. 在mousePressed() 裡再新增一個else,寫入

     moveI = i; //我們要移動的棋子 的 i座標

     moveJ = j; //我們要移動的棋子 的 j座標

     moving = true;///正在移動

 5.在draw()裡,設定如果moving,就畫棋子。

   drawChess(50+25+moveJ*50, 50+25+moveI*50, 9);//放到外面第九個

 6.在drawChess() 設定我們點選要移動的棋子後,那顆棋子要變色。

   if(id==9){ //當id為9,就印藍色的圓

      fill(#AFFFFD);

      ellipse(x, y, 40, 40);

  }

 7.將上一步的drawChess()註解掉。之後在全域新增一個moveID=0 (紀錄我們拿起來的棋子),

   並在else裡增加moveID=board[i][j];

 8.在draw()裡,如果moving改掉,在原本位置留下透明藍色的圓,並且我們滑鼠上有要移動的棋子。 fill第四個值為透明度。

 9. 設定mouseReleased函式放置棋子!! drawChess()函式裡要新增if(id==0) return;

==完成==

◇加入音樂: 

  1. 先存檔,將音樂檔拉入, ctrl+k可以打開程式目錄。 裡面的data資料夾可以看到我們丟進去的音樂。

  查看音樂程式碼:協助(Help) > 點參考文件(Reference) > 進入網頁點library  >  sound 或soundfile。  

  2.點 程式素描本 (sketch) > 使用程式函式庫(library)  > Manage libraries >  安裝sound的函式庫

  3.讀入音樂檔:SoundFile File = new SoundFile(this,"檔名.mp3");

     撥放音樂檔:File.play();

  4.可以在一開始先設立 SoundFile 變數,並一次讀取完,之後再撥放。

沒有留言:

張貼留言