Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- collideMovement: function(sprite,moveVector,layers,checkNPC)
- {
- var axisOrder = [ "x", "y" ];
- var indexOrder = [ 0, 1 ];
- if( Math.abs(moveVector[1]) > Math.abs(moveVector[0]) )
- {
- axisOrder = [ "y", "x" ];
- indexOrder = [ 1, 0 ];
- }
- var pos = [ sprite.worldX, sprite.worldY ];
- var size = [ sprite.worldWidth, sprite.worldHeight ];
- var checkSize = [ sprite.worldWidth + ( sprite.worldX % 1 === 0 ? 0 : 1 ), sprite.worldHeight + ( sprite.worldY % 1 === 0 ? 0 : 1 ) ];
- var other, nAxis, nm, m, mod, move, direction, inside, outside, start, end, rectSize, checkPos;
- for( var i = 0, l = moveVector.length; i < l; i++ )
- {
- m = moveVector[i];
- other = ( m === 0 ? 1 : 0 );
- nAxis = axisOrder[other];
- nm = indexOrder[other];
- move = moveVector[m];
- mod = ( move < 0 ? -1 : 1 );
- if( axisOrder[m] === "x" )
- {
- direction = ( mod === -1 ? 3 : 1 );
- }
- else
- {
- direction = ( mod === -1 ? 0 : 2 );
- }
- inside = pos[m] + size[m] / 2 * mod;
- outside = inside + move;
- start = ( mod === -1 ? outside : inside );
- end = ( mod === -1 ? inside : outside );
- rectSize = [];
- rectSize[m] = end - start;
- rectSize[nm] = checkSize[nm];
- checkPos = [ pos[0], pos[1] ];
- checkPos[m] = start;
- this.isRectWall(checkPos[0], checkPos[1], rectSize[0], rectSize[1], direction, layers, checkNPC, false);
- }
- },
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement