0
我在閃光燈做一個太空入侵者遊戲時,當我碰到我有一個1061錯誤可能未定義的hittestobject通過靜態類型的參考...... 我該如何解決這個問題?試了很多辦法都無法擺脫這個錯誤As3碰撞測試
/* Código que pára a timeline na 1 frame para que o menu continue apresentado*/
stop();
/*Movimenta a nave fazendo a seguir os movimentos do rato e esconde o cursor do sistema operacional*/
stage.addChild(arma_tiro);
arma_tiro.mouseEnabled = false;
arma_tiro.addEventListener(Event.ENTER_FRAME, fl_CustomMouseCursor);
function fl_CustomMouseCursor(event:Event)
{
arma_tiro.x = stage.mouseX;
}
Mouse.hide();
/* Mouse Click Event
Clicking on the specified symbol instance executes a function in which you can add your own custom code.
Instructions:
1. Add your custom code on a new line after the line that says "// Start your custom code" below.
The code will execute when the symbol instance is clicked.
*/
stage.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler_3);
function fl_MouseClickHandler_3(event:MouseEvent):void
{
var bullet:bullet_ = new bullet_();
addChild(bullet);
bullet.x=arma_tiro.x;
bullet.y=arma_tiro.y;
bullet.addEventListener(Event.ENTER_FRAME, moverbala);
}
function moverbala(event:Event):void // função para mover a bala para cima */
{
event.target.y=event.target.y-20;
}
//stage.addEventListener(Event.ENTER_FRAME, Primeira);
setInterval(Primeira, 1000) ; //define intervalo de tempo entre as varias repetiçoes da funçao
function Primeira(){ //funçao de spawn de nave 1
var invader1:invader_1 = new invader_1();
addChild(invader1);
invader1.x=0;
invader1.y=15;
invader1.addEventListener(Event.ENTER_FRAME, mover1);
}
function mover1(event:Event):void // função para mover a nave para lado direito */
{
event.target.x+=10;
}
//Nave 2
setInterval(Segunda, 1000) ; //define intervalo de tempo entre as varias repetiçoes da funçao
function Segunda(){ //funçao de spawn de nave 1
var invader2:invader_2 = new invader_2();
addChild(invader2);
invader2.x=0;
invader2.y=45;
invader2.addEventListener(Event.ENTER_FRAME, mover2);
}
function mover2(event:Event):void // função para mover a nave para lado direito */
{
event.target.x+=10;
}
//Nave 3
setInterval(Terceira, 1000) ; //define intervalo de tempo entre as varias repetiçoes da funçao
function Terceira(){ //funçao de spawn de nave 1
var invader3:invader_3 = new invader_3();
addChild(invader3);
invader3.x=0;
invader3.y=85;
invader3.addEventListener(Event.ENTER_FRAME, mover3);
}
function mover3(event:Event):void // função para mover a nave para lado direito */
{
event.target.x+=10;
}
// error line
if (bullet_.hitTestObject(invader_1))
{
//Remove bullet and enemy
mcGameStage.removeChild(bullet_);
mcGameStage.removeChild(invader_1);
}
現在說未定義功能子彈和入侵者,我在哪裏支持定義它或使其全球的代碼? –
正如我看到你的子彈和侵入者變量定義在一個函數範圍內,所以你不能在函數外部訪問它。由於你有不止一顆子彈和一個以上的敵人,你必須保存一系列你的物體,並在每一幀上看到子彈和敵人之間發生碰撞。 –
你能否解釋一下我該怎麼做? –