Я использую LibGDX для любого из вас, кого это может затронуть, однако я пытаюсь создать базовую игру с космическим шутером, в которой игрок летает вокруг с помощью WASD Keys и смотрит в сторону мыши позиция (я уже сделал это, yay; D) Во всяком случае, моя проблема в том, что я не могу понять, как визуализировать пулю.Обновление и рендеринг пули
Вот мой класс пуля
public class Bullet extends Entity
{ частное Vector2 StartPosition, targetPosition, должность;
private float rotation;
private Sprite sprite;
private SpriteBatch batch;
public Bullet(Texture texture, Vector2 startPosition, float rotation, Vector2 targetPosition)
{
this.startPosition = startPosition;
this.targetPosition = targetPosition;
this.position = startPosition;
this.rotation = rotation;
this.sprite = new Sprite(texture);
this.batch = new SpriteBatch();
}
public void update()
{
}
}
я попытался реализовать Runnable и сделать это таким образом, однако вы не можете использовать несколько потоков, поскольку он не может найти экземпляр OpenGL или любой другой.
Цель состоит в том, чтобы сделать стрельбу из пули в направлении, в котором игрок сталкивается в то время. Итак, я бы создал новую пулю, как показано ниже:
new Bullet(new Texture("bullet.png"), new Vector2(getX(), getY()), getRotation(), new Vector2(mouseX(), mouseY());
Моя проблема еще раз - ее рендеринг. Я понятия не имею, что я здесь делаю.
Я попытался сделать это, создав цикл while (true) для обработки всей логики и чертежа для пули, это останется в одном потоке и позволит мне получить доступ к OpenGL, однако он мгновенно заморозил приложение. Я попытался добавить Thread.sleep() в цикле, но это ничего не делало, никаких идей? –
Попробуйте повторить один раз над пулями, а затем верните управление остальной части приложения, чтобы он не замерзал. – Sorin
Не совсем уверен, как это сделать. Мне нужно, чтобы пули постоянно обновлялись. Я собираюсь внедрять самонаводящиеся пули и т. Д., Поэтому мне придется постоянно выполнять логические проверки. Возможно, я не понимаю информацию, которую вы предоставляете мне, не могли бы вы показать это в psuedo? –