flash as3 hitdetection 功能触发其他功能
Posted
技术标签:
【中文标题】flash as3 hitdetection 功能触发其他功能【英文标题】:flash as3 hitdetection function triggering other function 【发布时间】:2014-04-10 11:31:44 【问题描述】:我正在尝试编写一个脚本,在该脚本中,一个电影剪辑放下一根绳子,如果碰到绳子,就会抓到鱼。这是问题,我正在使用 hitTestObject 来检测碰撞。当然,问题是我在触摸时触发了该功能,但只要它不触摸移动电影的功能就开始了,所以基本上鱼会上升几秒钟,然后再次开始直线移动。
为了尝试修复我尝试创建一个布尔变量,该变量根据命中更改为真或假,并相应地使动画剪辑移动但也不起作用,因为只要一个 mc 不接触另一个 mc 它就会从 true 变为false 或 1 到 0 ..都试过了(如布尔变量和数字变量)。任何帮助或让我走上正确的方向将不胜感激。非常感谢
// fish capture code
this.addEventListener(Event.ENTER_FRAME,handleCollision);
function handleCollision(e:Event):void
if (ropeHit.hitTestObject(fishy_1_a))
stopFish1();
trace(movefish1);
else
moveFish1();
//code enemy fishy
//fish 1 A
function moveFish1()
if (fishy_1_a.x < 800)
fishy_1_a.x += xSpeed;
else if (fishy_1_a.x >= 800)
fishy_1_a.x = -100;
function stopFish1()
fishy_1_a.y -= xSpeed;
【问题讨论】:
【参考方案1】:定义一些标志,你可以测试:
function handleCollision(e:Event):void
//Check if fishy is caught
if (!fishy_1_a.catched && ropeHit.hitTestObject(fishy_1_a))
//Change flag
fishy_1_a.catched = true;
trace("Gotcha!");
if (fishy_1_a.catched)
stopFish1();
else
moveFish1();
【讨论】:
非常感谢,这么简单的答案,我想不通。以上是关于flash as3 hitdetection 功能触发其他功能的主要内容,如果未能解决你的问题,请参考以下文章