Collision which shouldn't occur inside seams between platformer blocks.

Jan 23, 2012 at 9:04 PM

This question is probably related to Platformer Collison Detection Across Platform Seams (CTRL+F "2. When falling close to a wall").

I have identical blocks next to each other, and when the character block runs (slides) across it, it randomly decides it collides with the side of a block and stops the character. I have the state of 3 contacts between the character and a block. The three blocks are all 1 wide and exactly next to each other. The 16th (3rd here) is the one causing troubles.

World.ContactList[14].Manifold
{FarseerPhysics.Collision.Manifold}
    LocalNormal: {X:0 Y:1}
    LocalPoint: {X:0,5 Y:1,5}
    PointCount: 2
    Points: {FarseerPhysics.Common.FixedArray2<FarseerPhysics.Collision.ManifoldPoint>}
    Type: FaceA
World.ContactList[15].Manifold
{FarseerPhysics.Collision.Manifold}
    LocalNormal: {X:0 Y:1}
    LocalPoint: {X:0,5 Y:1,5}
    PointCount: 2
    Points: {FarseerPhysics.Common.FixedArray2<FarseerPhysics.Collision.ManifoldPoint>}
    Type: FaceA
World.ContactList[16].Manifold
{FarseerPhysics.Collision.Manifold}
    LocalNormal: {X:-1 Y:0}
    LocalPoint: {X:0 Y:0,75}
    PointCount: 2
    Points: {FarseerPhysics.Common.FixedArray2<FarseerPhysics.Collision.ManifoldPoint>}
    Type: FaceA
I'm working on an algorithm to combine boxes, but they won't eliminate all edges since some platforms have different properties. Are there ways to solve this, or reduce the chance of this occurring?