From ecc91fb4e037119dab70812814c1544e0af1bba5 Mon Sep 17 00:00:00 2001 From: Richard Davey Date: Fri, 13 Sep 2013 03:07:39 +0100 Subject: [PATCH] More collision test cases and fixing a few issues as I go :) --- examples/assets/sprites/fruitnveg32wh37.png | Bin 27252 -> 21287 bytes examples/assets/sprites/fruitnveg64wh37.png | Bin 0 -> 27269 bytes examples/collision_sprite_vs_group.php | 100 ++++++++++++++++++ ...lision_sprite_vs_sprite_custom_process.php | 35 ++++-- src/gameobjects/Sprite.js | 3 + src/physics/arcade/ArcadePhysics.js | 27 ++++- src/physics/arcade/Body.js | 11 ++ 7 files changed, 167 insertions(+), 9 deletions(-) create mode 100644 examples/assets/sprites/fruitnveg64wh37.png create mode 100644 examples/collision_sprite_vs_group.php diff --git a/examples/assets/sprites/fruitnveg32wh37.png b/examples/assets/sprites/fruitnveg32wh37.png index 5d371cbf161510076c8b72fbd0ffb9e31014a802..4f835727187ffebca846c8084fb6efd85c3139e1 100644 GIT binary patch literal 21287 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 Hu0mjf-fdPf literal 27252 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 + + + phaser.js - a new beginning + + + + + + + + \ No newline at end of file diff --git a/examples/collision_sprite_vs_sprite_custom_process.php b/examples/collision_sprite_vs_sprite_custom_process.php index fe67c09a..f691580c 100644 --- a/examples/collision_sprite_vs_sprite_custom_process.php +++ b/examples/collision_sprite_vs_sprite_custom_process.php @@ -30,20 +30,25 @@ // This will check Sprite vs. Sprite collision using a custom process callback - sprite1 = game.add.sprite(50, 200, 'atari'); + sprite1 = game.add.sprite(0, 200, 'atari'); sprite1.name = 'atari'; - sprite1.body.velocity.x = 100; + // We'll use a random velocity here so we can test it in our processHandler + sprite1.body.velocity.x = 50 + Math.random() * 100; + // This tells phaser to not use the built-in body separation, instead you should handle it in your process callback (see below) + sprite1.body.customSeparateX = true; - sprite2 = game.add.sprite(700, 220, 'mushroom'); + sprite2 = game.add.sprite(750, 220, 'mushroom'); sprite2.name = 'mushroom'; - sprite2.body.velocity.x = -100; + // We'll use a random velocity here so we can test it in our processHandler + sprite2.body.velocity.x = -(50 + Math.random() * 100); + // This tells phaser to not use the built-in body separation, instead you should handle it in your process callback (see below) + sprite2.body.customSeparateX = true; } function update() { - // object1, object2, collideCallback, processCallback, callbackContext - game.physics.collide(sprite1, sprite2, collisionHandler, null, this); + game.physics.collide(sprite1, sprite2, collisionHandler, processHandler, this); } @@ -53,7 +58,23 @@ // For example you could test for velocity, health, etc. // If you want the collision to be deemed successful this function must return true. // In which case the collisionHandler will be called, otherwise it won't. - // Note: the objects will have already collided and separated by this point. + + // Note: the objects will have already been separated by this point unless you have set + // their customSeparateX/Y flags to true. If you do that it's up to you to handle separation. + + // Whichever one is going fastest wins, the other dies :) + if (obj1.body.velocity.x > Math.abs(obj2.body.velocity.x)) + { + obj2.kill(); + obj1.body.velocity.x = 0; + } + else + { + obj1.kill(); + obj2.body.velocity.x = 0; + } + + return true; } diff --git a/src/gameobjects/Sprite.js b/src/gameobjects/Sprite.js index 6750ae3e..1497024f 100644 --- a/src/gameobjects/Sprite.js +++ b/src/gameobjects/Sprite.js @@ -167,6 +167,9 @@ Phaser.Sprite = function (game, x, y, key, frame) { // Set-up the physics body this.body = new Phaser.Physics.Arcade.Body(this); + this.velocity = this.body.velocity; + this.acceleration = this.body.acceleration; + // World bounds check this.inWorld = Phaser.Rectangle.intersects(this.bounds, this.game.world.bounds); this.inWorldThreshold = 0; diff --git a/src/physics/arcade/ArcadePhysics.js b/src/physics/arcade/ArcadePhysics.js index 94025a5a..9b737e96 100644 --- a/src/physics/arcade/ArcadePhysics.js +++ b/src/physics/arcade/ArcadePhysics.js @@ -424,11 +424,12 @@ Phaser.Physics.Arcade.prototype = { */ separate: function (body1, body2) { - if (this.separateX(body1, body2) || this.separateY(body1, body2)) + this._result = (this.separateX(body1, body2) || this.separateY(body1, body2)); + + if (this._result) { body1.postUpdate(); body2.postUpdate(); - this._result = true; } }, @@ -496,12 +497,21 @@ Phaser.Physics.Arcade.prototype = { // Then adjust their positions and velocities accordingly (if there was any overlap) if (this._overlap != 0) { + body1.overlapX = this._overlap; + body2.overlapX = this._overlap; + + if (body1.customSeparateX || body2.customSeparateX) + { + return true; + } + this._velocity1 = body1.velocity.x; this._velocity2 = body2.velocity.x; if (!body1.immovable && !body2.immovable) { this._overlap *= 0.5; + body1.x = body1.x - this._overlap; body2.x += this._overlap; @@ -510,6 +520,7 @@ Phaser.Physics.Arcade.prototype = { this._average = (this._newVelocity1 + this._newVelocity2) * 0.5; this._newVelocity1 -= this._average; this._newVelocity2 -= this._average; + body1.velocity.x = this._average + this._newVelocity1 * body1.bounce.x; body2.velocity.x = this._average + this._newVelocity2 * body2.bounce.x; } @@ -595,12 +606,21 @@ Phaser.Physics.Arcade.prototype = { // Then adjust their positions and velocities accordingly (if there was any overlap) if (this._overlap != 0) { + body1.overlapY = this._overlap; + body2.overlapY = this._overlap; + + if (body1.customSeparateY || body2.customSeparateY) + { + return true; + } + this._velocity1 = body1.velocity.y; this._velocity2 = body2.velocity.y; if (!body1.immovable && !body2.immovable) { this._overlap *= 0.5; + body1.y = body1.y - this._overlap; body2.y += this._overlap; @@ -609,6 +629,7 @@ Phaser.Physics.Arcade.prototype = { this._average = (this._newVelocity1 + this._newVelocity2) * 0.5; this._newVelocity1 -= this._average; this._newVelocity2 -= this._average; + body1.velocity.y = this._average + this._newVelocity1 * body1.bounce.y; body2.velocity.y = this._average + this._newVelocity2 * body2.bounce.y; } @@ -616,6 +637,7 @@ Phaser.Physics.Arcade.prototype = { { body1.y = body1.y - this._overlap; body1.velocity.y = this._velocity2 - this._velocity1 * body1.bounce.y; + // This is special case code that handles things like horizontal moving platforms you can ride if (body2.active && body2.moves && (body1.deltaY() > body2.deltaY())) { @@ -626,6 +648,7 @@ Phaser.Physics.Arcade.prototype = { { body2.y += this._overlap; body2.velocity.y = this._velocity1 - this._velocity2 * body2.bounce.y; + // This is special case code that handles things like horizontal moving platforms you can ride if (body1.sprite.active && body1.moves && (body1.deltaY() < body2.deltaY())) { diff --git a/src/physics/arcade/Body.js b/src/physics/arcade/Body.js index b8242bbb..9ebe509e 100644 --- a/src/physics/arcade/Body.js +++ b/src/physics/arcade/Body.js @@ -49,6 +49,17 @@ Phaser.Physics.Arcade.Body = function (sprite) { this.allowRotation = true; this.allowGravity = true; + // These two flags allow you to disable the custom separation that takes place + // Used in combination with your own collision processHandler you can create whatever + // type of collision response you need. + this.customSeparateX = false; + this.customSeparateY = false; + + // When this body collides with another the amount of overlap is stored in here + // These values are useful if you want to provide your own custom separation logic. + this.overlapX = 0; + this.overlapY = 0; + this.collideWorldBounds = false; this.lastX = sprite.x;