gpt4 book ai didi

android - Andengine 中的 Box2d - 附加子体 - 是否可能

转载 作者:行者123 更新时间:2023-11-30 02:18:17 25 4
gpt4 key购买 nike

我对 Andengine Box2d Extension 有疑问。

我有 2 个矩形:basefuelStation

fuelStation 是 base 的子项。当我使用 setTransform 方法旋转 base 时,fuelStation Sprite 也在旋转,但主体保持在相同位置。

Red - base, Cyan - child

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));

当我从最后一行中删除评论时 - Sprite 位置发生变化但仍然无法正常工作( body 静止不动)。

如何正确连接这两个主体?

最佳答案

您必须记住,您对实体( Sprite )所做的所有转换只会影响“视觉”内容,换句话说,永远不会影响物理实体。如果你想影响实体和 body ,你只能通过对物理 body 施加力来实现,因为它们与 PhysicsConnector 连接,这些转换将影响物理 body 和 Sprite (“视觉体”)。
因此,将 fuelStating 作为 base 的子项不会有任何影响。要影响两个物体,您需要在它们之间建立“连接”,您可以通过创建连接两个物体的关节来实现:http://www.iforce2d.net/b2dtut/joints-overview

希望对您有所帮助。

关于android - Andengine 中的 Box2d - 附加子体 - 是否可能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28934291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com