2012-06-10 78 views
0

這裏是我的一塊我的「公共無效創建()」:如何擺脫不必要的形狀

overallTexture = new Texture(Gdx.files.internal("data/sprite1.png")); 
overallTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear); 
jumperSprite = new Sprite(overallTexture, 0, 0, 32, 37); 
spriteBatch = new SpriteBatch(); 
world = new World(new Vector2(0.0f, -10.0f), true); 

    BodyDef jumperBodyDef = new BodyDef(); 
    jumperBodyDef.type = BodyDef.BodyType.DynamicBody; 
    jumperBodyDef.position.set(1.0f, 3.0f); 

    jumper = world.createBody(jumperBodyDef); 
    PolygonShape jumperShape = new PolygonShape(); 
    jumperShape.setAsBox(jumperSprite.getWidth()/(2 * PIXELS_PER_METER), 
    jumperSprite.getHeight()/(2 * PIXELS_PER_METER)); 

    jumper.setFixedRotation(true); 

    FixtureDef jumperFixtureDef = new FixtureDef(); 
    jumperFixtureDef.shape = jumperShape; 
    jumperFixtureDef.density = 1.0f; 
    jumperFixtureDef.friction = 5.0f; 

這裏是「)公共無效渲染(」我的一部分

if (jumper.getPosition().y < 0.4) { 

     overallTexture = new  Texture(Gdx.files.internal("data/sprite1.png")); 
     overallTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear); 
     jumperSprite = new Sprite(overallTexture, 0, 0, 32, 37); 
     spriteBatch = new SpriteBatch(); 
     BodyDef jumperBodyDef = new BodyDef(); 
     jumperBodyDef.type = BodyDef.BodyType.DynamicBody; 
     jumperBodyDef.position.set(1.0f, 3.0f); 

     jumper = world.createBody(jumperBodyDef); 
     PolygonShape jumperShape = new PolygonShape(); 
     jumperShape.setAsBox(jumperSprite.getWidth()/(2 * PIXELS_PER_METER), 
     jumperSprite.getHeight()/(2 * PIXELS_PER_METER)); 
     jumper.setFixedRotation(true); 

     FixtureDef jumperFixtureDef = new FixtureDef(); 
     jumperFixtureDef.shape = jumperShape; 
     jumperFixtureDef.density = 1.0f; 
     jumperFixtureDef.friction = 5.0f; 

     jumper.createFixture(jumperFixtureDef); 
     jumperShape.dispose(); 


    } 

現在會發生什麼情況:只要角色達到某個Y座標,就會在起點重置他。錯誤在於,每當發生這種情況時,它重置他的Y座標,他的「形狀」仍然在那裏充當一個盒子。所以當你再次落在Y座標上時,你不會因爲你的「形狀」而重置。有任何想法嗎?

回答

0

AndEngine有一個叫物理連接器的東西,因爲AndEngine使用LibGDX的Box2D實現,所以在LibGDX中也可能存在一個registerPhysicsConnector()方法。

+0

我需要做的就是擺脫字符重置時留下的「形狀」。我無法以某種方式使用處理?或者它不能像那樣工作?對不起,我是Android編程新手。 – Josh

+0

也許這可以幫助http://gamedev.stackexchange.com/questions/27113/what-is-the-proper-way-to-remove-a-box2d-body-from-the-world-in-libgdx – Nik