Определить, когда один объект находится над другим?(HTML5) - PullRequest
0 голосов
/ 12 июня 2019

Я создаю игру на HTML5 Canvas, для которой требуется действие, выполняемое, когда один объект (рисунок) пересекает другой объект (также рисунок).

Я пробовал методы, которые виделонлайн, но они, кажется, не работают.Я ожидал, что код будет похож на функцию Mouseover, но я пытался с этим, и он не работал.

Это возможная функция?Можно ли это сделать с помощью графики?

Это был мой оригинальный код в AS3:

        object1.addEventListener( Event.ENTER_FRAME, handleCollision)

        function handleCollision( e:Event ):void
        {
            if (object2.hitTestPoint(object1.x, object1.y, true))
            {
               // object2 collided with object1
                trace("Collision");u

            }
        }

Ответы [ 2 ]

1 голос
/ 13 июня 2019

Вы должны использовать BitmapData.hitTest для определения уровня пикселей. Это аргумент, поэтому вам нужно иметь функцию типа enter_frame для постоянной проверки на совпадения.

Здесь вы можете найти пример использования BitmapData.hitTest для обнаружения потери контакта со спрайтом, который представляет игровую зону. Ваше требование противоположное, чтобы обнаружить контакт с другим спрайтом. Но это по сути та же идея.

Надеюсь, это поможет

0 голосов
/ 15 июня 2019

После некоторых исследований я обнаружил, что обнаружение столкновений между графиками в HTML5 по какой-то причине невозможно.Вместо этого я использовал альтернативный метод, в котором, если координаты объекта2 совпадают с координатами объекта1, а ось Y не находится над ним, то реакция произойдет.

...