Advertisement
Guest User

Untitled

a guest
Jul 24th, 2017
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. Client_1 wants to move right
  2. Server broadcasts that
  3. Clients simulating Client_1's movement
  4. Client_1 sends it's coordinates to the server (every 100ms)
  5. Server validates coordinates based on client's last position and last update (which is stored on the server)
  6. Server corrects Client_1's coordinates on every client
  7.  
  8. var now = Date.now();
  9. var clientX = ...x position sent by client...
  10. var clientY = ...y position sent by client...
  11. var timeDiff = Math.ceil((now - player.lastPositionUpdate)/5)*5;
  12. var timeDiff = timeDiff > 1000 ? 1000 : timeDiff;
  13. var pixelPer100 = player.speed/10;
  14. var maximumPixelDiff = (pixelPer100/100) * timeDiff;
  15. player.lastPositionUpdate = now;
  16.  
  17. if (clientX > player.position.x){
  18. var diff = clientX - player.position.x;
  19. newX = player.position.x + (diff > maximumPixelDiff ? pixelPer100 : diff);
  20. }
  21. ..and more
  22.  
  23. update: function(){
  24. player.body.velocity.x = player.speed;
  25. tick++;
  26. if (tick == 6){
  27. tick = 0;
  28. sendPositionToServer();
  29. }
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement