Comunidad de diseño web y desarrollo en internet online

Problema con el script usando server RED5

Citar            
MensajeEscrito el 05 Feb 2010 03:45 am
Quiero hacer un juego online usando el server RED5, primero empece haciendo algo simple.
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;
}

Por luco

Claber

110 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 05 Feb 2010 11:18 pm
yeah! estube buscando y ya lo solucione :D , el problema era que puse un false en vez de true para que se mantengan los datos

Código ActionScript :

var so:SharedObject = SharedObject.getRemote("simpleChatDemo", nc.uri, true);

pensar que estube horas viendo que podia ser :P

Por luco

Claber

110 de clabLevel



Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.