◇暗棋の亂數洗牌(延續上上週程式):
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 變數,並一次讀取完,之後再撥放。
沒有留言:
張貼留言