将PhysicsWorld应用于GenericPool中的每个对象 - Andengine

时间:2015-08-14 07:58:31

标签: android andengine

我有GenericPool类(创建所需数量的精灵然后我一次又一次地重复使用这些精灵)和PhysicsWorld类(用于将物理应用于精灵像重力摩擦等)。

PhysicsWorld类适用于单个Sprite,GenericPool可以正常工作,而不会将physicsWorld应用于其Sprite。当我想将PhysicsWorld应用于GenericPool精灵的所有对象时,会出现此问题。

请指导我如何将PhysicsWorld应用于genericpool中的所有对象..

public class BubblePool<Sprite>{

TextureRegion bubbleTexture

BubblePool(TextureRegion mTextureRegion)

this.bubbleTexture=mTextureRegion;

}

protected onAllocatePoolItem(){

return new Sprite(0,0,bubbleTexture,....);


}

另一类PhysicsWorld

public class BubblePhysics{

//all method including FixtueDef and //body then PhysicsConnector etc
}

BubblePhysics类是单独的类与一个sprite工作正常..但现在我想将此类连接到BubblePool ..在BubblePool中新的sprite是在onAllocatePoolItem()方法中创建的我希望当sprite创建时我应该如何使用physicsworld ..

1 个答案:

答案 0 :(得分:0)

您可以尝试:

protected Sprite onAllocatePoolItem(PhysicsWorld physicsWorld){

Sprite sprite = new Sprite(0,0,bubbleTexture,....);
final FixtureDef objectFixtureDef = PhysicsFactory.createFixtureDef(1, 0.5f, 0.5f);
PhysicsFactory.createCircleBody(physicsWorld, sprite, BodyType.DynamicBody, objectFixtureDef);
physicsWorld.registerPhysicsConnector(new PhysicsConnector(sprite, body, true, true));

return sprite;
}

我会从这里开始。如果有效,请告诉我。