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座標上時,你不會因爲你的「形狀」而重置。有任何想法嗎?
我需要做的就是擺脫字符重置時留下的「形狀」。我無法以某種方式使用處理?或者它不能像那樣工作?對不起,我是Android編程新手。 – Josh
也許這可以幫助http://gamedev.stackexchange.com/questions/27113/what-is-the-proper-way-to-remove-a-box2d-body-from-the-world-in-libgdx – Nik