2015-01-28 1 views
0

나는 physicsbox2d 및 engine Extension으로 삼각형 바디를 만들었습니다. 내가이 삼각형의 몸에 얼굴이나 스프라이트를 추가 할 수 없습니다입니다 ..now는 하느님의 모습 ... 여기 당신은 몸을 바인드해야 advance.`나는 physicsbox2d andengine Extention으로 삼각형 바디를 만들었습니다. 바디에 페이스 또는 스프라이트를 추가하는 방법

List<Vector2> UniqueBodyVertices = new ArrayList<Vector2>(); 
     UniqueBodyVertices.addAll((List<Vector2>) ListUtils.toList(
     new Vector2[] { 
     new Vector2(-93f,-75f), 
     new Vector2(-107f,-14f), 
     new Vector2(-101f,41f), 
     new Vector2(-71f,74f), 
     new Vector2(69f,74f), 
     new Vector2(98f,41f), 
     new Vector2(104f,-14f), 
     new Vector2(51f,-75f), 
     new Vector2(79f,9f), 
     new Vector2(43f,34f), 
     new Vector2(-46f,34f), 
     new Vector2(-80f,9f) 
     })); 
     List<Vector2> UniqueBodyVerticesTriangulated = new EarClippingTriangulator().computeTriangles(UniqueBodyVertices); 


     float[] MeshTriangles = 
       new float[UniqueBodyVerticesTriangulated.size() * 3]; 
       for(int i = 0; i < UniqueBodyVerticesTriangulated.size(); i++) { 
       MeshTriangles[i*3] = UniqueBodyVerticesTriangulated.get(i).x; 
       MeshTriangles[i*3+1] = UniqueBodyVerticesTriangulated.get(i).y; 
       UniqueBodyVerticesTriangulated.get(i). 
       mul(1/PhysicsConstants.PIXEL_TO_METER_RATIO_DEFAULT); 
       } 
       Mesh UniqueBodyMesh = new Mesh(400f, 260f, MeshTriangles, 
       UniqueBodyVerticesTriangulated.size(), DrawMode.TRIANGLES, 
       this.getVertexBufferObjectManager()); 
       UniqueBodyMesh.setColor(1f, 0f, 0f); 
       scene.attachChild(UniqueBodyMesh); 

       FixtureDef uniqueBodyFixtureDef = 
         PhysicsFactory.createFixtureDef(20f, 0.5f, 0.5f); 

         Body uniqueBody = PhysicsFactory.createTrianglulatedBody(
         mphysicworld, UniqueBodyMesh ,UniqueBodyVerticesTriangulated, 
         BodyType.DynamicBody, uniqueBodyFixtureDef); 

`

답변

0

고유 바디를 UniqueBodyMesh (스프라이트 같은 엔티티)와 연결 하시겠습니까? 코드를 판단하면 몸을 덮는 스프라이트를 볼 수 있어야합니다. 그러나 그것은 연락이 끊어진 후에 연결되지 않으므로 신체와 함께 움직이지 않습니다. 당신이 추가로 필요합니다

mphysicsWorld.registerPhysicsConnector(new PhysicsConnector(UniqueBodyMesh, uniqueBody, true, true)); 
+0

이이었다 정말 내가 무엇을 seraching했다 ..하지만 잘 #lukasz 통해 UR .. [http://www.andengine.org/forums/tutorials/understanding-textures-texturesources-textureregions- t546.html] – zek

0

에서 코드 ..thankx입니다 물리 커넥터를 사용하여 원하는 스프라이트에 연결 한 다음 물리 연결자를 물리 세계 객체에 등록합니다. 예를 들어 :

physicsWorld.registerPhysicsConnector(new PhysicsConnector(sprite, body, true, true)); 

는 추가 정보를 (특히 아래 "만들기 몸을 이동"부분) this tutorial에서보세요.

관련 문제