Actionscript 3 flash as3 hitdetection功能触发其他功能
我正在尝试编写一个脚本,其中一个电影剪辑掉了一根绳子,抓住了鱼,如果它碰到绳子,鱼就会跟着它。问题是,我使用hitTestObject来检测碰撞。当然,问题是当它触摸时我触发了这个功能,但是一旦它没有触摸到移动的功能,电影就开始了,所以基本上鱼会上升几秒钟,然后又开始直线移动 为了解决这个问题,我尝试创建一个布尔变量,该变量根据命中率变化为真或假,从而使movieclip移动,但也不起作用,因为一旦一个mc不接触另一个mc,它就会从真变为假或从1变为0。尝试了这两种方法(如布尔变量和数字变量)。如果能给我任何帮助或帮助我走上正确的方向,我们将不胜感激。多谢各位Actionscript 3 flash as3 hitdetection功能触发其他功能,actionscript-3,flash,actionscript,flash-cs5,flash-cs4,Actionscript 3,Flash,Actionscript,Flash Cs5,Flash Cs4,我正在尝试编写一个脚本,其中一个电影剪辑掉了一根绳子,抓住了鱼,如果它碰到绳子,鱼就会跟着它。问题是,我使用hitTestObject来检测碰撞。当然,问题是当它触摸时我触发了这个功能,但是一旦它没有触摸到移动的功能,电影就开始了,所以基本上鱼会上升几秒钟,然后又开始直线移动 为了解决这个问题,我尝试创建一个布尔变量,该变量根据命中率变化为真或假,从而使movieclip移动,但也不起作用,因为一旦一个mc不接触另一个mc,它就会从真变为假或从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;
}
//鱼类捕获代码
this.addEventListener(事件输入帧,handleCollision);
函数handleCollision(e:事件):void
{
if(ropeHit.hitTestObject(fishy_1_a))
{
stopFish1();
微量元素(1);
}
其他的
{
moveFish1();
}
}
//暗号敌人可疑
//鱼1 A
函数moveFish1()
{
如果(鱼腥_1_a.x<800)
{
fishy_1_a.x+=x速度;
}
else if(鱼腥1_a.x>=800)
{
鱼腥味1_a.x=-100;
}
}
函数stopFish1()
{
fishy_1_a.y-=x速度;
}
定义一些可以测试的标志:
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();
}
}
非常感谢,这么简单的答案我想不出来。