我正在尝试制作我的第一个html5画布游戏,到目前为止已经提出了这个问题,你可以使用向左,向右和向下箭头键。
你可以在这里看到代码,
http://jsfiddle.net/ShaShads/EWC5B/
我想过使用某种数组和网格,但我真的不知道它是否有效?
var someArray = [];
然后使用数组来存储块,但是对于碰撞检测,我真的不知道!
我碰到了一个碰撞,并且不知道如何在砖块到达底部后开始将砖块留在屏幕上,之后砖块的碰撞会被记住,以便砖块可以堆叠?我不是要求给我一个回答我可以研究的一些指示,以帮助我实现目标,并且谢谢。
这是我的第一款游戏,如果有很多错误请告诉我,我可以改进,再次感谢。
答案 0 :(得分: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
}
}
请注意,这是非常低效的,但足以满足您的第一场比赛。要获得更有效的方法,请尝试使用此link。
这就是它背后的理论。这该怎么做?如果你有一个很好的方法来管理你的盒子,你可以让你的生活更轻松。
例如,您可以拥有一个具有x和y位置以及高度和宽度的box对象。你也可以给它一个isMoving属性,用于确定盒子是否堆叠在地板上或仍在运动中。
这个方法几乎相当于“记住”,因为每个盒子对象都会跟踪它自己的位置。
将这些盒子对象存储在一个数组中,这样您就可以轻松地对盒子进行迭代。