mirror of
https://github.com/photonstorm/phaser
synced 2025-03-06 00:07:31 +00:00
Remove recalculation of tile bounds from arcade physics
This commit is contained in:
parent
d1cd5cbc1d
commit
814e5af815
3 changed files with 6 additions and 12 deletions
|
@ -55,7 +55,7 @@ var SeparateTile = function (i, body, tile, tileWorldRect, tilemapLayer, tileBia
|
|||
{
|
||||
if (faceHorizontal)
|
||||
{
|
||||
ox = TileCheckX(body, tile, tilemapLayer, tileBias);
|
||||
ox = TileCheckX(body, tile, tileLeft, tileRight, tileBias);
|
||||
|
||||
// That's horizontal done, check if we still intersects? If not then we can return now
|
||||
if (ox !== 0 && !TileIntersectsBody(tileWorldRect, body))
|
||||
|
@ -66,14 +66,14 @@ var SeparateTile = function (i, body, tile, tileWorldRect, tilemapLayer, tileBia
|
|||
|
||||
if (faceVertical)
|
||||
{
|
||||
oy = TileCheckY(body, tile, tilemapLayer, tileBias);
|
||||
oy = TileCheckY(body, tile, tileTop, tileBottom, tileBias);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (faceVertical)
|
||||
{
|
||||
oy = TileCheckY(body, tile, tilemapLayer, tileBias);
|
||||
oy = TileCheckY(body, tile, tileTop, tileBottom, tileBias);
|
||||
|
||||
// That's vertical done, check if we still intersects? If not then we can return now
|
||||
if (oy !== 0 && !TileIntersectsBody(tileWorldRect, body))
|
||||
|
@ -84,7 +84,7 @@ var SeparateTile = function (i, body, tile, tileWorldRect, tilemapLayer, tileBia
|
|||
|
||||
if (faceHorizontal)
|
||||
{
|
||||
ox = TileCheckX(body, tile, tilemapLayer, tileBias);
|
||||
ox = TileCheckX(body, tile, tileLeft, tileRight, tileBias);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -10,12 +10,9 @@ var ProcessTileSeparationX = require('./ProcessTileSeparationX');
|
|||
* @param {Phaser.TilemapLayer} tilemapLayer - The tilemapLayer to collide against.
|
||||
* @return {number} The amount of separation that occurred.
|
||||
*/
|
||||
var TileCheckX = function (body, tile, tilemapLayer, tileBias)
|
||||
var TileCheckX = function (body, tile, tileLeft, tileRight, tileBias)
|
||||
{
|
||||
var ox = 0;
|
||||
var tileLeft = tilemapLayer.tileToWorldX(tile.x);
|
||||
var tileWidth = tile.width * tilemapLayer.scaleX;
|
||||
var tileRight = tileLeft + tileWidth;
|
||||
|
||||
if (body.deltaX() < 0 && !body.blocked.left && tile.collideRight && body.checkCollision.left)
|
||||
{
|
||||
|
|
|
@ -10,12 +10,9 @@ var ProcessTileSeparationY = require('./ProcessTileSeparationY');
|
|||
* @param {Phaser.TilemapLayer} tilemapLayer - The tilemapLayer to collide against.
|
||||
* @return {number} The amount of separation that occurred.
|
||||
*/
|
||||
var TileCheckY = function (body, tile, tilemapLayer, tileBias)
|
||||
var TileCheckY = function (body, tile, tileTop, tileBottom, tileBias)
|
||||
{
|
||||
var oy = 0;
|
||||
var tileTop = tilemapLayer.tileToWorldX(tile.y);
|
||||
var tileHeight = tile.height * tilemapLayer.scaleY;
|
||||
var tileBottom = tileTop + tileHeight;
|
||||
|
||||
if (body.deltaY() < 0 && !body.blocked.up && tile.collideDown && body.checkCollision.up)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue