2016-06-02 4 views
0

Я думаю, что это довольно странно, что я ничего не нашел ... что означает, что ответ действительно прост, но я не понимаю его или это что-то еще.haxe/OpenFL: Как уничтожить/удалить кирпич

Я использую haxe и openFL, и это упражнение касается не использования каких-либо других фреймворков. Я создаю клон Clout 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. (Кроме того, да, мяч будет отскакивать неловко, но у меня не было времени, чтобы сделать достойную функцию отскока, так что теперь вам нужно будет сделать это)

Я получаю неожиданное поведение. Да, теперь блоки исчезают, но иногда кажется, что мяч отскакивает от невидимых блоков. Вопрос в том, правильно ли я удаляю эти элементы? Не определено ли обнаружение столкновения?

ответ

2

Возможно, вы должны удалить свой блок (карта [i]) с , а также карту, так как вы проверяете столкновение с элементами карты, а не элементами отображения.

+0

Конечно, я не удалял его из массива. На следующее утро я заметил это правильно. Одна из проблем, связанных с поздним кодированием: P очень благодарна. – Thaenor