ページ 1 / 1
ちょっと関数の実装のアドバイスなどご享受ください
Posted: 2011年3月08日(火) 00:09
by Suikaba
ゲームプログラミングの館のコードを、自分流にクラス分けしてたんですが、
画像の表示のところで詰まってしまいました・・・
DirectX9のSpriteでやってますが、ずっと考えていても思いつかなくて・・・
一応、ウィンドウの表示とフルスクリーンとかのChengeWindowやらは実装してみました。
画像の表示がうまくいくだけで結構進むと思います。
できればアドバイス、クラス構築のヒントなど教えていただけると幸いです。
よろしくおねがいします。
Re: ちょっと関数の実装のアドバイスなどご享受ください
Posted: 2011年3月08日(火) 00:25
by Suikaba
ちょっと説明不足ですね。すいません
DXLibの内容をイメージしてつくってました。DirectX9をつかってやってます。
Libの中でやってることを自分でクラスわけして再現しようとしていました。
Re: ちょっと関数の実装のアドバイスなどご享受ください
Posted: 2011年3月08日(火) 00:29
by Ciel
画像の表示で詰まったというのは具体的にどういうことですか?
画像の表示で詰まった。
これだけ聞いても的確なアドバイスが出来るとは思えません。
Re: ちょっと関数の実装のアドバイスなどご享受ください
Posted: 2011年3月08日(火) 00:42
by Suikaba
そうですねすいませんw
画像表示までの一連の流れはわかります。
それを、うまく関数にして何回も使えるような感じにしたいです。
というか説明下手ですいませんw これでも説明不足ですねたぶん。
Re: ちょっと関数の実装のアドバイスなどご享受ください
Posted: 2011年3月08日(火) 03:10
by lriki
画像表示までの流れはわかる…ってことは、
DXライブラリをクラス使って作ろうとした時に
それをどう定義したらいいかわからないってことですよね。
自作ライブラリ作りたいけど設計がいまいちピンと来ないってところでしょうか。
例えばこんな↓感じにしてみたいとかでしょうか?
コード:
int main()
{
// 描画と画面更新を行うクラス
Graphcis* graphics = new Graphcis();
// テクスチャのクラス
Texture* texture = new Texture("画像ファイル");
while (/*メッセージ処理関数とか*/)
{
// テクスチャと描画先座標を渡してスプライトを描画する
graphics->drawSprite(texture, 100, 200);
graphics->drawSprite(texture, 150, 300);
// 描画終了・画面反映
graphics->flip();
}
delete texture;
delete graphics;
return 0;
}
変な方向に解釈してたらゴメン><
Re: ちょっと関数の実装のアドバイスなどご享受ください
Posted: 2011年3月08日(火) 11:30
by softya(ソフト屋)
とりあえず、クラス化は後回しで良いのでDirectXでC言語ライクで良いので素直に書いてみてはどうでしょうか?
それを元に、どうクラス化するかを考えてみたほうが良いと思います。
出来たらソースコードを貼ってくださいね。
Re: ちょっと関数の実装のアドバイスなどご享受ください
Posted: 2011年3月08日(火) 18:06
by Suikaba
>>softyaさん
了解です。
>> 梨樹さん
ネイティブのDirectXです。すいません。返答ありがとうございます。
Re: ちょっと関数の実装のアドバイスなどご享受ください
Posted: 2011年3月08日(火) 18:08
by Suikaba
素朴な疑問ですが、ここってファイル添付できますかね?zipファイルとか
Re: ちょっと関数の実装のアドバイスなどご享受ください
Posted: 2011年3月08日(火) 18:11
by softya(ソフト屋)
>素朴な疑問ですが、ここってファイル添付できますかね?zipファイルとか
ログインしているなら出来るはずですが。
Re: ちょっと関数の実装のアドバイスなどご享受ください
Posted: 2011年3月08日(火) 21:06
by Suikaba
zipファイルの添付の仕方がよくわからないんです。すいません。
いちおう、画像表示クラスわけしてできました。透過表示もできるとおもいます。
そのコードを貼り付けたいのですが、1行目のとおりです。できれば教えてくれませんか?調べてみましたがわからなくて・・・
Re: ちょっと関数の実装のアドバイスなどご享受ください
Posted: 2011年3月08日(火) 21:08
by softya(ソフト屋)
返信(クィックはNG)の時に下にオプションが見えると思いますが、その横にファイル添付タブがあるのが分かりますか?
Re: ちょっと関数の実装のアドバイスなどご享受ください
Posted: 2011年3月08日(火) 21:35
by Suikaba
できました。ありがとうございます。
クラス化ですが、あまり考えずにやりました。もっとこうしたほうがいい、などのアドバイスをいただけるとありがたいです。
Re: ちょっと関数の実装のアドバイスなどご享受ください
Posted: 2011年3月08日(火) 22:12
by softya(ソフト屋)
とりあえず、ざっと見た私の感想はクラスの役割りが曖昧だと思います。
えーと、仕事で多人数でオブジェクト指向(C++)を使った事がないので用語等で分かりづらかったごめんなさい。
CWindowと言うクラスならウィンドウの役割りだけを持って欲しいです。
あとメッセージループで呼び出すものを内包してしまっているのも頂けません。
別のインスタンスをCWindow内からクラスポインタなどで呼び出したほうが良いんじゃないでしょうか?
なので、CWindow内から呼び出される動きや表示を制御するクラスが別に必要です。
CDirectCreateもDirectX処理クラスに徹して、スプライトのファイル名とかは外部からもらって動的に管理したほうが良いと思います。
まとめるとクラスの役割りの明確化と今後のことを考えてインターフェイスを整理してください。
今後、機能追加や拡張していく部分は外に出す。ライブラリ的な部分はインターフェイスを整備するです。
Re: ちょっと関数の実装のアドバイスなどご享受ください
Posted: 2011年3月08日(火) 22:32
by Suikaba
ありがとうございます。参考にさせていただきます。
みなさん本当にありがとうございました