2010-08-31 67 views
0

希望我能清楚地描述我的情況是,每當我試圖把它描述給別人白板或筆和紙需要幾個嘗試:)約束一個後輪與前輪

我的計劃的一部分涉及對一個沿着軌道運行的小車,另一個小車在兩個輪子上運行。導軌是一條簡單的線條,它可以在曲線中上下滑動,也可以變平。要創建關卡,我使用CGPoint的NSMutableArray並將它們繪製到屏幕上。

我目前的碰撞檢測包括使用每個車輪x座標並將其與點x值的數組進行比較。當它在兩點之間的x值之間時,我可以使用漸變來發現它是否低於/低於該點的y值。當我使用X的明確值時,這工作正常。

所以問題來了。

首先,我有一個前輪,沿着這條線完美地擺動着正確的x和正確的y位置。我遇到的問題是在這個前輪後面創建一個後輪。後輪也完美地跟隨着線條,但它總是在前輪後面的X距離處,這被證明是不現實的,因爲當你在陡坡上下時,由於Y的差異,車輪之間的距離太大。

實施例:

ö.......ö

山實施例:

ö

........ö

x中的距離相同,Y的差值使得斜邊距離更大,並給人以輪子分開的印象。我需要將後輪約束到前輪,所以它是真實的(斜邊)距離總是相同的。我遇到的困難是,因爲這涉及到改變它的x位置,我無法控制它的碰撞檢測。

如果我開始上山,我必須改變它的速度落在前輪後面,所以我需要改變它的x值以保持車輪後面的相同真實距離,現在它是y值由於它最終落在地板上會是錯誤的。

破壞了我的大腦和辦公室幾天了,請幫忙嗎?

+0

這可能是一個很好的問題對於數學交換,如果你沒有在這裏得到一個。 http://math.stackexchange.com/聽起來這將是一個簡單的數學概念,可以做到這一點。 IE:cos(斜邊)?類似這樣的事情,不是改變Y,而是改變x:y – bradenkeith 2010-08-31 12:11:21

+0

的比率,這個問題只有在兩個輪子下面的梯度相同時才起作用。如果坡度很快,則會導致後輪位於山丘之上或之下 – user355622 2010-08-31 14:42:31

回答

0

將輪子保持相同距離的最簡單方法可能是將兩個輪子限制在軌道上。您可以爲NSMutableArray軌道定義第三個數字,即距離軌道原點的距離。你必須定義你自己的類而不是使用CGPoints類。

另一種可能性是使車輪中心跟隨軌道,但偏移量等於車輪半徑。每個車輪的中心使用軌道x和y座標,車輪接觸車道到車輪中心的線的角度以及車輪的半徑來計算,