你Hittest那部份有問題
你應該測試的是已經addChild的敵人同子彈
而不是new新的
因為你new出來的物件預設會同時在(0,0)
所以會直接觸法碰撞而
並且因為沒有addChild所以會出錯
你應該如下修改
//用來存子彈
var bulletArea:Sprite = new Sprite();
....
....
addChildAt(enemyArea,0);
//這句後面加上
addChildAt(bulletArea, 1);
//在建立子彈部份
function shoot(event:MouseEvent):void{
var temp:mc_bullet=new mc_bullet();
addChild(temp);
//這句改成用bulletArea
bulletArea.addChild(temp);
}
//hitest部份則變成這樣
function hitTest(event:Event):void{
var i:uint = 0;
var j:uint = 0;
var bullet:mc_bullet = null;
var enemy:mc_enemy = null;
for(i = 0; i < bulletArea.numChildren; i++)
{
bullet = bulletArea.getChildAt(i) as mc_bullet;
for(j = 0; j < enemyArea.numChildren; j++)
{
enemy = enemyArea.getChildAt(j) as mc_enemy;
if(bullet.hitTestObject(enemy))
{
enemyArea.removeChild(enemy);
j--;
}
}
}
}
- Oct 04 Fri 2013 10:59
我應該如何修改以下actionscript 3.0程式碼?
close
全站熱搜
留言列表