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でその変数を使用すると、トリガーされません。また、トリガーされないすべての場合、エラーは発生せず、すべてのトレース値が疑わしいものです...