2009-06-12 8 views
1

オブジェクト指向プログラミングスタイルでは、グラフィックをどのように処理する傾向がありますか?各オブジェクトには独自のグラフィックス情報が含まれていますか?その情報はどのように表示されますか?OOPスタイルでのグラフィックの処理

私のグラフィカルプログラム作成の経験は限られていますが、私はオブジェクトとグラフィックスをあまり関連性のないものにする傾向があります。例えば、私がチェスゲームを実装した場合、ボードの作成、チェスの画像の取得、White_Queenなどの名前に関連付けられたハッシュへの読み込み、そして変更されたときの画面の更新といったグラフィックスオブジェクトを持つ傾向があります。変更自体は、オブジェクトからメインゲームループに渡され、次にグラフィックスオブジェクトに渡されます。ピースオブジェクトには、添付されたピースグラフィックスの名前が文字列に含まれますが、グラフィック情報は含まれません。このOOPですか?それは良いOOPですか?

私が今取り組んでいるプロジェクトでは、手続き的に生成されたグラフィックス(非常に単純なもの)が含まれているので、オブジェクトに格納されたプロシージャを持つことができます。それに渡されたオブジェクトこれはOOPでしょうか?それは良いだろうか?

私が知るようになった現実世界では、グラフィックスは含まれていません。物は物性を含んでおり、私の脳はそれを解釈します。盲目の人の頭脳と鷹の頭脳はすべて異なった物体を異なって解釈します。このOOPですか?私はそれをそのようにしようとするべきでしょうか?

いつものおかげでよろしくお願いします。

z。

PS私はニンテンドーDS用にC言語でコードを書いています。私はピクセルを個別に塗りつぶしてグラフィックを描いています!

答えて

1

あなたにはいくつか質問があります。うまくいけば、これが役に立ちます。

各オブジェクトには独自のグラフィックス情報が含まれていますか?その情報はどのように表示されますか?

プログラマーは、用語「グラフィックス」と「グラフィカルユーザーインターフェイス」(GUI)を区別する傾向があります。一般的に、グラフィックは静的な画像(写真のようなもの)または動的な画像(ビデオゲームのようなもの)を意味しますが、GUIはWindows、ボタン、メニューなどのアプリケーションで見られる通常のものを指します。あなたはグラフィックやGUIを参照していますか?

プログラムとモニタに画像を取り込む間には、いくつかの抽象レイヤーがあります。 Windows PC上では、Win32やDirectXの関数を呼び出すことになります。これは最下位層のすべてを処理します。

オブジェクトにプロシージャを保存し、渡されたオブジェクトからプロシージャを読み取るグラフィックスオブジェクトを取得できます。

主な機能をグラフィックスコードに入れないでください。逆も同様です。それらを区別してください。これにより、あなたの作品がチェスの試合でどのように見えるかを変更したり、ユーザーインターフェイスを変更せずにルールを変更したりするのがはるかに簡単になります。

Alex Martelliが述べたように、MVCアーキテクチャは、ビジネスロジック(それが動作する方法)とアプリケーションのプレゼンテーション(見た目)を分離する良い方法です。 MVCでは、ビューは一般的にGUIを保持すると考えられていますが、GUIには「グラフィックス」がある場合とない場合があります。

このOOPはありますか?それは良いOOPですか?

オブジェクト指向設計の意味をよりよく理解する必要があるように思えます。このトピックには非常に多くの外部リソースがあるので、私はそれをGoogleにすることをお勧めします。一方で、良いデザインであれば心配するのではなく、試して試してみて、ゲームのさまざまなプログラミング方法を試してみるべきでしょう。あなたは何がうまくいくのか、何がうまくいかないのかを理解することができます - 初めて完璧にする必要はありません!

実世界では、私が知るようになったので、グラフィックスは含まれていません。

私はあなたが正しいと思う...私たちが見るものは、光子が私たちの網膜に当たって生成した電気信号である私たちの周りのものを表しています。あなたのプログラムを書くとき、単に人々に意味のある画像を生成しようとしているだけです。私はあなたがこれでどこに行くことができるか分からない。

ピクセルを個別に塗りつぶしてグラフィックを描画しています。

このようなものを処理するグラフィックスライブラリを使用する方が簡単でしょうか?そうすれば、すべてのピクセルを自分で処理するのではなく、DrawCircle()のような処理を行うことができます。つまり、独自の低レベルのグラフィックスライブラリを実装することで多くのことを学ぶことができます。ゲーム自体ではなく、ライブラリに多くの時間を費やすことを覚えておいてください。

1

Model-View-Controller(MVC)は、OOPのグラフィックス(および他のプレゼンテーション情報)の一般的な配置です。モデルであるオブジェクトは情報を持ちますが、プレゼンテーションを処理しません。ビューであるオブジェクトは、その情報を(例えば、グラフィカルに)表示する。私が指しているウィキペディアのエントリー、そしてあなたが検索できる他の多くのページは、あなたにもっと多くの情報を与えるでしょう!

関連する問題