2012-04-06 68 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中的等价物进行等价处理,并相应地将其替换为您的代码。