Okay here is the network before:
var Network = pc.createScript('network');
Network.attributes.add('gamePlayManagerEntity', {type: 'entity'});
// static variables
Network.id = null;
Network.socket = null;
// initialize code called once per entity
Network.prototype.initialize = function() {
// this.player = this.app.root.findByName('Player');
// this.other = this.app.root.findByName('Other');
this.player = this.gamePlayManagerEntity.script.gamePlayManagerScript.playerEntity;
this.other = this.gamePlayManagerEntity.script.gamePlayManagerScript.otherEntity;
// var socket = io.connect('https://playcanvas-multiplayer.glitch.me'); // Glitch hosted server
var socket = io.connect('https://playcanvas-mp.glitch.me'); // Glitch hosted server
Network.socket = socket;
// socket.emit ('initialize');
var nicknameVal = this.player.findByName('playerNickText').element.text;
socket.emit ('initialize',{nicknameVal: nicknameVal});
// this.displaySendMsg();
var self = this;
socket.on ('playerData', function (data) {
self.initializePlayers (data);
});
socket.on ('playerJoined', function (data) {
self.addPlayer(data);
});
socket.on ('playerMoved', function (data) {
self.movePlayer(data);
});
socket.on ('playerSendMsg', function (data) {
self.displaySendMsg(data);
});
socket.on ('killPlayer', function (data) {
self.removePlayer(data);
});
};
Network.prototype.initializePlayers = function (data) {
this.players = data.players;
Network.id = data.id;
for(var id in this.players){
if(id != Network.id){
this.players[id].entity = this.createPlayerEntity(this.players[id]);
}
}
this.initialized = true;
console.log('initialized');
};
Network.prototype.addPlayer = function (data) {
this.players[data.id] = data;
this.players[data.id].entity = this.createPlayerEntity(data);
};
Network.prototype.movePlayer = function (data) {
if (this.initialized && !this.players[data.id].deleted) {
this.players[data.id].entity.rigidbody.teleport(data.x, data.y, data.z);
}
};
Network.prototype.removePlayer = function (data) {
if (this.players[data].entity) {
this.players[data].entity.destroy ();
this.players[data].deleted = true;
}
};
Network.prototype.createPlayerEntity = function (data) {
var newPlayer = this.other.clone();
newPlayer.enabled = true;
this.other.getParent().addChild(newPlayer);
if (data)
{
newPlayer.rigidbody.teleport(data.x, data.y, data.z);
newPlayer.findByName('otherNickText').element.text = data.nicknameVal;
}
return newPlayer;
};
// update code called every frame
Network.prototype.update = function(dt) {
this.updatePosition();
};
Network.prototype.updatePosition = function () {
if (this.initialized) {
var pos = this.player.getPosition();
Network.socket.emit('positionUpdate', {id: Network.id, x: pos.x, y: pos.y, z: pos.z});
}
};
Network.prototype.sendMsg = function (nicknameVal, actualMsg) {
this.displaySendMsg({id: Network.id, nicknameVal:nicknameVal, actualMsg:actualMsg});
Network.socket.emit('sendMsgToAll', {id: Network.id, nicknameVal:nicknameVal, actualMsg:actualMsg});
// console.log("sendMsg = ",{id: Network.id, nicknameVal:nicknameVal, actualMsg:actualMsg});
};
Network.prototype.displaySendMsg = function (data) {
// console.log(data);
if(data.nicknameVal !== "" && data.actualMsg !== "")
{
this.gamePlayManagerEntity.script.gamePlayManagerScript.addMsgInChatBox(data.nicknameVal,data.actualMsg);
}
};