-1

我正在制作一个蛇游戏,正如您从我之前的问题中可能知道的那样。我正在跟进做一个这样的数组:

var snakeX = new Array();
var snakeY = new Array();

然后在for循环中:

for (var i = 0;i<=num;i++) {

    snakeX[0] = xCoord;

    snakeY[0] = yCoord;

    context.fillRect(snakeX[0], snakeY[0], sH, sW);

    xCoord = xCoord + 11;

    console.log('xCoord = ' + xCoord + ', yCoord = ' + yCoord);

}

和varsxCoordyCoord设置为0.

我的问题是为什么这不起作用?

setInterval(function() {

    num++;  

}, 1000);

这是我所拥有的一切:

function snake() {

    //Let's make the snake start at 4 squares wide, and 1 square tall

    function createSnake() {

        var xCoord = 0;

        var yCoord = 0;

        var snakeX = new Array();

        var snakeY = new Array();

        var num = 3;

        setInterval(function() {

            num = num + 1;  

        }, 1000);

        for (var i = 0;i<=num;i++) {

            snakeX[0] = xCoord;

            snakeY[0] = yCoord;

            context.fillRect(snakeX[0], snakeY[0], sH, sW);

            xCoord = xCoord + 11;

            console.log('xCoord = ' + xCoord + ', yCoord = ' + yCoord);

        }
    }
    createSnake();

}

snake();
4

1 回答 1

-1

你似乎从来没有修改xCoordyCoord. 同样,您的“间隔”只是增加了一个数字,实际上并没有做任何其他事情。你需要有某种“重绘”功能来移动蛇。此外,您正在创建snakeXsnakeY作为数组,但只使用snakeX[0]snakeY[i]- 事实上,您甚至没有使用i迭代器。

总体而言,您的代码看起来有点像火车残骸。也许您的项目对于您当前的技能水平有点雄心勃勃,在您尝试之前,您应该做一些更基础的工作。我这样说并不是想劝阻你,我只是想提供一些建议。

于 2013-02-01T01:26:56.320 回答