[英]Box2d in Andengine - attaching child bodies - is it possible
我對Andengine Box2d Extension有問題。
我有2個矩形: base和fuelStation 。
加油站是基地的孩子。 當我使用setTransform方法旋轉底座時, fuelStation sprite也會旋轉,但物體保持在相同位置。
base = new Rectangle(CAMERA_WIDTH / 2, CAMERA_HEIGHT / 2 - 200, 200, 200, vbom);
fuelStation = new Rectangle(base.getWidth() / 2, 0, 500, 10, vbom);
this.attachChild(base);
base.attachChild(fuelStation);
final FixtureDef objectFixtureDef1 = PhysicsFactory.createFixtureDef(1, 0.0f, 0.5f);
final FixtureDef objectFixtureDef2 = PhysicsFactory.createFixtureDef(1, 0.0f, 0.5f);
baseBody = PhysicsFactory.createBoxBody(physicsWorld, base, BodyType.StaticBody, objectFixtureDef1);
baseBody.setUserData("base");
fuelStationBody = PhysicsFactory.createBoxBody(physicsWorld, fuelStation, BodyType.KinematicBody, objectFixtureDef2);
fuelStationBody.setUserData("station");
physicsWorld.registerPhysicsConnector(new PhysicsConnector(base, baseBody, true, true));
// physicsWorld.registerPhysicsConnector(new PhysicsConnector(fuelStation, fuelStationBody,
// true, true));
當我從最后一行刪除注釋時,精靈位置會發生變化,但仍無法正常工作(主體保持靜止)。
如何正確連接這兩個主體?
您必須記住,您對實體(子畫面)進行的所有轉換只會影響“視覺”內容,換句話說,永遠不會影響物理體。 如果要影響實體和物體,則只能通過對物理物體施加力來實現,並且由於它們與PhysicsConnector
連接,所以這些轉換將同時影響物理物體和子畫面(“視覺物體”) 。
因此,將fuelStating作為base的子代不會有任何影響。 要影響兩個實體,您需要在它們之間建立“連接”,並且可以通過創建將兩個實體連接在一起的關節來實現這一點: http : //www.iforce2d.net/b2dtut/joints-overview
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.