我早些时候发布了一些关于我正在努力做的游戏的一些问题。 这是.fla文件:http://ifile.it/bpi79cv。
我的第一个主要问题是敌人穿过墙壁。我可以像玩家一样进行hiTest,以便检测到碰撞,但我不知道如何改变方向。我认为如果敌人不能同时在x和y轴上移动,但不知道该怎么做,那将会更加简单。 (然后他们只需要转90度)
第二个问题是用于检测与敌人的碰撞的hitTest。好像我无法做到这一点。在评论的最后,我认为有一部分是好的。
第三个问题,在我眼中最不重要的是,即使“手电筒”不针对他们,我们也能看到敌人。
如果有人可以帮我解决这些问题,我们将非常感激
非常感谢,Mathieu。
修改 的
我已经简化了游戏,以便按时完成游戏。但是,我还有一个重大问题;手电筒。我希望它能掩盖除了实际目标之外的所有其他内容。
仍然无法进行碰撞。
很抱歉我的问题很烦人。 谢谢,Mathieu。
答案 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是否是墙上的有效命中测试给它新的坐标,并继续这样做直到它在路径上开始..)