2012-06-10 69 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