android - AndEngine重力不起作用

标签 android andengine gravity

大家好,我正在尝试让 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/

相关文章:

python - Pygame - 重力法

java - 在字符串数组中添加数字 - android

android - 如何在 Android 中手动测试 In App Update

android - 加速度计在所有设备上都无法正常工作

javascript - Canvas 中的重力/跳球,javascript

java slick2D 模拟重力跳跃

android - 在 Cordova 中平移音频(仅从左/右耳机播放)

android - Facebook 的登录按钮上的 setReadPermissions() 已弃用 - 改用什么?

android - 如何显示具有双色背景的文本?

android - 我的应用程序总是显示 "Hello World"