Libgdx精灵位于b2body

时间:2016-12-04 19:21:48

标签: java libgdx box2d

我已经编写了一些代码,用于将精灵的位置更新到其对应的box 2d body的位置。这是一个指向gif的链接,它显示了程序在运行时的状态:

enter image description here

灰色机器人精灵用于连接较大的圆圈,而黑色蝙蝠精灵则用于连接较大的圆圈。这是我在每个类的update()方法中使用的代码行,用于在程序运行时设置sprite的位置:

setPosition(b2body.getPosition().x*RoboiGame.PPM -getWidth()/2, 64);

现在已经有几天了,似乎无法在任何类似问题上找到解决方案。

public void defineRoboi(){ 
BodyDef bdef = new BodyDef();
bdef.position.set(960/RoboiGame.PPM,64/RoboiGame.PPM);
bdef.type = BodyDef.BodyType.DynamicBody;
b2body = world.createBody(bdef);
FixtureDef fdef = new FixtureDef();
CircleShape shape = new CircleShape();
shape.setRadius(10/RoboiGame.PPM);
fdef.shape = shape;
b2body.createFixture(fdef);
fdef.filter.categoryBits = RoboiGame.ROBOI_BIT;
fdef.filter.maskBits = RoboiGame.GROUND_BIT;}

这是我创建b2body的定义方法。我的PPM值是100。

这是我的玩家类,名为'Roboi':https://pastebin.com/mhsmssZx

这是主要的游戏类: https://pastebin.com/SpqcXvBp

这是PlayScreen类: https://pastebin.com/eqSS7CdA

0 个答案:

没有答案