私はかなり長い間、hitTestObjectとhitTestPointとカスタムhitTestの議論を続けてきました。シェイプオプションを指定すると、Pointを使用するルートをたどることがよくあります。
しかし、私は今、円形の敵に弾丸が当たるヒットテストを行おうとしています。私が現在使用しているものは以下のとおりです。
for (var i:int = 0; i<levelHolder.enemyArray.length; i++){
if(levelHolder.enemyArray[i]){
if(this.hitTestObject(levelHolder.enemyArray[i].hit) && hit == false && distanceTravel <= range){
trace("You hit a baddie "+i)
hit = true
this.parent.removeChild(this)
var gotShot:gotshot = new gotshot() // move to sound
gotShot.play() // move to sound
levelHolder.damageEnemy(i, damage)
}
}
}
さて、明らかにこれにより、弾丸はヒットの周りのアルファ領域で停止し、ヒットとしてカウントされます。
私は次のことを簡単に実行できると思いましたが、機能しません。
if(this.hitTestPoint(levelHolder.enemyArray[i].x, levelHolder.enemyArray[i].y, true) && hit == false && distanceTravel <= range)
...
これにより、単一のXおよびY位置で作業しているため、ヒット範囲が非常に制限されます。
私の質問はこれです:どうすればもっと正確にこれを行うことができますか?