1

私は友人と一緒にプロジェクトに取り組んでいます。そこでは、SDL2.0ヘッダーファイルと関数を使用するためにSDL1.2を使用するゲームの既存のバージョンを更新する必要があります。既存のソースコードを新しいライブラリに更新する際に従う標準的な手順を知りたいです。このコードには、11個のヘッダーファイルを含む28個のソースファイルがあり、キーボードとマウスのイベントとサウンドも広範囲に使用しています。すべてのソースファイルはc++とsdlを使用します。ほとんどのソースファイルは約200行のコードです。変更期間は約3ヶ月ですが、その期間のスケジュールの基本的なまとめを週単位または2週間単位で書き方を教えてください。誰かが私に同じための適切な手順を教えてくれるので、私は同じためのスケジュールを立てることができますか?

4

1 に答える 1

0

私は標準的な手順を知りませんが、ここに私の考えがあります:

一般に、既存のソフトウェアを別の言語に移植する方法、別のライブラリを使用する方法、またはそのような変更を行う方法は2つ考えられます。最小限の構造変化または大きな構造変化を伴う。

最小限の構造変更とは、プログラムの構造をそのままにして、プログラムのすべてのビットを他のライブラリの同等のものに置き換え始めることを意味します。たとえば、glutからSDLに移植する場合、glutウィンドウの作成をSDLに置き換え、キーボード処理をSDLに置き換えるなど、すべて独立して行います。

この方法は、すべての変更が小さくローカルであるという意味で、より高速です。また、バグが発生する可能性も低くなります。ただし、プログラムの構造は元々この新しいライブラリ用に設計されていないため、結果はそれほど効率的ではない可能性があります。

主要な構造変更は、新しいライブラリに基づいて、そのライブラリに依存するプログラムの大部分を書き直すことを意味します。たとえば、C ++のSTLからCの標準ライブラリに切り替える場合string、アプローチが根本的に異なるはずなので、割り当て/解放/コピーを継続するCでの同等のライブラリで書き直すことは意味がありません。

このアプローチにはさらに多くの作業が必要ですが、最終的にははるかに優れた品質が得られます。


あなたの特定のケースに戻ると、SDL2がSDL1.2とどのように異なるかはわかりませんが、根本的に異なるわけではないと思います。したがって、最初の方法があなたの場合にうまくいくはずだと私は信じています。つまり、SDL1.2で行ったものと同等のものをSDL2で計算し、それに応じてコードでそれらを置き換える必要があります。

于 2012-04-07T19:43:02.970 に答える