Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Como eu já falei em tópicos anteriores, estou trabalhando num jogo onde você tem uma torre no centro da tela e vem aparecendo uns mísseis, você tem que atirar neles antes que eles atinjam sua torre.
Mas tem um problema que vem me irritando faz tempo: O jogo começa a ficar lento ao longo do tempo, eu já tentei de tudo para acabar com isso mas não dá certo!
Eu não sei porque isso acontece, eu acho que é por causa daqueles erros que aparecem no painel de saída, que eu não consigo resolver.
TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.at TowerDefense_fla::MainTimeline/anima()TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula. at TowerDefense_fla::MainTimeline/anima()
Aí vai o código da função anima caso seja necessário:
function anima(e:Event):void
{
velVerde *= aceleracao;
missil = DisplayObject(e.target);
missil.addEventListener(MouseEvent.CLICK, atirar);
if (missil.hitTestObject(tiro))
{
tiro.parent.removeChild(tiro);
if (efeitos)
{
explode.play();
}
explosao = new Explosao();
addChild(explosao);
explosao.x = missil.x;
explosao.y = missil.y;
quadroExplosao = 1;
setChildIndex(explosao, 2);
if (missil.hitTestObject(cinquenta))
{
multiplica = 5;
}
if (missil.hitTestObject(vinte))
{
multiplica = 2;
}
if (missil.hitTestObject(dez))
{
multiplica = 1;
}
if (missil.hitTestObject(cinco))
{
multiplica = 0.5;
}
if (missil.hitTestObject(dois))
{
multiplica = 0.2;
}
ganha = 10 * multiplica;
pontos += ganha;
ponto = new Ponto();
addChild(ponto);
ponto.x = missil.x;
ponto.y = missil.y;
setChildIndex(ponto, 2);
ponto.quantidade.text = String(ganha);
adicionarEvento();
missil.removeEventListener(Event.ENTER_FRAME, anima);
missil.parent.removeChild(missil);
}
if (vida == 0)
{
canal.stop();
missil.removeEventListener(Event.ENTER_FRAME, anima);
missil.parent.removeChild(missil);
torre.removeEventListener(Event.ENTER_FRAME, gira);
}
if (missil.hitTestObject(torre))
{
if (efeitos)
{
explode2.play();
}
vida--;
torre.gotoAndPlay(2);
explosao = new Explosao();
addChild(explosao);
explosao.x = torre.x;
explosao.y = torre.y;
setChildIndex(explosao, 2);
missil.removeEventListener(Event.ENTER_FRAME, anima);
missil.parent.removeChild(missil);
}
}Carregando comentários...