我使用LibGDX爲你可能會關注的任何人,但是我試圖創建一個基本的太空射擊遊戲,玩家在其中圍繞使用WASD Keys,並面向鼠標位置(我已經完成了這個,耶; 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
不完全確定如何去做這件事。我需要不斷更新子彈。我將要實施歸巢子彈等,所以我會經常需要做邏輯檢查。 也許我不理解你提供給我的信息,你能不能在僞顯示這個? –