발신자가 "Internal Edge Collision"입니다. 방금 몇 시간 전에 해결책을 찾았습니다. btHeightfieldTerrainShape를 사용하는 경우이 문제를 해결하려면 btBvhTriangleMeshShape를 사용해야합니다.
여기가 답입니다.
이 콜백 추가 : pGround
이 어디
static bool CustomMaterialCombinerCallback(btManifoldPoint& cp,const btCollisionObject* colObj0,int partId0,int index0,const btCollisionObject* colObj1,int partId1,int index1)
{
btAdjustInternalEdgeContacts(cp,colObj1,colObj0, partId1,index1);
return true;
}
extern ContactAddedCallback gContactAddedCallback;
는 그 뒤 btBvhTriangleMeshShape
를 생성하고이 코드를 추가하려면 btBvhTriangleMeshShape
:
// Enable custom material callback
pGround->setCollisionFlags(pGround->getCollisionFlags() | btCollisionObject::CF_CUSTOM_MATERIAL_CALLBACK);
btTriangleInfoMap* triangleInfoMap = new btTriangleInfoMap();
btGenerateInternalEdgeInfo(pGroundShape, triangleInfoMap);
아니면 Bullet
에 InternalEdgeDemo
예를 열 수 있습니다 구현하는 방법을 볼 수 그것은 상세히.
x 축에서 충돌 블록이 겹 칩니 까? – axelduch
글 머리 기호에 box2d와 같은 가장자리 (체인) 모양이 있습니까? – LearnCocos2D
aduch : 블록 1 오른쪽 가장자리 = 블록 2 왼쪽 가장자리. 따라서,/ @ LearnCocos2D : Nop,하지만 캡슐 모양을 상자 모양으로 대체하려고 시도했지만 모든 것이 더 좋았습니다. 이상한 점은 Oo – user30088