noob试图让坏人在Flash游戏中爆炸
请原谅我在这方面的无礼(我对Flash是新手),但我已经在各地搜索了3天来找到这个,我尝试了很多不同的东西,但似乎没有任何效果。这应该很简单 场景:简单的游戏,玩家在太空飞行射击坏人。 (我的开始步骤,其中介绍了本教程:) 我现在想让我的敌人在检测到碰撞时爆炸。我用我的爆炸动画制作了一个新的电影剪辑,把它放到了我敌人的电影剪辑上。我标记为“爆炸”的框架 在GameController.com上,当我深入到检测到子弹碰撞时移除敌人的代码,移除了removechild代码,并将其替换为: 敌人。去玩(“爆炸”); 这给了我错误1061:通过静态类型类的引用调用可能未定义的方法gotoAndPlay 我试过根。敌人。去玩(“爆炸”); 它不起作用(我读到_root在as3中不起作用) 我错过了什么 我写的代码在几个不同的领域。 在游戏控制器里,就像我一样noob试图让坏人在Flash游戏中爆炸,flash,movieclip,Flash,Movieclip,请原谅我在这方面的无礼(我对Flash是新手),但我已经在各地搜索了3天来找到这个,我尝试了很多不同的东西,但似乎没有任何效果。这应该很简单 场景:简单的游戏,玩家在太空飞行射击坏人。 (我的开始步骤,其中介绍了本教程:) 我现在想让我的敌人在检测到碰撞时爆炸。我用我的爆炸动画制作了一个新的电影剪辑,把它放到了我敌人的电影剪辑上。我标记为“爆炸”的框架 在GameController.com上,当我深入到检测到子弹碰撞时移除敌人的代码,移除了removechild代码,并将其替换为: 敌人。去玩
for (var i=bullets.length - 1; i >= 0; i--)
{
for (var j=enemies.length - 1; j >= 0; j--)
{
if (bullets[i].hitTestObject(enemies[j].collisionArea))
{
playerScore += enemies[j].getPointsWorth();
mcGameStage.removeChild(bullets[i]);
bullets.splice(i,1);
Enemy.gotoAndPlay("Explode");
break;
}
}
}
如果我移除gotoandplay,然后放入一个
removeChild(敌人[j]);
3.拼接(j,1)
然后游戏运行正常(没有爆炸动画)
@苏尼尔D:
你的代码工作起来很有魅力。然而,这给我留下了一个新问题。当爆炸动画结束时,我需要移除我的敌人(第35帧)
我试过这个密码
enemy.addEventListener(Event.ENTER_FRAME,checkFrame);
function checkFrame(event:Event):void
{
if (enemy.currentFrame == 35)
{
mcGameStage.removeChild(enemies[j]);
enemies.splice(j,1);
enemy.removeEventListener(Event.ENTER_FRAME,checkFrame);
}
}
这给了我一个错误#2007:参数child必须为非null。
在flash.display::DisplayObjectContainer/removeChild()中
at MethodInfo-243()
有什么想法吗?你得到的错误是,当你做
敌方游戏时
您正试图调用敌方
类本身的gotoAndPlay()
方法。相反,您需要在敌方类的实例上调用gotoAndPlay()
方法
从您显示的代码来看,您的敌人
数组中似乎有敌人
类的实例(这是一个敌人
对象数组)。因此,您可能应该能够通过这样做来引爆敌人:
var enemy:Enemy = enemies[j] as Enemy;
enemy.gotoAndPlay("Explode");
正确的。非常感谢。我不明白其中的区别,但现在你说了,这是有道理的。