很长一段时间以来,我一直在关注 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)
}
}
}
现在,显然这导致子弹停在命中周围的 alpha 区域并将其计为命中。
我确实假设我可以轻松地执行以下操作,但是它不起作用:
if(this.hitTestPoint(levelHolder.enemyArray[i].x, levelHolder.enemyArray[i].y, true) && hit == false && distanceTravel <= range)
...
当我们使用单个 X 和 Y 位置时,这会导致非常非常有限的命中范围。
我的问题是:我怎样才能更准确地做到这一点?