Я не хочу делать игру с бесконечной боковой прокруткой, используя libgdx и box2d, для этого мне придется создавать куски. В отличие от того, что было раньше, когда я имел дело только со спрайтами, я без проблем порождал спрайты бесконечное количество раз, объединяя и добавляя их в ArrayList и управляя ими с помощью итератора. Но теперь я использую статические тела, так как мой ландшафт и объединение не могут быть выполнены с телами, так что можно просто постоянно создавать новое тело и удалять его, когда оно не нужно. Это замедлит мою игру? если да, то как лучше? благодаря.
Обновление:
это мой текущий код, который не будет работать, потому что объединение не применимо к телам box2d. сначала я создал BodyDef и Body отдельными методами:
public BodyDef createDef(){
BodyDef def = new BodyDef();
def.type = BodyDef.BodyType.StaticBody;
def.fixedRotation = true;
def.position.set(6, 6);
return(def);
}
public Body createBody(){
Body body = world.createBody(createDef());
PolygonShape shape = new PolygonShape();
shape.setAsBox(1, 1);
body.createFixture(shape, 1.0f);
shape.dispose();
return(body);
}
public void createPlatform(){
Body platform = Pools.obtain(Body.class); //then use pooling
platform = createBody(); //here I set the value equal to the return value of createBody() method
bodies.add(platform);//adding platform to the ArrayList
}
Теперь моя новая идея состоит в том, чтобы просто создать новое тело, вызвав этот метод (создание тел никогда не закончится, потому что я пытаюсь сделать бесконечную игру с боковой прокруткой).
public void createBody(){
BodyDef def = new BodyDef();
def.type = BodyDef.BodyType.StaticBody;
def.postion.set(position.x, position.y);
PolygonShape shape = new PolygonShape();
shape.setAsBox(size.x, size.y);
myBody = world.createBody(def, 1.0f);
shape.dispose();
} `//I'm still working on how to remove bodies`