1

私は DX11 を学んでおり、いつか単純な 3D エンジンを開始できることを願っています。私はチュートリアルシリーズをフォローしていますが、自分のコードを維持するためにクラスを作成する必要がないことに気付きました (チュートリアルでもこの​​手続き型アプローチを使用していますが、チュートリアルコードをコピーアンドペーストしません。チュートリアルを理解しようとします。私のやり方で新しいものをコーディングしてみてください)、関数とグローバル変数だけでコードを「理解できる」ようにすることができます。API について十分な知識があり、独自のライブラリの作成を開始したい場合、この手続き型アプローチには欠点があるのではないでしょうか? いくつかのクラスを書き始める必要がありますか?

ありがとう。

4

1 に答える 1

1

最初は、たくさんの手順だけで構成されている小さなエンジンから始めました。最初のアプリケーションでは機能し、開発は迅速でした。しかし、アプリケーションが複雑になるほど、コードが読めなくなり、保守が非常に困難になります。それから私はOOPアプローチで同じものを構築し、ほとんどすべてが良くなりました。プログラムの全体的な構造はより簡単で、衝突検出などのいくつかの問題はoopで本当にうまく解決されます。、などの親クラスがあり、、、などのCollidableObject多くのクラスを派生させます。衝突テストの場合は、クラスで作業するだけです。CollidableSphereCollidableCubeCollidableLineCollidableObject実際にどのオブジェクトであるかは関係ありません。これは、手続き型のアプローチで処理するのはあまり良いことではありません。他にも多くの例があります。たとえば、パーティクルシステムをさまざまな種類のパーティクル(ビルボード、頂点、メッシュ、ライト)でモデル化し、特定のパターンを実装するだけで、すべてを一緒に操作できます。

全体として、私はできるだけ早くクラスから始めることをお勧めしますが、最初の面白いハッキングと手続き型アプローチの学習は、きれいではありませんが適切です。

于 2012-12-23T11:34:59.527 に答える