Advertisement
Guest User

Javascript Map

a guest
Nov 3rd, 2014
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function init() {
  2.     // Initalize the various page elements here...
  3.     WebSocket_Open();
  4.     Init_Map();
  5. }
  6.  
  7. var lightgrey = "rgb(184,184,184)"; // background/unknown
  8. var black = "rgb(0,0,0)";           // wall/barrier
  9. var red = "rgb(255,0,0)";           // barrier
  10. var green = "rgb(0,255,0)";         // goal
  11. var blue = "rgb(0,0,255)";          // robot
  12. var white = "rgb(255,255,255)";     // nothing/free
  13. var grid = "rgb(255,250,205)";      // grid lines
  14.  
  15. function Init_Map() {
  16.     var canvas = document.getElementById('map');
  17.     if (canvas.getContext){
  18.         var context = canvas.getContext('2d');
  19.         context.fillStyle = lightgrey;
  20.         context.fillRect( 0, 0, canvas.width, canvas.height );
  21.     }
  22. }
  23.  
  24. function drawMap(GridMapArray) {
  25.     //Y is vertical, X is horizontal
  26.     for (var Y = 0; Y < GridMapArray.length; Y++) {
  27.         var Coords = GridMapArray[Y].strip().split(",");
  28.         for (var X = 0; X < Coords.length; X++) {
  29.             if (Coords[X] == "") { continue; }
  30.             if (Coords[X] == ",") { continue; }
  31.             if (Coords[X] == 0) { // nothing, white
  32.                 var r = 255;
  33.                 var g = 255;
  34.                 var b = 255;
  35.             } else if (Coords[X] == 1) { // goal, green
  36.                 var r = 0;
  37.                 var g = 255;
  38.                 var b = 0;
  39.             } else if (Coords[X] == 254) { // robot, blue
  40.                 var r = 0;
  41.                 var g = 0;
  42.                 var b = 255;
  43.             } else if (Coords[X] == 255) { // wall, black
  44.                 var r = 0;
  45.                 var g = 0;
  46.                 var b = 0;
  47.             }
  48.             drawPixel(X, Y, r, g, b);
  49.         }
  50.     }
  51. }
  52.  
  53. function drawPixel(x, y, r, g, b) {
  54.     var canvas = document.getElementById('map');
  55.     if (canvas.getContext){
  56.         var context = canvas.getContext('2d');
  57.         var canvasData = context.getImageData(0, 0, canvas.width, canvas.height);
  58.         var PixelSize = 4;
  59.         x *= PixelSize;
  60.         y *= PixelSize;
  61.         var index;
  62.         for (var i = 0; i < PixelSize; i++) {
  63.             for (var j = 0; j < PixelSize; j++) {
  64.                 index = (x  + (y + j) * canvas.width) * 4;
  65.                 canvasData.data[index + 0] = r;
  66.                 canvasData.data[index + 1] = g;
  67.                 canvasData.data[index + 2] = b;
  68.                 canvasData.data[index + 3] = 255; //Alpha Channel
  69.             }
  70.             ++x;
  71.         }
  72.         context.putImageData(canvasData, 0, 0);
  73.     }
  74. }
  75.  
  76. var GridMapArray = new Array();
  77. function parseResponse(requestlist) {
  78.     //mylog("Parsing: "+requestlist)
  79.     for (var i=0; i<requestlist.length; i++) {
  80.         var requestsplit = requestlist[i].strip().split(':')
  81.         requestsplit[requestsplit.length] = "dummy";
  82.         command = requestsplit[0];
  83.         value = requestsplit[1];
  84.         value2 = requestsplit[2];
  85.  
  86.         if( command == "get.Map" ) {
  87.           if (value == "NONE" && value2 == "NONE") {
  88.             mylog("..Currently no Grid Map Data available!..");
  89.           } else {
  90.             if (value == "END" && value2 == "END") {
  91.               drawMap(GridMapArray);
  92.             } else {
  93.               //add to array..
  94.               GridMapArray[value] = value2;
  95.             }
  96.           }
  97.         }
  98.  
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement