【发布时间】:2015-09-19 18:15:30
【问题描述】:
我有一个使用 .setasbox 创建的多边形的身体,但是当我运行我的游戏时,这个盒子比我的精灵大一点。 我知道 setasbox 使用半高和半宽,我使用缩放常数将米转换为像素,并且我知道精灵在左下角也有轴的原点。尽管如此,我仍然有一个宽度比精灵稍大的盒子,而且这个间隙是相同的,但是我改变了盒子的大小......
这是我用来创建盒子的代码(160 是将米缩放为像素的常数):
public Block(World w, float halfWidth, float halfHeight, Vector2 position, Texture tex){
world = w;
bodyd = new BodyDef();
bodyd.type = BodyDef.BodyType.KinematicBody;
bodyd.gravityScale = 0;
shape = new PolygonShape();
shape.setAsBox(halfWidth, halfHeight);
fixtured = new FixtureDef();
fixtured.shape = shape;
fixtured.density = DENS;
fixtured.friction = FRIC;
fixtured.restitution = REST;
bodyd.position.set(new Vector2(position.x, position.y));
body = world.createBody(bodyd);
fixture = body.createFixture(fixtured);
body.setUserData(this);
texture = tex;
sprite = new Sprite(texture);
sprite.setSize(halfWidth * 2 * 160, halfHeight*2*160);
sprite.setPosition((body.getPosition().x - halfWidth) * 160, (body.getPosition().y - halfHeight) * 160);
}
【问题讨论】:
-
请附上创建盒子的截图和代码 - 你的精灵的尺寸是多少?
-
我刚刚附上了我的代码
标签: android libgdx sprite box2d shape