la idea es que se puedan conectar varios clientes y tener la lista de personajes en un array. Cada jugador mueve a su personaje y la posicion se va guardando y actualizando, asi se pueden ver como se mueven los otros personajes.
El problema es que todo lo que tengo en el array
Código ActionScript :
so.data.personajes[]se vuelve "undefined" despues de un tiempo
En el primer frame tengo este codigo:
Código ActionScript :
import mx.utils.Delegate;
//posx y posy son las variables que cambian cuando el jugador pulsa una tecla (si pulsa derecha entonces posx se le suma un valor)
//las defino:
_root.personaje.posx = 10
_root.personaje.posy = 10
// crea conexion
var nc:NetConnection = new NetConnection();
// conecta al server local RED5
nc.connect("rtmp://190.51.182.6/oflaDemo");
// create StoredObject - pass the name of the shared object, the netConnection URI ("rtmp://localhost/oflaDemo"), and whether or not it's persistant
var so:SharedObject = SharedObject.getRemote("simpleChatDemo", nc.uri, false);
// vincula el objeto con la conexion
so.connect(nc);
//cpersonajes = cantidad de personajes
cpersonajes = so.data.personajes.length
//si no existe un numero..
if (cpersonajes==undefined){
//se crea el array
so.data.personajes = new Array()
mipersonaje=0
} else {
//si ya existe el numero (ya hay alguien jugando) el numero de mi pj es el ultimo
mipersonaje = cpersonajes+1
}
so.data.personajes[mipersonaje] = new Object
so.data.personajes[mipersonaje].nombre = _root.nombre
so.data.personajes[mipersonaje].posx = _root.personaje.posx
so.data.personajes[mipersonaje].posy = _root.personaje.posy
function onEnterFrame()
{
//guarda los datos del "cliente" al "server"
if(_root.mueve){
so.data.personajes[mipersonaje].posx = _root.personaje.posx
so.data.personajes[mipersonaje].posy = _root.personaje.posy
}
trace("a: "+so.data.personajes[mipersonaje].posy )
//carga la posicion actual del "server" en el "cliente"
_root.personaje._x = so.data.personajes[mipersonaje].posx
_root.personaje._y = so.data.personajes[mipersonaje].posy
trace("b: "+so.data.personajes[mipersonaje].posx)
}En el moviclip del Personaje tengo este codigo:
Código ActionScript :
onClipEvent (load) {
vel = 3;
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.UP)) {
posy = posy - vel
} else if (Key.isDown(Key.DOWN)) {
posy = posy + vel
} else if (Key.isDown(Key.LEFT)) {
posx = posx - vel
} else if (Key.isDown(Key.RIGHT)) {
posx = posx + vel
}
}
onClipEvent (keyDown) {
_root.mueve = true;
}
onClipEvent (keyUp) {
_root.mueve = false;
}
