2012-11-05 50 views
2

大家好,我正在試圖讓我的遊戲中出現一個精靈。我在網上搜索了所有內容,並且我這樣做了:AndEngine引力不起作用

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() {} 
    }); 

但是,當我啓動遊戲時,精靈不會掉下來!爲什麼?請我絕望!

回答

3

雪碧不使用物理,但身體。您應該使用物理連接器(與你的身體連接你的精靈):

定身變量:

Body yourBody = PhysicsFactory.createBoxBody(mPhysicsWorld, main, BodyType.DynamicBody, objectFixtureDef); 

,然後使用這個物理連接器:

mPhysicsWorld.registerPhysicsConnector(new PhysicsConnector(main, yourBody, true, true)); 

對不起,我的英語。

+1

我編輯了我的代碼,但精靈主要還沒有落下!!! Aaaaaah我瘋了 –

+1

https://github.com/nicolasgramlich/AndEngineExamples/blob/GLES2/src/org/andengine/examples/PhysicsExample.java - 看這裏,這是基本的例子。 – Aleksandrs

+1

我使用GLES1版本:)謝謝你的幫助我終於找到了解釋如何做到這一點的帖子..查看我編輯的帖子 –