Как нацеливаться на конкретные объекты - PullRequest
0 голосов
/ 07 июня 2019

В настоящее время у меня есть игровая установка, где, если один игрок нажимает на другого в диапазоне, он должен убить указанного игрока. Тем не менее, я не уверен, как нацеливаться на конкретных игроков при столкновении. Игра написана на p5, а также на node.js, чтобы связать ее с сетью.

Я попытался назначить определенный идентификатор каждому клиенту, однако, когда тонна клиентов отправляет данные одновременно, принимающий клиент не знает, какой идентификатор должен быть целевым.

КОД СЕРВЕРА ...

function newConnection(socket){
  storeid = socket.id;
  idarr.push(storeid);
  io.to(storeid).emit('clientid',storeid);

  usernumber+=1;
  console.log('new connection: ' + storeid);
  console.log(idarr);

  socket.on('mouse', mouseMsg);


  socket.on('killdata', killMsg);


  function mouseMsg(data) {
    socket.broadcast.emit('mouse', data);

  }
  function killMsg(otherid) {
    io.to(otherid).emit('iskilled', killed);
  }

КОД КЛИЕНТА, ЧТОБЫ УБИТЬ ОБЪЕКТ

    if(collided){
        death = true;
        socket.emit('killdata', otherid);
        collided = false;
      }
//otherid is the id of other clients taken from the server when the server sends data from other clients

Прямо сейчас написанный код убивает игрока, но убивает случайного игрока, потому что клиент может получить идентификатор только один раз и не знает, какой идентификатор выбрать.

...