7

趣味として、古いビデオ ゲームのリメイクに取り組んでいますが、車輪の再発明はできるだけ避けたいと思っています。ゲームはほとんど GUI ベースですが、GUI はルック アンド フィールに関してカスタマイズする必要があり、いくつかのゲーム画面では 3D OpenGL レンダリングを使用する必要もあります。

参考までに、最初のプロトタイプのスクリーンショットを次に示します。

ここに画像の説明を入力

多くのアニメーションと 3D が使用されていますが、GUI ウィジェットは標準のデスクトップ アプリケーションとほとんど同じように動作します。

これまでのところ、私は独自の GUI ライブラリを使用してきました (堅牢でも完全でもなく、いくつかの問題に遭遇しています)。

Qt の評判と優れた機能、そして Qt の Web サイトにいくつかの素晴らしいスクリーンショットがあることから、Qt への移行を検討していました。しかし、私はこれまで Qt を使用したことがないので、Qt がどのような機能を備えているか、またはそれを習得するためにどのような投資が必要かについてはよくわかりません。(私はFLTKを使用したことに注意してください)。

私の質問は次のとおりです。この状況でQtを使用することは可能/実用的ですか?

更新: Qt でいくつかのゲーム画面をモックアップした後、使用しないことにしました。すぐに使える (特にスタイル シートを介して) 必要な多くの機能をサポートしていますが、カスタムのビットマップ ベースのレンダリング済みフォントをサポートする必要があります (それらを変換/置換することはできません)。また、QFont をサブクラス化することも、将来の Qt リリースで壊れずに再実装することもできません。そうは言っても、私は Qt に非常に感銘を受けました (使いやすさと優れたドキュメントの両方の点で)。その機能の一部を自分のエンジンに借用します。入力を提供してくれたすべての人に感謝します。

4

2 に答える 2

4

スクリーンショットに基づいて、ゲームに必要なすべてを知ることは困難です。ただし、ここで他のポスターの意見を反映し、いくつかの方法を紹介します。

1 つは、GraphicsView フレームワークよりも QtQuick を検討したいということですが、これは何をする必要があるかによって大きく異なります。見逃さないように、代替手段としてそこに捨てたいだけです。このチュートリアルでは、QtQuick を使用して、非常に洗練された見た目のコネクト フォー スタイルのゲームを作成します。これは、目的よりも単純化されている可能性がありますが、そうでない場合もあります。何をする必要があるかによって異なります。

次に、すべてのボタンのカスタム ペイント イベントを作成する前に、Qt スタイル シートを使用して、CSS のような構文でウィジェットのスタイルを設定することを検討します。これにより、非常に柔軟な方法で GUI のルック アンド フィールを非常に迅速に変更できます。スクリーンショットに基づいて、独自のセットアップをサブクラス化してローリングするよりもはるかに速く、スタイル シートから必要なものを取得できると思います。しかし、繰り返しになりますが、1 つのスクリーンショットに基づいて判断するのは困難です。Qt スタイル シートのみを使用して実装された暗いオレンジ色の GUI の例を次に示しますのスタイル シートのborder-radiusプロパティはQPushButton、丸いボタン ( ref ) を提供します。

于 2012-06-04T18:16:40.483 に答える
1

簡単な答えは上に示されていますが、もう少し考えてみると、可能です。Qt とあまり戦う必要はないでしょう。ほとんどの場合、そのような大幅にカスタマイズされたウィジェットに行くための推奨されるアドバイスは、ペイント イベントを自分でサブクラス化し、実装することです。

次に、基本的な描画プリミティブのロードを使用して、要素の基本的な形状を取得し、そこから展開できます。ここには実際にいくつかの質問があり、それを行う方法に関する非常に優れたリソースがあります.

于 2012-06-04T12:03:11.960 に答える