我正在用 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 中使用该变量,它将不会触发。同样在它不触发的所有情况下,我没有收到任何错误,并且所有跟踪值都是您所怀疑的......