в моей плите libgdx 2D прыжок и запуск игры Я хочу создавать тела каждую секунду в позиции моих пушек, но, насколько я знаю, каждую секунду стреляет только одна пушка. Может ли кто-нибудь помочь мне, как это исправить?Libgdx Box2D создает тела
Heres где я создаю свои пушки:
//create cannon bodies/fixtures
cannons = new Array<Cannon>();
for (MapObject object : map.getLayers().get(5).getObjects().getByType(RectangleMapObject.class)) {
recta = ((RectangleMapObject) object).getRectangle();
cannons.add(new Cannon(screen, recta.getX(), recta.getY()));
}
}
public float X() {
return recta.getX();
}
public float Y() {
return recta.getY();
}
Здесь я добавляю каноны (который работает для каждой позиции):
private Array<Bullet> bullets;
public Cannon(PlayScreen screen, float x, float y) {
super(screen, x, y);
setBounds(getX(), getY(), getWidth(), getHeight());
}
public Cannon() {
super();
}
@Override
protected void defineTrap() {
b2body = Body.addStatic(b2body, world, 0f, getX(), getY(), 32, x.CANNON_BIT, "cannon");
createBullet();
}
public void createBullet() {
bullets = new Array<Bullet>();
bullets.add(new Bullet(screen, getX(), getY()));
}
Здесь я добавляю первую пулю (что waoks тоже для всех пушек):
public Bullet(PlayScreen screen, float x, float y) {
super(screen, x, y);
setBounds(getX(), getY(), getWidth(), getHeight());
}
public Bullet() {
}
@Override
public void defineTrap() {
b2body = Body.addDynamic(b2body, world, 0f, getX(), getY(), 8, x.BULLET_BIT, "bullet");
b2body.setLinearVelocity(new Vector2(-1f, 0));
b2body.setGravityScale(0);
}
И здесь я хочу, чтобы каждый пушки стрелять, но только один делает (его мой визуализации mehtod):
if (TimeUtils.timeSinceNanos(startTime) > 1000000000) {
bullets = new Array<Bullet>();
bullets.add(new Bullet(this, creator.X(), creator.Y()));
startTime = TimeUtils.nanoTime();
}
Надеюсь, вы можете мне помочь!
Хорошо, я сделал это и повторно инициализировал mapobjects в методе визуализации. Спасибо за вашу помощь! – Tobls