2010-05-14 126 views
4

這是pygame的1.9 Python的2.6 ..動畫pygame的精靈

這裏是什麼,目前正在我的「遊戲」抽給一些上下文screenshot。代碼是Here。它應該是環繞地球的月球軌道(我不是想做一個真實的模擬或任何其他的東西,我只是使用這個設置來玩弄和學習pygame)。它是2個圓圈,衛星繞地球橢圓軌道。我的最終目標是讓月球跟隨它繞地球軌道運動,但我想稍後使用鍵盤控制來調整月球軌道的形狀。

我真的只是需要幫助弄清楚如何讓月亮跟隨路徑,我可能會找出其他的方法。

回答

5

那麼這裏是你如何沿着橢圓生成點:

for degree in range(360): 
    x = cos(degree * 2 * pi/360) * radius * xToYratio 
    y = sin(degree * 2 * pi/360) * radius 

(x,y)將遵循在(0,0)中心的橢圓形,與y半徑爲radius和X半徑爲xToYratio。在你的情況下,你可能想要degree與時間流逝有某種關係。

編輯:你也可以這樣做:

for degree in range(360): 
    x = cos(degree * 2 * pi/360) * xRadius 
    y = sin(degree * 2 * pi/360) * yRadius 

其中xRadius是你的矩形的寬度的一半,並且yRadius是你rects高度的一半。直觀地顯示它 - 你有一個圓圈,並且伸展它(即縮放它,即乘以它),使它與水平和垂直矩形一樣大。

+0

我認爲通常我需要做的,但我的問題的一部分是我不知道如何找到橢圓的半徑,因爲我通過使用Rect類定義橢圓(請參閱我的代碼)。 – Danny 2010-05-15 22:54:08

+0

@Danny:我已經更新了答案以適合您的需求 – Claudiu 2011-03-07 23:20:51

+0

這可能會很方便,不會以度數工作......如果您有許多精靈,並且您每次打勾都調用一次更新函數,度數爲整合非常混亂。如果任何人想要,我會發佈一個版本,這種方式一旦我編寫代碼。 – 2014-12-06 00:51:19