回覆列表
  • 1 # 貓妖琉璃

    chushi = 5;//初始蛇的長度為5個格子

    首先定義蛇,為一個數組。

    she = new Array();//蛇

    var shs = 0;

    var shs0 = 0;

    var shs1 = 0;

    var cx = 3;//初始蛇的x座標,為從左邊數第四列

    var cy = heng/2;//初始蛇的y座標,為整個行數的二分之一,就是顯示在棋盤中間

    cy=parseInt(cy);//取整數

    for (var sh=0;sh<chushi;sh++) //迴圈生成蛇的五個格子的位置。

    {

    shs0 = shs;

    shs1 = shs+1;

    she[shs0] = (cx+sh)*jiangew;

    she[shs1] = cy*jiangeh;

    shs = shs +2;

    }

    效果像下面一樣

    蛇的第一個格子的座標x為4,y為高度的二分之一,第二個格子的x座標為5,y為高度的二分之一,以此類推。

    其中陣列she[]的內容大概像這樣

    she[0] = 3; //蛇的第一節x座標

    she[1] = 11; //蛇的第一節y座標

    she[2] = 4; // 蛇的第二節x座標

    she[3] = 11; //蛇的第二節y座標

    she[4] = 5; //蛇的第三節x座標

    she[5] = 11; //蛇的第三節y座標

    --------省略,這個蛇可以無限長,只要增加陣列的長度就行了。

    定義好座標之後,再加上已經知道每個格子的寬度和高度,所以把蛇畫出來,非常容易了。

    hua = 0;

    var hua1 = 0;

    for(var count=0;count<she.length/2;count++){

    //迴圈畫出蛇的每一個格子,由上面she陣列的定義可知,每次取兩個資料,第一個為x座標,第二個為y座標。

    hua = count*2;

    hua1 = count*2+1;

    cas.beginPath();

    cas.fillRect(she[hua],she[hua1],jiangew,jiangeh);

    cas.closePath();

    }

    而畫蛇吃的豆子就更簡單了,只需要兩個變數,豆子的x座標和y座標。

    我們這裡設定成在蛇的前方三個格子的位置。

    douzix = she[hua]+jiangew*3;//設定豆子的x座標為蛇前三個格子

    douziy = she[hua1]; //設定豆子的y座標為蛇的同一行

    cas.beginPath();

    cas.fillRect(douzix,douziy,jiangew,jiangeh); //畫豆子

    cas.closePath();

    現在頁面開啟就已經初始化好了蛇,豆子,棋盤。

  • 中秋節和大豐收的關聯?
  • 3個月大的孩子,在什麼時間段洗澡最合適?