2014-09-17 5 views
0

타원형 (2D)을 드래그하여 변형 가능합니다. 고무 또는 젤리처럼 탄성이있어 다른 강체와 충돌하여 튀어 오를 수 있습니다. 이제 타원을 드래그하여 모양을 변경할 수 있습니다.box2D + LiquidFun이 젤리 효과를 실현했습니다.

내가 직면 한 문제는 타원형이 내가 원하는 방식으로 변형되지 않는다는 것입니다. 원하는 효과는 사용자가 타원형을 탭할 때 타원형에 한 점이 있고 사용자가 타원형을 끌면 더 길고 더 얇아지게됩니다 (공의 전체 크기는 변경되지 않음). 타원은 이것이 발생할 때 초기 위치에 있어야합니다.

현재 모양이 늘어나면서 타원이 특정 위치에 고정되는 방법을 찾지 못했습니다.

LiquidFun에서 이러한 효과를 얻을 수있는 방법이 있습니까? 그렇다면 어떻게해야하는지에 대한 조언이 있습니까? 그렇지 않다면 나는 다른 제안에 대해 정말로 감사 할 것입니다.

+0

이것이 왜 두 번 downvoted되었는지 잘 모르겠습니다. 보트 타기. – aendrew

답변

1

예. 그것은 견고한 탄성 입자 군입니다.

http://google.github.io/liquidfun/

을 행동에 그것을보고 탄성 입자를 선택하십시오. 샘플 코드는 여기에 있습니다 :

https://github.com/google/liquidfun/blob/master/liquidfun/Box2D/Testbed/Tests/ElasticParticles.h

는 입자 그룹은 다음과 같습니다 만들기 :

 b2CircleShape shape; 
     shape.m_p.Set(-1, 3); 
     shape.m_radius = 0.5f; 
     b2ParticleGroupDef pd; 
     pd.flags = b2_elasticParticle; 
     pd.groupFlags = b2_solidParticleGroup; 
     pd.shape = &shape; 
     pd.color.Set(0, 255, 0, 255); 
     m_particleSystem->CreateParticleGroup(pd); 

당신이 원이 아닌 Box2D의에 타원형을해야 할 것입니다. AFAIK, Box2D는 타원을 핵심 모양으로 지원하지 않으므로 가장자리가 많은 b2PolygonShape로 대략적으로 접근해야합니다. 어쨌든 입자로 "래스터 화 (rasterized)"되기 때문에 전체 가장자리 수는별로 중요하지 않습니다.

+0

답장을 보내 주셔서 감사합니다. 타원을 만들었으므로 타원을 드래그하여 모양을 변경할 수 있습니다. 문제는 타원이 내가 원하는 방식으로 변형되지 않는다는 것입니다. 자세한 내용은 내 질문에 대한 업데이트를 확인하십시오. 정말 고마워!! –