大家好,我正在尝试让 Sprite 在我的游戏中掉落。我在网上搜索了一下,我这样做了:
scene = new Scene();
main = new Sprite(sX, sY, mainTextureRegion);
main.setScale(1);
main.setFlippedHorizontal(true);
scene.attachChild(main);
mPhysicsWorld = new PhysicsWorld(new Vector2(0, SensorManager.GRAVITY_EARTH), false);
final FixtureDef objectFixtureDef = PhysicsFactory.createFixtureDef(1, 0.5f, 0.5f);
final Body body = PhysicsFactory.createBoxBody(mPhysicsWorld, main, BodyType.DynamicBody, objectFixtureDef);
mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(main, body, true, true));
final Vector2 gravity = new Vector2(0, 5f);
mPhysicsWorld.setGravity(gravity);
scene.registerUpdateHandler(new IUpdateHandler() {
@Override
public void onUpdate(float pSecondsElapsed) {
mPhysicsWorld.onUpdate(pSecondsElapsed);
}
@Override
public void reset() {}
});
但是当我启动游戏时 Sprite 不会掉落!为什么 ??拜托,我很绝望!!
最佳答案
Sprite 不使用物理原理,但 body 却使用物理原理。您应该使用物理连接器(它将您的 Sprite 与您的 body 连接起来):
设置主体变量:
Body yourBody = PhysicsFactory.createBoxBody(mPhysicsWorld, main, BodyType.DynamicBody, objectFixtureDef);
然后使用这个物理连接器:
mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(main, yourBody, true, true));
抱歉我的英语不好。
关于android - AndEngine重力不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13224497/