對於我和朋友創建的遊戲,我們正在製作雷達。我們已經制定了一個基本的雷達,就是說所有的東西都顯示在適當的位置,但是我們正在試圖增加雷達的旋轉。這種旋轉基於當地球員的角度,從0度開始直接朝北,順時針旋轉360度直到再次爲北。在畫布中圍繞原點旋轉一個點
我想知道如何從本地玩家角度旋轉畫布上的所有點(這些可以是其他玩家,物品等)。我們正試圖讓玩家在前進的同時,也可以直接在雷達上移動。無論旋轉的程度如何,玩家應該始終直接向前走向雷達「上」。我試着做基本的旋轉,像這樣給每個玩家: var baseX = x - localX,baseY =(canvas.height-y) - localY; var localAngle = toRadians(players [0] .rotation);
var newX = baseX * Math.cos(localAngle) - baseY * Math.sin(localAngle);
var newY = baseX * Math.sin(localAngle) + baseY * Math.cos(localAngle);
newX += localX;
newY += localY;
問題是,我並不總是要「上」雷達,它取決於我在哪裏尋找。謝謝。
歡迎來到StackOverflow!爲了幫助我們解決您的代碼問題,您需要實際**顯示**我們的代碼。請更新您的問題,以便在[** minimal,complete,and verifiable example **](http://stackoverflow.com/help/mcve)中顯示所有**相關代碼**。有關詳細信息,請參閱有關[**如何提出良好問題**](http://stackoverflow.com/help/how-to-ask)的幫助文章,並參加該網站的[**遊覽**](http://stackoverflow.com/tour :) :) –
加入了我所嘗試的,但是,我並不確定如何去做我所要求的,因此提供代碼有點困難。 –