使用LibGDX为Box2d主体着色的最佳方法
我刚开始玩一个非常简单的游戏,我不想为每一个身体创建精灵图像,我只需要给它们涂上不同的颜色 根据这条线索,ShaperEnder似乎不是一个很好的主意,它更适合开发: 此外,色调只能用于需要图像的纹理: 这是我试图给身体涂上颜色的一个:使用LibGDX为Box2d主体着色的最佳方法,libgdx,box2d,Libgdx,Box2d,我刚开始玩一个非常简单的游戏,我不想为每一个身体创建精灵图像,我只需要给它们涂上不同的颜色 根据这条线索,ShaperEnder似乎不是一个很好的主意,它更适合开发: 此外,色调只能用于需要图像的纹理: 这是我试图给身体涂上颜色的一个: //Dynamic Body bodyDef = new BodyDef(); //bodyDef.gravityScale bodyDef.type = BodyType.DynamicBody;
//Dynamic Body
bodyDef = new BodyDef();
//bodyDef.gravityScale
bodyDef.type = BodyType.DynamicBody;
bodyDef.position.set(camera.viewportWidth / 2, camera.viewportHeight / 2);
body = world.createBody(bodyDef);
CircleShape dynamicCircle = new CircleShape();
dynamicCircle.setRadius(10f);
FixtureDef fixtureDef = new FixtureDef();
fixtureDef.shape = dynamicCircle;
fixtureDef.density = 2.5f;
fixtureDef.friction = 0.25f;
fixtureDef.restitution = 0.75f;
body.createFixture(fixtureDef);
有什么想法吗?我建议不要直接使用精灵,而是转向scene2d及其演员。libgdxwiki已经完美地描述了如何做到这一点 您将创建一个类来扩展Actor(或Group)并渲染所需的纹理 创建box2d实体时,可以通过
setUserData(actor)将实体的用户数据设置为actor代码>
现在,在使用step()模拟box2d世界之后,您只需迭代世界中的实体,通过getUserData()
访问参与者,并将参与者的位置和旋转更新为实体的当前值。wiki已包含此操作所需的完整循环
希望能有帮助……:) 您可以使用ShaperEnder中的代码来确定它是如何绘制形状的,然后根据您的需要对其进行优化。