Advertisement
Pinkishu

Untitled

Oct 18th, 2014
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         collideMovement: function(sprite,moveVector,layers,checkNPC)
  2.         {
  3.             var axisOrder = [ "x", "y" ];
  4.             var indexOrder = [ 0, 1 ];
  5.  
  6.             if( Math.abs(moveVector[1]) > Math.abs(moveVector[0]) )
  7.             {
  8.                 axisOrder = [ "y", "x" ];
  9.                 indexOrder = [ 1, 0 ];
  10.             }
  11.  
  12.             var pos = [ sprite.worldX, sprite.worldY ];
  13.             var size = [ sprite.worldWidth, sprite.worldHeight ];
  14.  
  15.             var checkSize = [ sprite.worldWidth + ( sprite.worldX % 1 === 0 ? 0 : 1 ), sprite.worldHeight + ( sprite.worldY % 1 === 0 ? 0 : 1 ) ];
  16.  
  17.             var other, nAxis, nm, m, mod, move, direction, inside, outside, start, end, rectSize, checkPos;
  18.             for( var i = 0, l = moveVector.length; i < l; i++ )
  19.             {
  20.                 m = moveVector[i];
  21.                 other = ( m === 0 ? 1 : 0 );
  22.                 nAxis = axisOrder[other];
  23.                 nm = indexOrder[other];
  24.  
  25.  
  26.                 move = moveVector[m];
  27.                 mod = ( move < 0 ? -1 : 1 );
  28.  
  29.                 if( axisOrder[m] === "x" )
  30.                 {
  31.                     direction = ( mod === -1 ? 3 : 1 );
  32.                 }
  33.                 else
  34.                 {
  35.                     direction = ( mod === -1 ? 0 : 2 );
  36.                 }
  37.  
  38.                 inside = pos[m] + size[m] / 2 * mod;
  39.                 outside = inside + move;
  40.  
  41.                 start = ( mod === -1 ? outside : inside );
  42.                 end = ( mod === -1 ? inside : outside );
  43.  
  44.                 rectSize = [];
  45.                 rectSize[m] = end - start;
  46.                 rectSize[nm] = checkSize[nm];
  47.  
  48.                 checkPos = [ pos[0], pos[1] ];
  49.                 checkPos[m] = start;
  50.  
  51.                 this.isRectWall(checkPos[0], checkPos[1], rectSize[0], rectSize[1], direction, layers, checkNPC, false);
  52.  
  53.             }
  54.         },
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement