我希望能够使我的敌人飞起来并落在地上(以显示冲击的力量)再次起身。我的主要角色是恶人。英雄第5帧是拳击动画。
if(hero.hitTestObject(villain)&& hero.currentFrame==5&& hero.scaleX==-1 &&hit==true){
villain.gotoAndPlay('tdt');
villain.x-=100;
movingl=false;
movingr=false;
}
else if(hero.hitTestObject(villain)&& hero.currentFrame==5&& hero.scaleX==1){
villain.gotoAndPlay('tdt');//villain damaged frame
villain.x+=200;
villain.y-=10;
movingl=false;//if AI moves left
movingr=false;//if AI moves right
}
else{
villain.gotoAndStop('vstill');
}
但有两件事情不起作用:
1)当动画开始时没有打出时的目标飞行(尝试使用当前帧来访问Movie Clip中的Movie Clip以获取特定帧但是在输出中得到了这个
TypeError:错误#1010:术语未定义且没有属性。)
2)由于移动的AI代码,恶棍在半空中快速进行动画更改并开始运行。
提前致谢!
答案 0 :(得分:0)
我可以观察到你正在对两个物体进行完整的碰撞检测,这让我想到你游戏中的其他一些问题: - 您没有考虑到这些方法并不完美:try reading this - 如果是战斗游戏,你也不会因为击球动作而触碰这些物体,或仅仅是因为它们只是触碰(就像两个角色背靠背碰撞而没有战斗有效动作)。
我也看到虽然你打算编写AS3,但是你仍然使用像gotoAndPlay这样的方法来做AS2方式。
我们仍然需要有关如何构建整个MovieClips和swf文件以便能够调试它的更多信息。或者发布项目的相关部分,以便能够在Flash中调试它。
答案 1 :(得分:0)
让它变得更简单
使用和ENTER_FRAME
事件作为检测器,然后去那里说出你的角色的健康状况低于50,例如,去你的下降功能。
你可以设置你的循环函数只做一次下降动作。