Advertisement
ItsNoah

among us p5js

Feb 18th, 2022
983
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var socket = io.connect(":30000?sketch=946854");
  2. var id;
  3. var waitToStart = 0;
  4. var mapImg;
  5. var table;
  6. var p;
  7. var mapP = []
  8. var mXo = 0
  9. var mYo = 0
  10.  
  11. function preload() {
  12.     charater2Img = loadImage("charater.png")
  13.     mapImg = loadImage("The Skeld (1).jpg")
  14.  
  15. }
  16.  
  17. function setup() {
  18.     createCanvas(windowWidth, windowHeight);
  19.     background(0);
  20.     if (getItem("2co") == null) {
  21.         id = random(9999999);
  22.         storeItem("2co", id)
  23.     } else {
  24.         id = getItem("2co")
  25.     }
  26.     socket.on("update", update)
  27.     socket.on("update2", update2)
  28.     socket.on("updateServers""play"
  29. var myServer = "choose"
  30. var startA = 0
  31. var servers = 4;
  32. var st = 0
  33. var serverPlay = []
  34. var mil = 0;
  35.  
  36. function doServers() {
  37.     for (let i = 0; i < servers; i++) {
  38.         let playSer = 0;
  39.         for (let p = 0; p < serverPlay.length; p++) {
  40.             if (serverPlay[p].server == i) {
  41.                 playSer++;
  42.             }
  43.         }
  44.         if (bonE("Server: " + i + " " + playSer + " players", width / 2, height / 2 + ((i - servers / 2) * 60), 200, 50, 125, 125, 125, 100, 100, 100, 25)) {
  45.             myServer = i;
  46.             home = "wait"
  47.         }
  48.     }
  49.  
  50. }
  51.  
  52. function draw() {
  53.     if (millis() > mil + 2000 && home !== "choose" && false) {
  54.         print("You have been kicked for inactivity. You probably switched tabs.");
  55.         background(255, 40, 40);
  56.         noLoop();
  57.     } else {
  58.         draw2();
  59.     }
  60.     mil = millis()
  61.  
  62. }
  63.  
  64. function draw2() {
  65.     frameRate(30)
  66.  
  67.     if (home == "play") {
  68.         socket.emit("update2", id, myServer, player.x, player.y, player.dir)
  69.         background(0);
  70.         imageMode(CENTER)
  71.         for (let i = 0; i < 3; i++) {
  72.             player.move();
  73.  
  74.             while (touch(width / 2 + player.w2 / 2, height / 2)) {
  75.                 player.x -= player.speed;
  76.             }
  77.  
  78.             while (touch(width / 2 - player.w2 / 2, height / 2)) {
  79.                 player.x += player.speed;
  80.             }
  81.  
  82.             while (touch(width / 2, height / 2 + player.h2 / 2)) {
  83.                 player.y -= player.speed;
  84.             }
  85.  
  86.             while (touch(width / 2, height / 2 - player.h2 / 2)) {
  87.                 player.y += player.speed;
  88.  
  89.             }
  90.         }
  91.  
  92.         doWalls();
  93.         drawMap(0, 0)
  94.         player.show();
  95.  
  96.         drawPlayers()
  97.  
  98.     }
  99.  
  100.     function touch(x, y) {
  101.         let m = 0
  102.         let ar = mapImg.get(x + mapImg.width / 2 + round(player.x) * 1.35 - width / 2, y + mapImg.height / 2 + round(player.y) * 1.35 - height / 2)
  103.         for (let i = 0; i < 3; i++) { //noprotect
  104.             if (ar[i] > 40 && ar[i] < 52) {
  105.                 m++
  106.             }
  107.         }
  108.         if (m == 3) {
  109.             return (true)
  110.         }
  111.     }
  112.  
  113.     function drawPlayers() {
  114.  
  115.         for (let i = 0; i < players.length; i++) {
  116.             if (players[i].dir == 1) {
  117.                 image(charaterImg, players[i].x - (player.x - width / 2), players[i].y - (player.y - height / 2))
  118.             }
  119.             if (players[i].dir == -1) {
  120.                 image(charater2Img, players[i].x - (player.x - width / 2), players[i].y - (player.y - height / 2))
  121.  
  122.             }
  123.             players[i].time += 0.01 //2.2
  124.             if (players[i].time > 1) {
  125.                 players.splice(i, 1);
  126.                 i--;
  127.             }
  128.         }
  129.     }
  130.  
  131.     function drawMap(x, y) {
  132.         push();
  133.  
  134.         translate(x - (player.x - width / 2), y - (player.y - height / 2))
  135.  
  136.         image(mapImg, 0, 0, mapImg.width / 1.35, mapImg.height / 1.35, 0, 0)
  137.  
  138.         pop();
  139.         stroke(0, 0, 0, 150)
  140.         strokeWeight(1200 - player.vision)
  141.         noFill()
  142.         ellipse(width / 2, height / 2, 1000 + 200)
  143.     }
  144.  
  145.     function doWalls() {
  146.         noStroke()
  147.         for (let i = 0; i < walls.length; i++) {
  148.             if (walls[i].x - (player.x - width / 2) + walls[i].w > -50 && walls[i].x - (player.x - width / 2) < width &&
  149.                 walls[i].y - (player.y - height / 2) + walls[i].h > -50 && walls[i].y - (player.y - height / 2) < height) {
  150.                 //Make sure to only include a hit box if player can see it
  151.                 //walls[i].show();
  152.                 while (player.x + (player.w / 2) > walls[i].x && player.x + (player.w / 2) < walls[i].x + (player.currentSpeed * 3) + 0.1 && player.y + (player.h / 2) + 1 > walls[i].y && player.y + (-player.h3 / 2) + 1 < walls[i].y + walls[i].h) {
  153.                     player.x -= (player.currentSpeed * 3);
  154.                 }
  155.                 while (player.x - (player.w / 2) > walls[i].x + walls[i].w - (player.currentSpeed * 3) - 0.1 && player.x - (player.w / 2) < walls[i].x + walls[i].w && player.y - (-player.h / 2) - 1 > walls[i].y && player.y - (player.h3 / 2) - 1 < walls[i].y + walls[i].h) {
  156.                     player.x += (player.currentSpeed * 3);
  157.                 }
  158.                 while (player.y - (player.h3 / 2) > walls[i].y + walls[i].h - (player.currentSpeed * 3) - 0.1 && player.y - (player.h3 / 2) < walls[i].y + walls[i].h && player.x - (-player.w / 2) - 1 > walls[i].x && player.x - (player.w / 2) - 1 < walls[i].x + walls[i].w) {
  159.                     player.y += (player.currentSpeed * 3);
  160.                 }
  161.                 while (player.y + (player.h / 2) > walls[i].y && player.y + (player.h / 2) < walls[i].y + (player.currentSpeed * 3) + 0.1 && player.x + (player.w / 2) + 1 > walls[i].x && player.x + (-player.w / 2) + 1 < walls[i].x + walls[i].w) {
  162.                     player.y -= (player.currentSpeed * 3);
  163.                 }
  164.             }
  165.         }
  166.     }
  167.  
  168. }
  169.  
  170. function update(id, server) {
  171.     if (home == "wait" && server == myServer) {
  172.         let add = true
  173.         for (let i = 0; i < players.length; i++) {
  174.             if (id == players[i].id) {
  175.                 add = false
  176.                 players[i].time = 0
  177.             }
  178.         }
  179.         if (add && players.length < startA) {
  180.             players.push({
  181.                 name: "test id:" + random(999),
  182.                 id: id,
  183.                 x: 0,
  184.                 y: 0,
  185.                 time: 0
  186.             })
  187.         }
  188.     }
  189. }
  190.  
  191. function update2(id, server, x, y, dir) {
  192.     if (home == "play" && server == myServer) {
  193.         for (let i = 0; i < players.length; i++) {
  194.             if (id == players[i].id) {
  195.                 players[i].x = x
  196.                 players[i].y = y
  197.                 players[i].dir = dir
  198.                 players[i].time = 0
  199.             }
  200.         }
  201.     }
  202. }
  203.  
  204. function updateServers(id, server) {
  205.     let add = true
  206.     for (let i = 0; i < serverPlay.length; i++) {
  207.         if (id == serverPlay[i].id) {
  208.             add = false
  209.             serverPlay[i].time = 0;
  210.             serverPlay[i].server = server;
  211.         }
  212.     }
  213.     if (add) {
  214.         serverPlay.push({
  215.             id: id,
  216.             server: server,
  217.             time: 0
  218.         })
  219.     }
  220.  
  221. }
  222.  
  223. function Wall(x, y, w, h) {
  224.     this.x = x
  225.     this.y = y
  226.     this.w = w;
  227.     this.h = h;
  228.     this.show = function() {
  229.         fill(0, 200)
  230.         push()
  231.         rectMode(CORNER)
  232.         rect(this.x - (player.x - width / 2), this.y - (player.y - height / 2), this.w, this.h)
  233.         pop()
  234.     }
  235. }
  236.  
  237. function bonE(m, x, y, w, h, r, g, b, r2, g2, b2, s) {
  238.     push();
  239.     rectMode(CENTER)
  240.  
  241.     fill(r, g, b);
  242.     noStroke();
  243.     if ((mouseX > x - (w / 2) && mouseX < x + (w / 2)) && (mouseY > y - (h / 2) && mouseY < y + (h / 2)) && mouseIsPressed && st == 0) {
  244.         st = 1;
  245.         pop();
  246.         return (true);
  247.     }
  248.     if ((mouseX > x - (w / 2) && mouseX < x + (w / 2)) && (mouseY > y - (h / 2) && mouseY < y + (h / 2)) && st == 0) {
  249.         cursor(HAND);
  250.         fill(r2, g2, b2);
  251.     }
  252.     rect(x, y, w, h, 5)
  253.  
  254.     noStroke();
  255.     fill(0);
  256.     textAlign(CENTER, CENTER)
  257.     fill(255);
  258.     textSize(s)
  259.     text(m, x, y - 3)
  260.     pop();
  261. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement