私は3つのjsでゲームを構築していますので、マルチプレイヤースルーsocket.ioにしようとしています。サイド変数が定義されていなくても、コードがsomhere以外でも動作します
、その後、彼らはそう
socket.on('addPlayer', function(username) {
players.push(username)
console.log(username + " joined")
console.log("online Users " + players)
socket.broadcast.emit('syncPlayers', players)
socket.emit('syncPlayers', players)
})
のように、私のクライアントsyncPlayersに接続したときに、私は、各クライアントに渡すが、それは、CA、この
socket.on('syncPlayers', function(players) {
players.forEach(function(value) {
if (value == username) {
console.log("not adding " + value + " thats you ")
loadPlayerdata(username)
} else {
console.log("player Online " + value);
newplayer = value;
loadPlayerdata(newplayer)
addPlayer(newplayer)
}
});
})
のように見えますLLSこのウィッヒは
function loadPlayerdata(playerName) {
console.log(playerName)
console.log("phase1")
socket.emit('loadPlayerdata', playerName)
}
が、これはと呼ばれているサーバーのデータを送信し、それがプレイヤー名検索し、これが私の問題だったされた選手の場所のデータは、私が得続ける
socket.on('loadPlayerdata', function(data, username) {
toMove = threeObjects[username + "Char"]
if (data == "null" || "") {
console.log(username + " is new")
} else {
console.log(username + " Exists")
console.log(toMove)
toMove.position.set(world.spawnPointx, world.spawnPointy, world.spawnPointz)
}
に位置Uncaught TypeError: Cannot read property 'position' of undefined
function addPlayer(playerName) {
var charObjectName = playerName + "Char"
var threeObject = models.tent1.mesh.clone();
scene.add(threeObject)
//threeObject.position.set(world.spawnPointx, world.spawnPointy, world.spawnPointz)
// set reference
threeObjects[charObjectName] = threeObject;
}
ところでIHを使用することができるにもかかわらず
それは文句を言わない仕事、それは
、このような配列になります値として、ユーザー名や位置などのオブジェクトキーを割り当てます私はあなたと私の機能を置き換えると悲しげに、それは仕事をdidntの? –