2013-08-28 19 views
0

我正在使用屏幕/虛擬操縱桿進行遊戲。它自我工作的操縱桿很好。C# - 使用轉向操縱桿時的變速

我要的是當你把操縱桿,一顆子彈在那個方向發射。我也得到了這個工作。現在,當操縱桿不在邊緣/半徑處時拍攝子彈時會出現問題。

當操縱桿處於邊緣/半徑,以最大速度子彈的舉動,正是我想要的。但是,當操縱桿位於半徑和操縱桿中心之間的某個位置時,子彈移動得更慢。這是合乎邏輯的,因爲弧度和東西。

但這不是我想要的。應該發生的是子彈總是以最快的速度移動。

有誰知道這可以實現?我完全停留在此。

謝謝!

編輯:因爲我仍然不明白這一點,基本上我想要的是我有一個圓弧內的弧度點,我想獲得該點在圓的邊緣的位置。

所以我們可以說我有這個Vector2弧度。

Vector2(-0.3, 0.3); 

和圓的半徑是40

從圓到Vector2點中心的長度將propably是某處大約

radius = 40 * 0.3 = 12 

現在會是什麼Vector2點當長度是40時?

我似乎無法弄清楚這一點。三角法並不是我最強烈的觀點。

+2

把速度限制到最大速度,你可以從中心點的線的大小找到這個我想象的很難說,很難說沒有代碼 – Sayse

+0

我明白你的想法,但我現在想到如何做到這一點。我添加了一些信息,你可以再看看嗎? – DijkeMark

+1

幅值是畢達哥拉斯 - x的平方差加上y的平方差的平方根,很抱歉難以在手機上輸入 – Sayse

回答

0

我修好了!我只乘以一個很大數量的操縱桿的localPosition,以使localPosition落在半徑之外。然後我使用clampMagnitude來獲取它在半徑的邊緣。現在我得到正確的行爲。