Box2d libgdx 不接受 BodyType 作为参数
Box2d libgdx won't accept BodyType as parameter
我认为这几乎是不言自明的
http://image.prntscr.com/image/b699a17ac7954732b18b275689425227.png
http://image.prntscr.com/image/86fc8d49e513402bac04f57483fbbe04.png
对不起,我没有足够的声誉,无法直接上传图片。
@代码已添加
初始化方法中的代码
terrainBodyUp=createPhysicsObjectFromGraphics(terrainAbove,
new Vector2(terrainAbove.getRegionWidth()/2,480- terrainAbove.getRegionHeight()/2),
BodyDef.BodyType.StaticBody);
还有我的 createPhysicsObjectFromGraphics 方法
private Body createPhysicsObjectFromGraphics(TextureRegion region,
Vector2 position, BodyDef.BodyType bodyType) {
BodyDef boxBodyDef = new BodyDef();
boxBodyDef.type = bodyType;
boxBodyDef.position.x = position.x/BOX2D_TO_CAMERA_;
boxBodyDef.position.y = position.y/BOX2D_TO_CAMERA_;
Body boxBody = world.createBody(boxBodyDef);
PolygonShape boxPoly = new PolygonShape();
boxPoly.setAsBox(region.getRegionWidth()/(2*BOX2D_TO_CAMERA_),
region.getRegionHeight()/(2*BOX2D_TO_CAMERA_));
FixtureDef fixtureDef = new FixtureDef();
fixtureDef.shape = boxPoly;
fixtureDef.density=1;
fixtureDef.restitution=0.2f;
boxBody.createFixture(fixtureDef);
boxPoly.dispose();
boxBody.setUserData(region);
return boxBody;
}
不兼容的类型错误,因为 createPhysicsObjectFromGraphics 方法 return Body 并且您正在分配到 BodyDef.BodyType 类型的 terrainBodyUp 变量。
感谢@Abishek Aryan 为我指明了正确的方向。当我做 "replace all" 时,我不小心更改了数据类型,这给我带来了问题。因此,我没有使用 Body 作为数据类型,而是使用 BodyDef.BodyType
我认为这几乎是不言自明的
http://image.prntscr.com/image/b699a17ac7954732b18b275689425227.png http://image.prntscr.com/image/86fc8d49e513402bac04f57483fbbe04.png
对不起,我没有足够的声誉,无法直接上传图片。
@代码已添加
初始化方法中的代码
terrainBodyUp=createPhysicsObjectFromGraphics(terrainAbove,
new Vector2(terrainAbove.getRegionWidth()/2,480- terrainAbove.getRegionHeight()/2),
BodyDef.BodyType.StaticBody);
还有我的 createPhysicsObjectFromGraphics 方法
private Body createPhysicsObjectFromGraphics(TextureRegion region,
Vector2 position, BodyDef.BodyType bodyType) {
BodyDef boxBodyDef = new BodyDef();
boxBodyDef.type = bodyType;
boxBodyDef.position.x = position.x/BOX2D_TO_CAMERA_;
boxBodyDef.position.y = position.y/BOX2D_TO_CAMERA_;
Body boxBody = world.createBody(boxBodyDef);
PolygonShape boxPoly = new PolygonShape();
boxPoly.setAsBox(region.getRegionWidth()/(2*BOX2D_TO_CAMERA_),
region.getRegionHeight()/(2*BOX2D_TO_CAMERA_));
FixtureDef fixtureDef = new FixtureDef();
fixtureDef.shape = boxPoly;
fixtureDef.density=1;
fixtureDef.restitution=0.2f;
boxBody.createFixture(fixtureDef);
boxPoly.dispose();
boxBody.setUserData(region);
return boxBody;
}
不兼容的类型错误,因为 createPhysicsObjectFromGraphics 方法 return Body 并且您正在分配到 BodyDef.BodyType 类型的 terrainBodyUp 变量。
感谢@Abishek Aryan 为我指明了正确的方向。当我做 "replace all" 时,我不小心更改了数据类型,这给我带来了问题。因此,我没有使用 Body 作为数据类型,而是使用 BodyDef.BodyType