저는 Node JS와 Socket.IO에 익숙하지 않고 거의 JS에 익숙하지 않습니다 ... 나는 배우기 위해 미니 멀티 플레이어 게임을 만들기 위해 노력하고 있습니다. 나는 서버에서 플레이어의 위치를 모두 처리하고 각 클라이언트가 브라우저에서 모든 그래프를 만들도록 모든 위치를 전달합니다. 서버 측에서 Node.JS가 포함 된 실시간 그래픽
나는이 있습니다 클라이언트 측에서 다음(나는 모든 선수 위치마다 100 밀리 보내기로)
function Player(x,y){
some things...
this.graph = '';
}
setInterval(function(){
for (i in players){
players_position(players[i]);
}
io.sockets.emit('new_data', players);
}, 100);
:
var r = Raphael('field', 800, 600)
for (i in players){
players[i].graph = r.circle(players[i].x,players[i].y).attr({fill:'blue'});
players[i].graph = players[i].graph.attr({cx : players[i].x , cy:players[i].y});
(이것은 각 플레이어의 그래프를 처음부터 만들어 주며 잘 작동합니다)
socket.on('new_data', function(players){
for (i in players){
players[i].graph = players[i].graph.attr({cx : players[i].x , cy:players[i].y});
}
내 문제 여기에 ATTR이라는 메서드가 없다는 것이 나와 있습니다. 마치 object.graph가 실제로 내가 원하는 것이 아닌 것처럼 말입니다. 나는 내가 충분히 자신을 분명히하기를 희망한다. 그렇지 않다면 말해주십시오.
대단히 감사합니다.
'플레이어'는 클라이언트 측 코드의 첫 번째 부분에서 어디서 왔습니까? 소켓 이벤트가 생기면 브라우저 디버거에서 '플레이어'는 어떻게 생겼을까요? – ebohlman
@ebohlman 나는 객체 플레이어 [i] .graph와 함께 console.log를 사용하는데 attrs가있는 객체입니다 ... 그래서 왜 메소드 attr이 없는지 이해할 수 없습니다. – andresmechali