Multiplayer Java Script game
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

159 lines
2.7 KiB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
  1. /**
  2. * Main server file which handles users
  3. *
  4. * @author Jeffery Russell
  5. * 2-22-18
  6. */
  7. var app = require('express')();
  8. var http = require('http').Server(app);
  9. var io = require('socket.io')(http);
  10. var PORT = 3000;
  11. var players = {};
  12. var sockets = {};
  13. var blocks = [];
  14. var Player = function()
  15. {
  16. var name;
  17. var x = 350;
  18. var y = 350;
  19. var upB= false;
  20. var downB = false;
  21. var leftB = false;
  22. var rightB = false;
  23. };
  24. var blocks = function(xx, yy, ownerName)
  25. {
  26. var x = xx;
  27. var y = yy;
  28. var owner = ownerName;
  29. //1 up
  30. //2 left
  31. //3 right
  32. //4 down
  33. var direction;
  34. };
  35. var update = function(command, object)
  36. {
  37. Object.keys(sockets).forEach(function(key)
  38. {
  39. console.log(players[key]);
  40. sockets[key].emit(command, object);
  41. });
  42. };
  43. io.on('connection', function(socket)
  44. {
  45. var p = new Player();
  46. console.log("user connected");
  47. var initialState = new Object();
  48. initialState.players = players;
  49. initialState.blocks = blocks;
  50. socket.emit('connected', initialState);
  51. socket.on('keyDown', function(data)
  52. {
  53. console.log("keydown");
  54. if(data.direction == 38)
  55. {
  56. //up
  57. p.upB = true;
  58. }
  59. else if (data.direction == 40)
  60. {
  61. //down
  62. p.downB = true;
  63. }
  64. else if (data.direction == 39)
  65. {
  66. //right
  67. p.leftR = true;
  68. }
  69. else if (data.direction == 37)
  70. {
  71. //left
  72. p.leftB = true;
  73. }
  74. else if (data.direction == 32)
  75. {
  76. //space
  77. }
  78. var object = new Object();
  79. object.name = p.name;
  80. object.player = p;
  81. update("updateClient", object);
  82. });
  83. socket.on('keyUp', function(data)
  84. {
  85. console.log("keyUp");
  86. if(data.direction == 38)
  87. {
  88. //up
  89. p.upB = false;
  90. }
  91. else if (data.direction == 40)
  92. {
  93. //down
  94. p.downB = false;
  95. }
  96. else if (data.direction == 39)
  97. {
  98. //right
  99. p.rightB = false;
  100. }
  101. else if (data.direction == 37)
  102. {
  103. //left
  104. p.leftB = false;
  105. }
  106. });
  107. socket.on('die', function(data)
  108. {
  109. players.remove(p);
  110. });
  111. socket.on('disconnect', function()
  112. {
  113. console.log("user disconnected");
  114. });
  115. socket.on('register', function(data)
  116. {
  117. console.log(data);
  118. p.name = data;
  119. players[data] = p;
  120. sockets[data] = socket;
  121. p.x = 300;
  122. p.y = 300;
  123. });
  124. });
  125. http.listen(PORT, function()
  126. {
  127. console.log('listening on *:3000');
  128. });