0

hitTestObject我在 Flash中遇到了一些问题。

我在屏幕上生成了这些图块,并且在图块中添加了一个播放器。我为播放器创建了一个不可见的方形位图,它是图块的大小,因此它可以记录它是否完全击中了图块。问题是,它正在从甚至不在玩家旁边的瓷砖中注册命中测试。下面的链接,我的鼠标位于突出显示的图块上,并且我有一个跟踪来检查玩家和它所在的当前图块之间的 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;
}
4

1 回答 1

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;
}

我从未见过有人使用 != 作为赋值运算符。

于 2013-05-01T14:10:49.287 回答