我正在製作一款2D戰鬥遊戲,其中包括一架戰鬥機,用於對付太空飛船的導彈,我希望飛船在玩家位置的功能中旋轉,以便他們總是面對玩家頭部」。玩家可以在y和x方向上自由移動。 玩家和宇宙飛船有一個Vector2的pos變量,對應於他們的實際位置。 任何幫助,將不勝感激。旋轉玩家位置功能的紋理
這是我(現在的工作)代碼:
public void render(SpriteBatch sb) {
Vector2 temp = new Vector2();
float angle = temp.set(entityManager.getPlayer().pos).sub(pos).angle();
TextureRegion region = new TextureRegion(texture);
sb.draw(region, pos.x, pos.y, 0, 0, texture.getWidth(), texture.getHeight(), 1.0f, 1.0f,angle+90);
}
敵人飛船旋轉,但他們不總是面向玩家:
我該如何應用角度來做旋轉? – MMrj
首先你不應該在每個render()調用中實例化Sprite。創建一次,並分別保存在遊戲中的每個單位。 您可以將一些轉換參數應用於每個Sprite。像旋轉,縮放...然後,只需調用spirte.draw(sb) – Metaphore
以及我實際上沒有使用Sprites,每個實體都有一個Vector2 pos和紋理,有沒有什麼方法可以做到這一點而不使用sprite? – MMrj