Advertisement
Guest User

app.js

a guest
Feb 19th, 2019
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const express = require("express");
  2. const app = express();
  3. const serv = require("http").Server(app);
  4.  
  5. app.get("/", (req, res) =>
  6.     res.sendFile(__dirname + "/client/index.html"));
  7. app.use("/client", express.static(__dirname + "/client"));
  8.  
  9. app.get("/ajaxcall", (req, res) => {
  10.     let map = {
  11.         "roomName": "startRoom",
  12.         "outside": true,
  13.         "obstacles": [
  14.             ["tree",
  15.                 [3, 2],
  16.                 [1, 1],
  17.                 [2, 2],
  18.                 [1, 3],
  19.                 [1, 4]
  20.             ],
  21.             ["stone",
  22.                 [4, 4],
  23.                 [8, 9],
  24.                 [5, 4],
  25.                 [6, 4]
  26.             ],
  27.             ["chest",
  28.                 [9, 9]
  29.             ]
  30.         ],
  31.         "entryPoint": [
  32.             0,
  33.             13
  34.         ],
  35.         "exitPoint": [
  36.             14,
  37.             14
  38.         ]
  39.     };
  40.     res.send(map);
  41. });
  42.  
  43. /* const roomClass = require("./client/js/Room.js");
  44. const Room = new roomClass(); */
  45.  
  46. serv.listen(2000);
  47. console.log("Server started");
  48.  
  49.  
  50. let SOCKET_LIST = {};
  51.  
  52. // Character to be replaced by original Class
  53. //
  54. let Character = function () {
  55.     let self = {
  56.         x: 250,
  57.         y: 250,
  58.         id: "",
  59.         spdX: 0,
  60.         spdY: 0,
  61.     }
  62.     self.update = () => self.updatePos()
  63.  
  64.     self.updatePos = () => {
  65.         self.x += self.spdX;
  66.         self.y += self.spdY;
  67.     }
  68.  
  69.     return self;
  70. }
  71.  
  72. // Player to be replaced by original Class
  73. //
  74. let Player = function (id) {
  75.     let self = Character();
  76.     self.id = id;
  77.     self.number = "" + Math.floor(10 * Math.random());
  78.     self.pressingRight = false;
  79.     self.pressingLeft = false;
  80.     self.pressingUp = false;
  81.     self.pressingDown = false;
  82.     self.maxSpd = 10;
  83.  
  84.     let super_update = self.update;
  85.     self.update = () => {
  86.         self.updateSpd();
  87.         super_update();
  88.     }
  89.  
  90.     self.updateSpd = () => {
  91.         if (self.pressingRight) {
  92.             self.spdX += self.maxSpd;
  93.         } else if (self.pressingLeft) {
  94.             self.spdX -= self.maxSpd;
  95.         } else {
  96.             self.spdX = 0;
  97.         }
  98.  
  99.         if (self.pressingUp) {
  100.             self.spdY -= self.maxSpd;
  101.         } else if (self.pressingDown) {
  102.             self.spdY += self.maxSpd;
  103.         } else {
  104.             self.spdY = 0;
  105.         }
  106.  
  107.     }
  108.    
  109.     Player.list[id] = self;
  110.     return self;
  111. }
  112.  
  113. Player.list = {};
  114. Player.onConnect = (socket) => {
  115.     let player = Player(socket.id);
  116.  
  117.     // get key Press/Release Data
  118.     socket.on("keyPress", (data) => {
  119.         if (data.inputId === "right")
  120.             player.pressingRight = data.state;
  121.         else if (data.inputId === "left")
  122.             player.pressingLeft = data.state;
  123.         else if (data.inputId === "up")
  124.             player.pressingUp = data.state;
  125.         else if (data.inputId === "down")
  126.             player.pressingDown = data.state;
  127.     });
  128. }
  129.  
  130. Player.onDisconnect = (socket) => delete Player.list[socket.id];
  131.  
  132. Player.update = () => {
  133.     let playerInfo = [];
  134.     for (let i in Player.list) {
  135.         let player = Player.list[i];
  136.         player.updatePos();
  137.         playerInfo.push({
  138.             x: player.x,
  139.             y: player.y,
  140.             number: player.number
  141.         });
  142.     }
  143.     return playerInfo;
  144. }
  145.  
  146. let io = require("socket.io")(serv, {});
  147. io.sockets.on("connection", (socket) => {
  148.  
  149.     socket.id = Math.floor(10 * Math.random());
  150.     SOCKET_LIST[socket.id] = socket;
  151.  
  152.    
  153.     console.log("User connected");
  154.  
  155.  
  156.  
  157.     // Deletes Socket on DC
  158.     socket.on("disconnect", () => {
  159.         delete SOCKET_LIST[socket.id];
  160.        Player.onDisconnect(socket);
  161.     });
  162.  
  163.  
  164.     /* For Copy
  165.         socket.on("", () =>{
  166.    
  167.         });
  168.    
  169.         socket.emit("msg", {
  170.    
  171.         });
  172.      */
  173.  
  174. });
  175.  
  176.  
  177. // GAME LOOP
  178. setInterval(() => {
  179.     let = playerInfo = Player.update();
  180.     for (let i in SOCKET_LIST) {
  181.         let socket = SOCKET_LIST[i];
  182.         socket.emit("newPos", playerInfo);
  183.     }
  184.  
  185.  
  186. }, 1000 / 25);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement