andengine applyLinearImpulse不工作

时间:2014-03-18 23:37:53

标签: android andengine physics

我有一个动态的身体。点击屏幕我尝试通过对身体应用LinearImpulse来跳跃身体,但是在执行后它没有生效。没什么变化 这是我的点击屏幕方法:

@Override
public boolean onSceneTouchEvent(Scene pScene, TouchEvent pSceneTouchEvent) {
     if (pSceneTouchEvent.isActionDown()){  
Debug.d("jump test");   
                int index = mPlayer.getCurrentTileIndex()-1;        
                mPlayer.setCurrentTileIndex(Math.abs(index));
                //mPlayerBody.applyForce(new Vector2(10, -10), mPlayerBody.getWorldCenter());
                mPlayerBody.applyLinearImpulse(99990, -999999, mPlayerBody.getPosition().x, 
                                mPlayerBody.getPosition().y);


    //mPlayerBody.applyLinearImpulse(10, 10, mPlayerBody.getPosition().x, mPlayerBody.getPosition().y);
    }
    return false;
}

这就是我为身体创造物理的方法:

final FixtureDef PLAYER_FIX = PhysicsFactory.createFixtureDef(0,
            0, 1, false);
    mPlayerBody = PhysicsFactory.createBoxBody(physicsWorld, mPlayer,
            BodyType.DynamicBody, PLAYER_FIX);
    mScene.attachChild(mPlayer);
    physicsWorld.registerPhysicsConnector(new PhysicsConnector(mPlayer,
            mPlayerBody, true, false));

在创建场景我使用:

physicsWorld = new PhysicsWorld(new Vector2( 0, SensorManager.GRAVITY_EARTH), false);

什么错了?为什么线性冲动不适用?我也尝试使用apply LinearVelocity,但这也没有效果。

请注意:抱歉我的英文

1 个答案:

答案 0 :(得分:0)

PhysicsFactory.createFixtureDef(平面密度,浮动弹性,浮动摩擦力) 如果密度= 0,则身体的质量为0.