mirror of
https://github.com/wassname/phaser.git
synced 2026-06-27 16:10:15 +08:00
Added max overlap clamp.
This commit is contained in:
@@ -8,7 +8,8 @@ function preload() {
|
||||
// game.load.image('phaser', 'assets/sprites/phaser-ship.png');
|
||||
// game.load.image('phaser', 'assets/sprites/mushroom2.png');
|
||||
// game.load.image('phaser', 'assets/sprites/wabbit.png');
|
||||
game.load.image('phaser', 'assets/sprites/arrow.png');
|
||||
// game.load.image('phaser', 'assets/sprites/arrow.png');
|
||||
game.load.image('phaser', 'assets/sprites/darkwing_crazy.png');
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1018,6 +1018,8 @@ Phaser.Physics.Arcade.prototype = {
|
||||
var tile;
|
||||
var localOverlapX = 0;
|
||||
var localOverlapY = 0;
|
||||
var maxOverlapX = Math.round(tiles[0].width / 2);
|
||||
var maxOverlapY = Math.round(tiles[0].height / 2);
|
||||
|
||||
for (var i = 0; i < tiles.length; i++)
|
||||
{
|
||||
@@ -1030,6 +1032,11 @@ Phaser.Physics.Arcade.prototype = {
|
||||
// LEFT
|
||||
localOverlapX = body.x - tile.right;
|
||||
|
||||
if (localOverlapX < -maxOverlapX)
|
||||
{
|
||||
localOverlapX = 0;
|
||||
}
|
||||
|
||||
if (localOverlapX >= body.deltaX())
|
||||
{
|
||||
console.log('m left overlapX', localOverlapX, body.deltaX(), this.game.time.physicsElapsed);
|
||||
@@ -1044,6 +1051,11 @@ Phaser.Physics.Arcade.prototype = {
|
||||
// RIGHT
|
||||
localOverlapX = body.right - tile.x;
|
||||
|
||||
if (localOverlapX > maxOverlapX)
|
||||
{
|
||||
localOverlapX = 0;
|
||||
}
|
||||
|
||||
// Distance check
|
||||
if (localOverlapX <= body.deltaX())
|
||||
{
|
||||
@@ -1059,6 +1071,12 @@ Phaser.Physics.Arcade.prototype = {
|
||||
// UP
|
||||
localOverlapY = body.y - tile.bottom;
|
||||
|
||||
// negatives
|
||||
if (localOverlapY < -maxOverlapY)
|
||||
{
|
||||
localOverlapY = 0;
|
||||
}
|
||||
|
||||
// Distance check
|
||||
if (localOverlapY >= body.deltaY())
|
||||
{
|
||||
@@ -1073,6 +1091,11 @@ Phaser.Physics.Arcade.prototype = {
|
||||
// DOWN
|
||||
localOverlapY = body.bottom - tile.y;
|
||||
|
||||
if (localOverlapY > maxOverlapY)
|
||||
{
|
||||
localOverlapY = 0;
|
||||
}
|
||||
|
||||
if (localOverlapY <= body.deltaY())
|
||||
{
|
||||
console.log('m down overlapY', localOverlapY, body.deltaY(), this.game.time.physicsElapsed);
|
||||
@@ -1164,6 +1187,11 @@ Phaser.Physics.Arcade.prototype = {
|
||||
// LEFT
|
||||
body.overlapX = body.x - tile.right;
|
||||
|
||||
if (body.overlapX < -maxOverlapX)
|
||||
{
|
||||
body.overlapX = 0;
|
||||
}
|
||||
|
||||
if (body.overlapX >= body.deltaX())
|
||||
{
|
||||
console.log('left overlapX', body.overlapX, body.deltaX(), this.game.time.physicsElapsed);
|
||||
@@ -1178,6 +1206,11 @@ Phaser.Physics.Arcade.prototype = {
|
||||
// RIGHT
|
||||
body.overlapX = body.right - tile.x;
|
||||
|
||||
if (body.overlapX > maxOverlapX)
|
||||
{
|
||||
body.overlapX = 0;
|
||||
}
|
||||
|
||||
// Distance check
|
||||
if (body.overlapX <= body.deltaX())
|
||||
{
|
||||
@@ -1193,6 +1226,11 @@ Phaser.Physics.Arcade.prototype = {
|
||||
// UP
|
||||
body.overlapY = body.y - tile.bottom;
|
||||
|
||||
if (body.overlapY < -maxOverlapY)
|
||||
{
|
||||
body.overlapY = 0;
|
||||
}
|
||||
|
||||
// Distance check
|
||||
if (body.overlapY >= body.deltaY())
|
||||
{
|
||||
@@ -1207,6 +1245,11 @@ Phaser.Physics.Arcade.prototype = {
|
||||
// DOWN
|
||||
body.overlapY = body.bottom - tile.y;
|
||||
|
||||
if (body.overlapY > maxOverlapY)
|
||||
{
|
||||
body.overlapY = 0;
|
||||
}
|
||||
|
||||
if (body.overlapY <= body.deltaY())
|
||||
{
|
||||
console.log('down overlapY', body.overlapY, body.deltaY(), this.game.time.physicsElapsed);
|
||||
|
||||
Reference in New Issue
Block a user