Я делаю простую игру со змеями в as3. проблема, с которой я сталкиваюсь, заключается в том, что штрихи на элементах слегка перекрывают друг друга, поэтому, когда змея проходит мимо яблока в соседнем квадрате, это вызывает попадание на объект испытания. Если я уменьшу размер или ход змеи или яблока, они не будут правильно выстроены в линию. Есть ли способ, которым я могу использовать hittestobject, но уменьшить площадь объекта, который будет вызывать его. т.е. срабатывает только если он попадает в центр объекта?
//this will hit when snake is adjacent due to overlapping strokes
if(snake.hitTestPoint(apple.x,apple.y,true))
{
trace('hit');
}
//this doesnt work for some reason
if(snake.hitTestPoint(apple.x+2,apple.y+2,true))
{
trace('hit');
}
когда я проследил значения для нижнего кода, значения были бы такими, как ожидалось, но по какой-то причине hitTestPoint не сработал. странно, если я сделаю +1, это все равно будет работать, но поскольку ход равен 2, мне нужно как минимум +3. Если я установлю apple.x + n в качестве переменной и использую переменную в hitTestPoint, это не сработает. также во всех случаях, когда это не срабатывает, я не получаю ошибок, и все значения трассировки - это то, что вы подозреваете ...