haxe/OpenFL: 如何destroy/remove 一块砖

haxe/OpenFL: How to destroy/remove a brick

我觉得这很奇怪,我什么也没找到...这意味着答案很简单,但我不明白或者是其他原因。

我使用的是 haxe 和 openFL,并且该练习专门针对不使用任何其他框架。我正在构建一个 Atari 突破克隆。我正在尝试处理块和球之间的碰撞事件。所有块都存储在正在迭代的数组 map[] 中。

if ( (ball.x > (map[i].x) && ball.x < (map[i].x+20)) && (ball.y > (map[i].y) && ball.y < (map[i].y+20)) ) {
                    this.removeChild(map[i]);
                    ballMovement.y *= -1;
                }

球的半径为 10px,每个方块为 20x20。 (此外,是的,球会笨拙地弹跳,但我还没有时间制作像样的弹跳功能,所以现在必须这样做)

我遇到了一些意外行为。是的,方块现在消失了,但有时球似乎会从看不见的方块上弹开。问题是,我是否正确删除了这些元素?是不是碰撞检测没设置好?

也许你也应该从 map 中删除你的 block(map[i]),因为你似乎检查了与地图元素的碰撞,而不是显示元素。