0
int amoumt = 10;
int i = 1;
while (i < amoumt+1)
{
box(1);//body
i++;
}
如果我使用这个方法,我会得到9个身体胜过一个精灵和一个没有精灵的身体。 但我的魔杖精灵上所有的人都Libgdx有一个没有雪碧的身体
在渲染方法,对绘制精灵每个体:
batch.begin();
world.getBodies(worldBodies);
for (Body body : worldBodies) {
if (body.getUserData() instanceof Sprite) {
Sprite sprite = (Sprite) body.getUserData();
Vector2 position = body.getPosition();
sprite.setPosition(position.x - sprite.getWidth()/2,position.y - sprite.getHeight()/2);
sprite.setRotation(body.getAngle() * MathUtils.radiansToDegrees);
sprite.draw(batch);
}
}
batch.end();
}
身体:
private Body box(float a)
{
BodyDef bodyDef = new BodyDef();
bodyDef.position.set(0,0);
bodyDef.type = BodyType.DynamicBody;
PolygonShape polygonShape=new PolygonShape();
polygonShape.setAsBox(a,a);
FixtureDef fixtureDef = new FixtureDef();
fixtureDef.shape=polygonShape;
fixtureDef.density=2;
fixtureDef.restitution=0.5f;
fixtureDef.friction=0.5f;
Body box=world.createBody(bodyDef);
box.createFixture(fixtureDef);
box.setUserData(sprite);
sprite = new Sprite(new Texture("android.jpg"));
sprite.setSize(a*2,a*2);
sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
worldBodies = new Array<Body>();
return box;
}
请包含更多的源代码来帮助解释你的box()方法的作用。如果这是您创建“身体”的地方,那么很可能出现问题所在。另外,你使用Box2D吗? – Samich
@Samich我编辑了更多信息的帖子 –