作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我的问题是球只是穿过砖 block ,什么也没有发生。我将把整个代码放在jsbin中,这里我只发布不起作用的部分。正如你所看到的,我有一个弹跳球、一个 Racket 、砖 block 和一个animationFrame函数。
for (var i in bricks) {
if (!bricks[i].isDestroyed) {
if (
(this.y + this.radius == bricks[i].y - bricks[i].height)
&& (this.x >= bricks[i].x)
&& (this.x <= bricks[i].x + bricks[i].width)
) {
bricks[i].isDestroyed = true;
destroyedBrick = true;
this.direction.y = "up";
ctx.clearRect(bricks[i].x, bricks[i].y, bricks[i].width, bricks[i].height);
}
if (
(this.y - this.radius == bricks[i].y)
&& (this.x >= bricks[i].x)
&& (this.x <= bricks[i].x + bricks[i].width)
) {
bricks[i].isDestroyed = true;
destroyedBrick = true;
this.direction.y = "down";
ctx.clearRect(bricks[i].x, bricks[i].y, bricks[i].width, bricks[i].height);
}
if (
(this.x - this.radius == bricks[i].x)
&& (this.y - this.radius <= bricks[i].y)
&& (this.y - this.radius >= bricks[i].y - bricks[i].height)
) {
bricks[i].isDestroyed = true;
destroyedBrick = true;
this.direction.x = "left";
ctx.clearRect(bricks[i].x, bricks[i].y, bricks[i].width, bricks[i].height);
}
if (
(this.x == bricks[i].x + bricks[i].width)
&& (this.y - this.radius <= bricks[i].y)
&& (this.y - this.radius >= bricks[i].y - bricks[i].height)
) {
bricks[i].isDestroyed = true;
destroyedBrick = true;
this.direction.x = "right";
ctx.clearRect(bricks[i].x, bricks[i].y, bricks[i].width, bricks[i].height);
}
}
}
最佳答案
当您可能需要不等式时,冲突代码似乎在某些检查中使用了 == 。所以我的猜测是球正在跨过那个确切的位置,导致其他检查被跳过。根据需要将所有比较切换为 >= 或 <= 并查看是否可以解决问题。
关于javascript - 弹球破砖游戏,砖 block 弹不起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20338709/
我是一名优秀的程序员,十分优秀!