幸存者游戏(敌人穿过墙壁,hotTest和手电筒)

时间:2011-06-05 22:11:26

标签: flash actionscript

我早些时候发布了一些关于我正在努力做的游戏的一些问题。 这是.fla文件:http://ifile.it/bpi79cv

我的第一个主要问题是敌人穿过墙壁。我可以像玩家一样进行hiTest,以便检测到碰撞,但我不知道如何改变方向。我认为如果敌人不能同时在x和y轴上移动,但不知道该怎么做,那将会更加简单。 (然后他们只需要转90度)

第二个问题是用于检测与敌人的碰撞的hitTest。好像我无法做到这一点。在评论的最后,我认为有一部分是好的。

第三个问题,在我眼中最不重要的是,即使“手电筒”不针对他们,我们也能看到敌人。

如果有人可以帮我解决这些问题,我们将非常感激

非常感谢,Mathieu。

修改

我已经简化了游戏,以便按时完成游戏。但是,我还有一个重大问题;手电筒。我希望它能掩盖除了实际目标之外的所有其他内容。

仍然无法进行碰撞。

http://ifile.it/xmhra7g

很抱歉我的问题很烦人。 谢谢,Mathieu。

1 个答案:

答案 0 :(得分:1)

一个好的起点就是当他们撞墙时扭转他们的方向。

但它需要更多的数学才能让它继续下去...现在在第130行附近就有了这个:

function updatePosition(follower:MovieClip, target:MovieClip) {

下面添加这样的东西..将当前的方向乘以-1将使其反转为X和Y:

if (_root.environment.hitTest(follower._x, follower._y, true)) {
    follower.moveX = -follower.moveX;
    follower.moveY = -follower.moveY;
}

(请记住,这只适用于没有触及墙壁的那些......如果你的一个三角形怪物的初始坐标已经在墙内,这将无法工作..你能做什么do检查初始x和y是否是墙上的有效命中测试给它新的坐标,并继续这样做直到它在路径上开始..)