0

私は大学のプロジェクトの 1 つに OpenGL プログラムを書いています。私は opengl を扱った経験がなく、3 年間 MATLAB にこだわり続けた後、ビジュアル C++ に戻りました (そうしなければなりませんでした! 責めないでください!)。しかし、このプロジェクトでは、マルチレベルのゲームを作成する必要があり、驚くべきことに、このタイプのゲーム プログラミングに関するチュートリアルや手がかりがネットにないようです。私のゲームは仮想の長方形の部屋で行われています。プレーヤーが十分なスコアを獲得できる場合、ゲームは別の形の部屋で再表示する必要があります (少なくとも 6 つのレベルが必要です)。

さて、コードとメイン関数で glut 関数を広範囲に使用したという事実によると、glutMainLoop(); のループを破る方法がないことを知っています。このマルチレベル構造を実装する方法を知りたいですか?

glut を取り除き、freeglut または基本的な gl 関数に置き換える必要がありますか?

解決策としてマルチスレッドを使用する必要がありますか? Win32 コンソール アプリを使用すると可能ですか?

4

2 に答える 2

0

glut を取り除き、freeglut または基本的な gl 関数に置き換える必要がありますか?

解決策としてマルチスレッドを使用する必要がありますか? Win32 コンソール アプリを使用すると可能ですか?

どちらも問題にはなりません。

あなたはおそらくあなたの部屋をコーディングしました。それはあなたの問題だ。ジオメトリやシーナリーをハードコーディングしないでください。

ゲームをデータ構造として表現します。いくつかのゲーム状態が構造を指すようにします。部屋を切り替える場合は、ポインターを変更して、他のインスタンスを指すようにします。

于 2012-08-05T09:08:35.043 に答える
0

GLUT を何かに置き換える必要はありません。OpenGL コードは同じままです。メイン ループを中断する必要さえありません。ただし、最新の freeGLUT を使用することを検討してください。マルチレベル構造の実装は難しいですが、3D 座標系がどのように機能するかを調べると、合理的な解決策を自分で考え出すことができるはずです。

于 2012-08-05T18:41:44.040 に答える