Advertisement
Guest User

Untitled

a guest
May 20th, 2018
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.94 KB | None | 0 0
  1. //app.js
  2. var express = require('express');
  3. var app = express();
  4. var serv = require('http').Server(app);
  5.  
  6. app.get('/',function(req, res) {
  7. res.sendFile(__dirname + '/client/index.html');
  8. });
  9. app.use('/client',express.static(__dirname + '/client'));
  10.  
  11. serv.listen(2000);
  12. console.log("Server started.");
  13.  
  14. var SOCKET_LIST = {};
  15.  
  16. var Entity = function(){
  17. var self = {
  18. x:250,
  19. y:250,
  20. spdX:0,
  21. spdY:0,
  22. id:"",
  23. }
  24. self.update = function(){
  25. self.updatePosition();
  26. }
  27. self.updatePosition = function(){
  28. self.x += self.spdX;
  29. self.y += self.spdY;
  30. }
  31. return self;
  32. }
  33.  
  34. var Player = function(id){
  35. var self = Entity();
  36. self.id = id;
  37. self.number = "" + Math.floor(10 * Math.random());
  38. self.pressingRight = false;
  39. self.pressingLeft = false;
  40. self.pressingUp = false;
  41. self.pressingDown = false;
  42. self.maxSpd = 10;
  43.  
  44. var super_update = self.update;
  45. self.update = function(){
  46. self.updateSpd();
  47. super_update();
  48. }
  49.  
  50.  
  51. self.updateSpd = function(){
  52. if(self.pressingRight)
  53. self.spdX = self.maxSpd;
  54. else if(self.pressingLeft)
  55. self.spdX = -self.maxSpd;
  56. else
  57. self.spdX = 0;
  58.  
  59. if(self.pressingUp)
  60. self.spdY = -self.maxSpd;
  61. else if(self.pressingDown)
  62. self.spdY = self.maxSpd;
  63. else
  64. self.spdY = 0;
  65. }
  66. Player.list[id] = self;
  67. return self;
  68. }
  69. Player.list = {};
  70. Player.onConnect = function(socket){
  71. var player = Player(socket.id);
  72. socket.on('keyPress',function(data){
  73. if(data.inputId === 'left')
  74. player.pressingLeft = data.state;
  75. else if(data.inputId === 'right')
  76. player.pressingRight = data.state;
  77. else if(data.inputId === 'up')
  78. player.pressingUp = data.state;
  79. else if(data.inputId === 'down')
  80. player.pressingDown = data.state;
  81. });
  82. }
  83. Player.onDisconnect = function(socket){
  84. delete Player.list[socket.id];
  85. }
  86. Player.update = function(){
  87. var pack = [];
  88. for(var i in Player.list){
  89. var player = Player.list[i];
  90. player.update();
  91. pack.push({
  92. x:player.x,
  93. y:player.y,
  94. number:player.number
  95. });
  96. }
  97. return pack;
  98. }
  99.  
  100. var io = require('socket.io')(serv,{});
  101. io.sockets.on('connection', function(socket){
  102. socket.id = Math.random();
  103. SOCKET_LIST[socket.id] = socket;
  104.  
  105. Player.onConnect(socket);
  106.  
  107. socket.on('disconnect',function(){
  108. delete SOCKET_LIST[socket.id];
  109. Player.onDisconnect(socket);
  110. });
  111.  
  112.  
  113.  
  114.  
  115. });
  116.  
  117. setInterval(function(){
  118. var pack = Player.update(),
  119.  
  120.  
  121. for(var i in SOCKET_LIST){
  122. var socket = SOCKET_LIST[i];
  123. socket.emit('newPositions',pack);
  124. }
  125. },1000/25);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement