HitTestObject问题

时间:2013-05-01 13:59:28

标签: actionscript-3 flash-cs5

我在Flash中遇到hitTestObject的问题。

我在屏幕上生成了这些图块,并且我将一个玩家添加到图块中。我为玩家创建了一个不可见的方形位图,它是图块的大小,因此它可以注册它是否完全击中了图块。问题是,它正在从玩家旁边的牌块注册命中测试。下面的链接,我的鼠标位于突出显示的图块上方,并且我有一条跟踪,用于检查播放器与当前图块之间的hitTest。

http://postimg.org/image/6so3npm19/

这是位图的代码。我一直在玩x和y位置以及它的大小。

visionArea.graphics.beginFill(0x00FF00, 1.0);
visionArea.graphics.drawRect(0, 0, 85, 85);
visionArea.graphics.endFill();
var matrix:Matrix = new Matrix();
matrix.rotate(Math.PI / 4);
matrix.scale(1, 0.5);
visionArea.transform.matrix = matrix;

addChild(visionArea);
visionArea.mouseEnabled = false;
visionArea.visible = false;
visionArea.x = 4;
visionArea.y = -21;

当我点击一个图块并且播放器位于它旁边时,我将其移动到该图块。

if (player.visionArea.hitTestObject(event.currentTarget as Tile))
{
    player.x = (event.currentTarget.x)+55;
    player.y = (event.currentTarget.y)+20;
}

我的屏幕上还有一个敌人(绿色瓷砖)。我试图让玩家无法进入敌人所在的地砖上,但有时它会起作用,有时则不会。

if (enemy.enemyVisionArea.hitTestObject(event.currentTarget as Tile))
{
    player.x != (event.currentTarget.x)+55;
    player.y != (event.currentTarget.y)+20;
}

1 个答案:

答案 0 :(得分:1)

if (player.visionArea.hitTestObject(event.currentTarget as Tile) && !enemy.enemyVisionArea.hitTestObject(event.currentTarget as Tile))
{
    player.x = (event.currentTarget.x)+55;
    player.y = (event.currentTarget.y)+20;
}

我从未见过有人使用!=作为任务操作员。