Ok, después de unos días de ponerme a hacer esto lo he conseguido!! Aquí te dejo un pequeño demo:
http://aprendejs.com/
El código JS lo puedes leer fácilmente, realmente es poco código. En este momento solo están funcionando las conexiones con sockets, cada que se conecta un usuario nuevo se crea su monito en todos los clientes, cuando el jugador local mueve su monito este también se mueve en todos los clientes.
Para mover al monito simplemente envío las coordenadas y dirección a los jugadores remotos, esto usando websockets:
Código Javascript
:
Ver originalStars.socket.emit("moveplayer", {id:me.current.id, x: me.player.x, y:me.player.y,direction:direction});
Luego tengo esta función que se ejecuta únicamente en los jugadores remotos:
Código Javascript
:
Ver original_moveRemotePlayer : function(event,message){
var me = this,
movePlayer = me.remotePlayers[message.player.id];
// Player not found
if (!movePlayer) {
console.log("Player not found: "+message.player.id);
return;
};
// Update player position
movePlayer.x = message.player.x;
movePlayer.y = message.player.y;
if(message.player.direction){
movePlayer.animations.play(message.player.direction);
}else{
movePlayer.animations.stop();
movePlayer.frame = 4;
}
}
Esta función se ejecuta cuando los jugadores remotos reciben las coordenadas, aquí solo asigno las nuevas coordenadas y ejecuto la animación.
En este momento todavía no detecto coaliciones entre jugadores, ese es el siguiente paso, planeo hacer un juego donde existan dos tipos de jugadores, humanos y leones (o cualquier otro animal), los humanos correrán para no ser comidos por los leones :)
Saludos