AllenYuan

index.js read painting

May 1st, 2020
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $(document).ready(function () {
  2.   let PIXELSIZE = 2;
  3.   let REPEATSX = 20;
  4.   let REPEATSY = 15;
  5.   let DIMENSION = 25;
  6.  
  7.   let canvas = id('mycanvas');
  8.   let ctx = canvas.getContext("2d");
  9.   let canvasWidth = DIMENSION * REPEATSX * PIXELSIZE;
  10.   let canvasHeight = DIMENSION * REPEATSY * PIXELSIZE;
  11.   let selectedBox = null;
  12.  
  13.   canvas.width = canvasWidth;
  14.   canvas.height = canvasHeight;
  15.  
  16.   // Your web app's Firebase configuration
  17.   var firebaseConfig = {
  18.     apiKey: "AIzaSyDjLFcsO92KpwLiFe7Hsp4gVd51w61WIsk",
  19.     authDomain: "canvasgamedemo.firebaseapp.com",
  20.     databaseURL: "https://canvasgamedemo.firebaseio.com",
  21.     projectId: "canvasgamedemo",
  22.     storageBucket: "canvasgamedemo.appspot.com",
  23.     messagingSenderId: "258751262925",
  24.     appId: "1:258751262925:web:50cdf23c2265aa7ae07984"
  25.   };
  26.   // Initialize Firebase
  27.   firebase.initializeApp(firebaseConfig);
  28.   let db = firebase.firestore();
  29.  
  30.   db.collection('app').onSnapshot(function (grid) {
  31.     console.log('grid', grid);
  32.     for(let change of grid.docChanges()) {
  33.       console.log('change', change);
  34.       if (!change.doc) continue;
  35.       let key = change.doc.id;
  36.       let data = change.doc.data().data;
  37.       if (key == 'grid') continue;
  38.  
  39.       let coord = key.split(",");
  40.       let json = data;
  41.       console.log('changedata', json);
  42.       let pixelData = JSON.parse(json);
  43.       clearGrid(coord);
  44.       for (let subkey in pixelData) {
  45.         let subcoord = subkey.split(",");
  46.         let color = pixelData[subkey];
  47.         if(color == '#2') color = '#222244';
  48.  
  49.         fillPixel(coord, subcoord, color);
  50.       }
  51.     }
  52.   });
  53.  
  54.   // clears a square
  55.   function clearGrid(coord) {
  56.     let coordX = parseInt(coord[0]);
  57.     let coordY = parseInt(coord[1]);
  58.     // fill square with light gray and trim with darker gray
  59.     ctx.fillStyle = '#ffffff';
  60.     ctx.fillRect(coordX * DIMENSION * PIXELSIZE, coordY * DIMENSION * PIXELSIZE,
  61.       PIXELSIZE * DIMENSION, PIXELSIZE * DIMENSION);
  62.     ctx.fillStyle = '#cccccc';
  63.     ctx.strokeRect(coordX * DIMENSION * PIXELSIZE, coordY * DIMENSION * PIXELSIZE,
  64.       PIXELSIZE * DIMENSION, PIXELSIZE * DIMENSION);
  65.   }
  66.  
  67.   // fill a pixel in a square
  68.   function fillPixel(coord, subcoord, color) {
  69.     let coordX = parseInt(coord[0]);
  70.     let coordY = parseInt(coord[1]);
  71.     let subCoordX = parseInt(subcoord[0]);
  72.     let subCoordY = parseInt(subcoord[1]);
  73.     if (coordX < 0 || coordY < 0 ||
  74.       coordX >= REPEATSX || coordY >= REPEATSY ||
  75.       subCoordX < 0 || subCoordX >= DIMENSION ||
  76.       subCoordY < 0 || subCoordY >= DIMENSION) {
  77.       return;
  78.     }
  79.  
  80.     ctx.fillStyle = color;
  81.     let x = (coordX * DIMENSION + subCoordX) * PIXELSIZE;
  82.     let y = (coordY * DIMENSION + subCoordY) * PIXELSIZE;
  83.     ctx.fillRect(x, y, PIXELSIZE, PIXELSIZE);
  84.   }
Add Comment
Please, Sign In to add comment