Foros del Web » Creando para Internet » Flash y Actionscript »

Problemas con construccion de Arrays apartir de otras.

Estas en el tema de Problemas con construccion de Arrays apartir de otras. en el foro de Flash y Actionscript en Foros del Web. Buenos dias. Soy nuevo en el foro y relativa mente nuevo en Flash. Estoy trabajando en un juego RPG de batallas por turno, al estilo ...
  #1 (permalink)  
Antiguo 13/10/2009, 15:18
 
Fecha de Ingreso: octubre-2009
Mensajes: 2
Antigüedad: 14 años, 6 meses
Puntos: 0
Problemas con construccion de Arrays apartir de otras.

Buenos dias. Soy nuevo en el foro y relativa mente nuevo en Flash. Estoy trabajando en un juego RPG de batallas por turno, al estilo de las viejas consolas.

El script con el que tengo problemas consiste en una serie de arrays donde se detallan los atributos de los personajes/enemigos, que son copiados a "nuevas" arrays cuando comienza la una batalla. Digo "nuevas" por que cualquier modificación en ellas tambien la orginial.

Les dejo el script simplificado con unas notas para su comprension rapida.
Lo unico que ahi en la bibloteca es un Movie Clip vacio llamado "vacio"
Trabajo con actionscript 2.0

Código actionscript:
Ver original
  1. _root.game = new Object();
  2. //arrays de los atributos de enemigos y personajes
  3. game.enemigos = [["rata", 100, 10], ["Hormiga", 50, 5], ["Lobo", 150, 15]];
  4. game.personajes = [["a", 100, 10], ["b", 50, 5], ["c", 150, 15]];
  5. game.manadas = [[1, 1, 1], [2, 1, 1, 2], [3, 3], [3, 2, 1]];
  6. game.skills = [[1, 0, 0], [1, 1, 0], [1, 20, 1]];
  7. //funcion que se llama al inicio de cada batalla.
  8. function construirbg(manada) {
  9.     //clip vacio que mas en la version completa contiene los "sprites" de los enemigos, personajes, interface, etc.
  10.     _root.attachMovie("vacio", "vacio", this.getNextHighestDepth());
  11.     _root.bg = _root.vacio;
  12.     //aca comienza mi problema
  13.     //seguro no es el scrip idoneo, por que al modificar
  14.     //la "nueva" array, tambien me modifica la original.
  15.     _root.bg.enemigos = new Array();
  16.     //personajes
  17.     _root.bg.personajes = _root.game.personajes;
  18.     trace("personajes   > "+_root.bg.personajes.join(" ;  "));//devuelve los personajes
  19.     //enemigos
  20.     for (var i = 0; i<_root.game.manadas[manada].length; ++i) {
  21.         _root.bg.enemigos.splice(1,0,_root.game.enemigos[_root.game.manadas[manada][i]]);
  22.         _root.bg.enemigos[i][0]+=i//para diferenciarlos, cambia todos y terminan siendo =
  23.         trace("entro  enemigo >"+_root.bg.enemigos[i]);
  24.     }
  25. }
  26. construirbg(0);
  27.  
  28. trace(_root.bg.enemigos.join(" -  "))// todos iguales
  29. trace(_root.bg.enemigos[0][0])//    son
  30. trace(_root.bg.enemigos[1][0])//  iguales
.

Espero haber sido claro.
Desde ya muchas gracias.
Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:34.