簡體   English   中英

Andengine中的Box2d-附加兒童屍體-是否可能

[英]Box2d in Andengine - attaching child bodies - is it possible

我對Andengine Box2d Extension有問題。

我有2個矩形: basefuelStation

加油站是基地的孩子。 當我使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM