Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require("express");
- const app = express();
- const serv = require("http").Server(app);
- app.get("/", (req, res) =>
- res.sendFile(__dirname + "/client/index.html"));
- app.use("/client", express.static(__dirname + "/client"));
- app.get("/ajaxcall", (req, res) => {
- let map = {
- "roomName": "startRoom",
- "outside": true,
- "obstacles": [
- ["tree",
- [3, 2],
- [1, 1],
- [2, 2],
- [1, 3],
- [1, 4]
- ],
- ["stone",
- [4, 4],
- [8, 9],
- [5, 4],
- [6, 4]
- ],
- ["chest",
- [9, 9]
- ]
- ],
- "entryPoint": [
- 0,
- 13
- ],
- "exitPoint": [
- 14,
- 14
- ]
- };
- res.send(map);
- });
- /* const roomClass = require("./client/js/Room.js");
- const Room = new roomClass(); */
- serv.listen(2000);
- console.log("Server started");
- let SOCKET_LIST = {};
- // Character to be replaced by original Class
- //
- let Character = function () {
- let self = {
- x: 250,
- y: 250,
- id: "",
- spdX: 0,
- spdY: 0,
- }
- self.update = () => self.updatePos()
- self.updatePos = () => {
- self.x += self.spdX;
- self.y += self.spdY;
- }
- return self;
- }
- // Player to be replaced by original Class
- //
- let Player = function (id) {
- let self = Character();
- self.id = id;
- self.number = "" + Math.floor(10 * Math.random());
- self.pressingRight = false;
- self.pressingLeft = false;
- self.pressingUp = false;
- self.pressingDown = false;
- self.maxSpd = 10;
- let super_update = self.update;
- self.update = () => {
- self.updateSpd();
- super_update();
- }
- self.updateSpd = () => {
- if (self.pressingRight) {
- self.spdX += self.maxSpd;
- } else if (self.pressingLeft) {
- self.spdX -= self.maxSpd;
- } else {
- self.spdX = 0;
- }
- if (self.pressingUp) {
- self.spdY -= self.maxSpd;
- } else if (self.pressingDown) {
- self.spdY += self.maxSpd;
- } else {
- self.spdY = 0;
- }
- }
- Player.list[id] = self;
- return self;
- }
- Player.list = {};
- Player.onConnect = (socket) => {
- let player = Player(socket.id);
- // get key Press/Release Data
- socket.on("keyPress", (data) => {
- if (data.inputId === "right")
- player.pressingRight = data.state;
- else if (data.inputId === "left")
- player.pressingLeft = data.state;
- else if (data.inputId === "up")
- player.pressingUp = data.state;
- else if (data.inputId === "down")
- player.pressingDown = data.state;
- });
- }
- Player.onDisconnect = (socket) => delete Player.list[socket.id];
- Player.update = () => {
- let playerInfo = [];
- for (let i in Player.list) {
- let player = Player.list[i];
- player.updatePos();
- playerInfo.push({
- x: player.x,
- y: player.y,
- number: player.number
- });
- }
- return playerInfo;
- }
- let io = require("socket.io")(serv, {});
- io.sockets.on("connection", (socket) => {
- socket.id = Math.floor(10 * Math.random());
- SOCKET_LIST[socket.id] = socket;
- console.log("User connected");
- // Deletes Socket on DC
- socket.on("disconnect", () => {
- delete SOCKET_LIST[socket.id];
- Player.onDisconnect(socket);
- });
- /* For Copy
- socket.on("", () =>{
- });
- socket.emit("msg", {
- });
- */
- });
- // GAME LOOP
- setInterval(() => {
- let = playerInfo = Player.update();
- for (let i in SOCKET_LIST) {
- let socket = SOCKET_LIST[i];
- socket.emit("newPos", playerInfo);
- }
- }, 1000 / 25);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement