最初のプロジェクト-BLOCK MAMBA(4)



現在の状況
方向キー操作
  • ユーザ
  • を押す.
  • 宝石はランダムに生成され、プレイヤーは習得した後、別の位置で
  • を生成する.
  • 最初に蛇が現れ、プレイヤーは宝石を1つ食べるたびに
  • を増やした.
  • 30秒の時間があり、時間内に7個集められないと
  • に失敗します
    ここまで実装する過程で、コードは少し変化します.
    まず、プレイヤー、ヘビ、宝石は、従来の移動のたびに1枚の画像を描き、drawField()関数として作成し、統一処理を行います.
    プレイヤーはユーザ制御時のみ移動し、ヘビは0.1秒ごとに移動し、宝石獲得時に移動するため、drawField()は0.01秒ごとにシーン全体をリフレッシュする.
    boardでは、すべての状況がリアルタイムで記録されているので、よく表現されていて問題ありません.
    function drawField(){
        let draw = setInterval(function(){
            for (let i = 0; i < 25; i++){
                for (let j = 0; j < 25; j++){
                    if (board[i][j] === 0){
                        document.getElementById(`${i},${j}`).style.backgroundColor = "white";
                    }
                    else if (board[i][j] === 1){
                        document.getElementById(`${i},${j}`).style.backgroundColor = "black";
                    }
                    else if (board[i][j] === 2){
                        document.getElementById(`${i},${j}`).style.backgroundColor = "gray";
                    }
                    else if (board[i][j] === 3){
                        document.getElementById(`${i},${j}`).style.backgroundColor = crystalColor[crystalIdx];
                    }
                }
            }
            if (!gameState){
                clearInterval(draw);
                resetField();
            }
        }, 10);
    }
    他の機能を追加すると同時に、コードが乱れているように見えますが、整理したいのですが、この過程でかなり頭が痛いです.今は文法を勉強する必要があるので、閉鎖訓練が必要です.
    そして、さっき文章を書いたときに思いついたのは、黒板に0,1,2,3で記録するべきではなく、rgbコードや色名を書いたほうが、drawField()関数も短く書くことができるということです.
    まだ入れるものがたくさんあります.