итак, дано:
положение игрока {x0, y0}, положение соперника в момент "замаха" {x10, y10}, положение соперника после попытки "уворота" {x11, y11}
Math.atan2(y10-y0, x10-x0) даст нам угол поворота вектора, направленного от игрока к сопернику при замахе, лежащий в диапазоне -pi..pi.
Math.atan2(y11-y0, x11-x0) даст угол поворота вектора, направленного от игрока к сопернику после удара.
если разность этих двух углов меньше некоторого порогового значения (половины градусной меры "конуса"), то игрок попал, если больше - соперник увернулся. Принимая во внимание диапазон значений углов и тот факт, что углы около pi и -pi близки, проверку следует делать так:

Код AS3:
var delta:Number = Math.abs(Math.atan2(y10-y0, x10-x0) - Math.atan2(y11-y0, x11-x0));
if ((delta < treshold) || (delta > 2 * Math.PI - treshold))
{
...//игрок попал
} else {
...//игрок промахнулся
}