我会尽力解释,但是,这很难解释。我是AS3的新手,所以如果你能帮助我,请帮助我,直到我们解决它。请粘贴代码示例,而不是仅仅说出我应该怎么做。
确定。 在主时间轴上,我这样说。
定时器在这里每隔一天就会加入敌人!
var Enemy:MovieClip = new Enemy();
addChild(Enemy);
Enemy.x = 200;
Enemy.y = 200;
另一个时间,每次都要加上弹珠.5秒!
var Bullet:MovieClip = new Bullet();
addChild(Enemy);
Bullet.x = 400;
Bullet.y = 400;
然后在Enemy.as和Bullet.as里面,我有代码说明它应该如何移动,速度等等。但是如何在这些之间进行命中测试呢?我试图在这样的敌人或子弹类中做到这一点。
所以我基本上要求我如何能够互相击中两个课程?或者是一个类的对象?
答案 0 :(得分:2)
你需要对这些敌人和子弹保持参考。不做变种敌人:MovieClip = new Enemy();而是这样做。
var myEnemyList:Array = new Array();
var myBulletList:Array = new Array();
function Init():void{
addEventListener(Event.OnEnterFrame, Update);
}
function Update(){
//this will create a bullet and an enemy at every frame
//Create a new enemy
var enemy:Enemy = new Enemy();
myEnemyList.push(enemy); //add enemy to the array
//Create a new bullet
var enemy:Bullet = new Bullet();
myBulletlist.push(bullet);
//Update the bullets
for(var i:int=0; i < myBulletlist.length; i++){
myBulletlist[i].Update(); //you must implement this function inside your class bullet
}
//Update the enemies
for(var i:int=0; i < myEnemyList.length; i++){
myEnemyListt[i].Update(); //you must implement this function inside your class enemy
}
CheckForCollision();
}
function CheckForCollision(){
for(var i:int=0; i < myEnemyList.length; i++){
for(var j:int =0; j < myBulletList.length; j++){
if( myEnemyList[i].collidesWith(myBulletList[j]) ){
//Collision
}
}
}
}
顺便说一下,不要尝试编译它的伪代码。我会回答你的问题。此处还有很多教程,谷歌搜索可以帮助您获得更具体的代码。