hola a todos.
estoy empezando con esto de AS y me a surgido un problema:
estoy haciendo un juego para flash donde un bucle genera cada x tiempo (con un TimerEvent) un objeto tipo vehículo y lo añade a un array mediante push.
El caso es que cuando dicho vehículo se sale de la pantalla, no me interesa que siga formando parte del array por que a la hora de recorrerlo para buscar colisiones, no quiero acabar teniendo mil elementos inútiles ( sería una burrada)
entonces he echo lo siguiente:
Código:
public function eliminar():void
{
for(contador2 =0; contador2<=contador_coches ; contador2++)
{
if (coches[contador2].x > 900 || coches[contador2].x < (-100) || coches[contador2].y > 700 || coches[contador2].y < (-100) )
{
coches.splice(contador2, 1);
contador_coches--;
}
}
}
contador coches es una variable tipo static que va almacenando el numero de coches que se generan (contador_coches++ al instanciar un objeto en el Time Event)
Los números que comparo con las coordenadas en el if son los anchos y largos de la pantalla + 100 pixeles). Así detecto si alguno de los objetos del array se sale de la pantalla. en caso de ser así, elimina dicho objeto del array y resta al total coches una unidad.
el caso es que me sale este error:
TypeError: Error #1010: Un término no está definido y no tiene propiedades.
at Juego/eliminar()
at Juego/mov2()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()
donde hace referencia a todos los sitios en los que aparece esta función. Haciendo pruebas creo que el problema esta en "coches[contador2].x". esta mal referirse así a las coordenadas de un objeto??
habría otra forma de hacer esto??
Gracias a todos.