2012-10-16 2 views
0

내가 이렇게 내 미로를 생성하고 다른 신체를 통해 이동 :시어 - 입자 그냥

agentBody = BodyFactory.CreateBody(world, position); 
_agentBody.BodyType = BodyType.Dynamic; 
_agentBody.IgnoreGravity = true; 
_agentBody.Restitution = 0.1f; 
_agentBody.Friction = 1f; 

_offset = ConvertUnits.ToDisplayUnits(1.5f); 

FixtureFactory.AttachRectangle(3f, 0.1f, 1f, new Vector2(0, 1.55f), _agentBody); 
FixtureFactory.AttachRectangle(3f, 0.1f, 1f, new Vector2(0f, -1.55f), _agentBody); 
FixtureFactory.AttachRectangle(width, 3f, 1f, new Vector2(-1.55f, 0f), _agentBody); 
FixtureFactory.AttachRectangle(width, 3f, 1f, new Vector2(1.55f, 0f), _agentBody); 

내 모래 입자를 다음과 같이 :

나는 디버그보기에서 고정을 확인하고 그것을 잘 보이는
for (int i = 0; i < 8; i++){ 
    _sands[i] = BodyFactory.CreateRectangle(_world, 0.05f, 0.05f, 1f); 
    _sands[i].IsStatic = false; 
    _sands[i].Restitution = 0.1f; 
    _sands[i].Friction = 0.1f; 
    _sands[i].Position = new Vector2(1.8f + i * 0.2f, 2.2f); 
} 

_sand = new Sprite(
    ScreenManager.Assets.TextureFromShape(
     _sands[0].FixtureList[0].Shape, 
     MaterialType.Dots, 
     Color.SandyBrown, 0.8f 
    )); 

. 그러나 그렇지 않습니다. 입자가 화면에 나타나면 중력 때문에 떨어지며 아무런 문제없이 내 미로 경계를 통과하고 정체가있는 바닥에서 입자가 멈 춥니 다. 왜 그런가요? 미로에서 입자가 멈추지 않는 이유는 무엇입니까?

컨텍스트를 들어, 내 앞의 질문을 참조하십시오
Farseer - Particles doesn´t move/bounce accord to borders

+0

이 질문은 box2d와 관련이 없기 때문에 * box2d * 태그를 제거했습니다. 포트가 완전히 별개의 프로젝트 인 * farseer 엔진에만 관련이 있습니다. – JDB

답변

0

내가 파 시어와 ​​매우 유창하지 않다,하지만 다시는 우리의 'CollidesWith'속성을 사용했다는 동안 내가 프로젝트 A에서 기억 같은 고정

뭔가 :

fixture.CollisionFilter.CollidesWith = CollisionCategories.All; 

그렇지 않으면 코드 플렉스 프로젝트의 토론 게시판은 많은 정보를 제공 할 수 있습니다.

+0

나는 그것을 시도했지만 도움이되지 않았다. 나는 샘플을보고 그들로부터 나의 코드를 얻는다. 나는 수표를 시험해보고, 한 번 더 보일 것이다. 그러나 누군가 내가 나를 도울 수 있으면 그것은 좋을 것이다. 나는 내가 모든 것을 완벽하다고 생각한다. –

+0

내가 정확하게 기억한다면, 당신은 콜리 전 범주에 객체를 지정해야하며 미로의 조각들과 조각들에 대해서도 'CollidesWith'속성을 정의해야합니다. 이전 프로젝트 코드를 찾으려고 노력할 것입니다. 그래서 제가 여기서 당신을 도울 수 있습니다. –