0

我正在尝试制作我的第一个 html5 画布游戏,到目前为止已经想出了这个,您可以使用左、右和下箭头键。

你可以在这里看到代码,

http://jsfiddle.net/ShaShads/EWC5B/

我考虑过使用某种数组和网格,但我真的不知道它是否可行?

var someArray = [];

然后使用数组来存储块,但对于碰撞检测我真的不知道!

我碰到了一个颠簸,不知道如何开始让砖块到达底部后留在屏幕上,然后记住砖块的碰撞以便砖块可以堆叠?我不是要求给我所有的答案,我可以研究什么来帮助我到达那里就足够了,谢谢。

这是我的第一次游戏,如果有很多错误,请告诉我,以便我改进,再次感谢。

4

1 回答 1

0

屏幕底部

要测试对象是否在屏幕底部,只需简单测试:

If obj.y >= (canvas.height - object.height) then don't increase obj y position.

盒子堆叠

为了让你的盒子堆叠起来,在每个循环中,你需要检查一个特定的盒子是否与另一个盒子碰撞:

for (var i=0; i<boxes.length; i++) {
    var boxA = boxes[i];

    for (var j=0; j<boxes.length; j++) {
        var boxB = boxes[j];

        if (boxA collides with boxB) don't increase boxA y position 
    }
}

请注意,这是非常低效的,但对于您的第一场比赛就足够了。如需更有效的方法,请尝试此链接


这就是它背后的理论。这该怎么做?好吧,如果您有管理盒子的好方法,您可以让您的生活更轻松。

例如,您可以有一个具有 x 和 y 位置以及高度和宽度的框对象。您还可以给它一个 isMoving 属性,该属性将用于确定盒子是堆叠/在地板上还是仍在运动中。

这种方法几乎等同于“记住”,因为每个盒子对象都会跟踪它自己的位置。

将这些框对象存储在一个数组中,以便您可以轻松地遍历您的框。

于 2013-02-21T23:28:23.243 回答