2012-04-06 24 views
1

我正在與我的朋友一起開發項目,在那裏我們必須更新使用SDL 1.2的現有遊戲版本以使用SDL 2.0頭文件和函數。 我想知道什麼是我們遵循的標準程序,同時更新已有的源代碼到較新的庫。 該代碼有28個源文件,包含11個頭文件,並廣泛使用鍵盤和鼠標事件以及聲音。 所有源文件都使用C++和sdl.Most源文件大約有200行代碼。 我有一個約3個月的時間來做出改變。我想知道如何在每週或每兩週的基礎上爲該時間段編寫一份基本的日程表摘要。 任何人都可以爲我提供適當的步驟,因此我可以制定相同的時間表嗎?我在尋找將遊戲更新到SDL 2.0的步驟

+3

等等,遊戲只有~6 KLOC?我不確定你能否真實地將日程安排到三個月......;) – duskwuff 2012-04-06 18:26:38

+1

我只是一個初學者 – 2012-04-07 16:40:16

+0

聽起來像一個很好的夏季項目 – 2012-04-07 23:21:04

回答

0

我不知道的標準程序,但這裏是我的想法:

一般情況下,我能想到的兩種方法來移植現有軟件,要麼另一種語言,另一種使用庫,或任何變化這樣的;具有最小的結構變化 或主要的結構變化。

最小的結構變化意味着你保持程序的結構完整,並開始用它在其他庫中的等價物替換它的每一個位。例如,如果將過度移植到SDL,則可以使用SDL替換過度創建窗口,使用SDL等進行鍵盤處理。

這種方法速度更快,因爲所有的變化都很小而且是局部的。你也不太可能引入錯誤。結果可能不是那麼有效,因爲程序的結構並不是最初爲這個新庫設計的。

主要結構變化意味着基於新的庫,您將重寫依賴於該庫的大部分程序。例如,如果從C++的STL切換到C的標準庫,用C中的等價物重寫string,保持分配/釋放/複製沒有意義,因爲您的方法應該有根本的不同。

這種方法需要更多的工作,但最終會給你一個更好的質量。


回到你的具體情況,我不知道SDL 2多麼的不同是SDL 1.2,但我的猜測是,這不是根本的不同。因此,我相信第一種方法應該適用於您的情況。也就是說,您應該在SDL 1.2中對SDL 2中的等價物進行等價處理,並相應地將其替換爲您的代碼。