【发布时间】:2017-06-21 16:05:30
【问题描述】:
美好的一天!
我需要有关 Libgdx 项目的帮助。 我想要的是删除一个图块,它位于我的图形层(第 0 层)中。
这是我目前得到的:
if(object1.getUserData() != null && object1.getUserData() == "polyblock"){
polyblock1 = true;
System.out.println("PLAYER 1");
}else if(object1.getUserData() != null && object1.getUserData() == "redcoin" || object1.getUserData() == "greencoin" || object1.getUserData() == "bluecoin" ){
B2dObjectGetter.getCell(object1.getUserData() == "redcoin" ? 3 : object1.getUserData() == "greencoin" ? 4: 5).setTile(null);
}
硬币体和 getCells 方法:
for (int i = 3; i <= 5; i++){
for (MapObject obj : map.getLayers().get(i).getObjects().getByType(EllipseMapObject.class)) {
Ellipse ellipse = ((EllipseMapObject) obj).getEllipse();
bdef.type = BodyDef.BodyType.StaticBody;
bdef.position.set((ellipse.x + ellipse.width / 2) / GameJLibGDX.PPM, (ellipse.y + ellipse.height / 2) / GameJLibGDX.PPM);
CircleShape shape = new CircleShape();
coinbodies[i] = world.createBody(bdef);
shape.setRadius(ellipse.width / 2 / GameJLibGDX.PPM);
fixdef.shape = shape;
coinbodies[i].createFixture(fixdef).setUserData(i == 3 ? "redcoin" : i == 4 ? "greencoin" : "bluecoin");
}
}
}
public static TiledMapTileLayer.Cell getCell(int i){
TiledMapTileLayer layer = (TiledMapTileLayer) map.getLayers().get(0);
System.out.println(coinbodies[i].getFixtureList());
return layer.getCell((int)(coinbodies[i].getPosition().x * GameJLibGDX.PPM / 128),(int)(coinbodies[i].getPosition().y*GameJLibGDX.PPM / 128));
}
除了一件事之外,它似乎工作得很好:
蓝色硬币被击中:
The tiles of the other two coins move instead of disappearing like the blue one
绿色硬币被击中:
The green coin is this appearing but the red coin tile still switches
红币被击中: 不能发布超过两张图片:(。 红币正在消失,一切都很好。但前提是我一个接一个地打他们。所以我的意思是按顺序:Redcoin,Greencoin,Bluecoin
我注意到一些非常奇怪的事情:
As normal i hit it and it moved so its still bugged
但是:
感谢您的宝贵时间!
【问题讨论】: