- 1 名前:名前は開発中のものです。 [2008/05/23(金) 21:10:59 ID:8M1gqhPX]
- 具体的なゲーム名を挙げて、
どのようにクラス設計をすればよいか、 継承・委譲関係はどのようにすればよいか、 使えそうなパターンは何かなど語るのもよし。 自作ゲームの内容とクラス図を書いて 改善案を聞くもよし。 設計に関して困ったことを質問するもよし。 関数の具体的な実装内容やゲーム内容に関しては他スレに譲る。 大いに語れ。 前スレ pc11.2ch.net/test/read.cgi/gamedev/1155209226/ テンプレ追加事項あったらよろすく
- 266 名前:名前は開発中のものです。 mailto:sage [2008/07/22(火) 20:52:26 ID:6od3yLDu]
- ゲーム機ではないが、アーケードの基盤がWindows系というパターンはあるな。
DirectXそのものを使ってるかどうかは知らないが。
- 267 名前:名前は開発中のものです。 mailto:sage [2008/07/25(金) 15:29:12 ID:9vpYBrtF]
- やってみて、無理と判断され、チームを外されることってある?
- 268 名前:名前は開発中のものです。 mailto:sage [2008/07/25(金) 20:06:41 ID:66T6bhjF]
- >>267
板違い プログラマー@2ch掲示板 pc11.2ch.net/prog/
- 269 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 01:19:05 ID:+2uolo1R]
- いつしかスレ違いな話題ばかりになってるな。路線復帰しようぜ。
- 270 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 02:28:02 ID:Esaqa0cW]
- アドベンチャーゲームの画面クリックやら動的に変化しまくるコマンドとかはどうやって管理してるんだね?
- 271 名前:名前は開発中のものです。 mailto:sage [2008/07/28(月) 18:13:52 ID:9GhNVVJ3]
- 前者は状態フラグの配列なり持っておけば十分だろ
後者はなんだ?状態フラグ読んで条件分岐すればコマンド変化はいくらでも管理できるでしょ それともzorkみたいなやつかな。それだと構文解析が肝だろうなあ
- 272 名前:名前は開発中のものです。 mailto:sage [2008/07/29(火) 14:37:45 ID:kHD6g876]
- >>271
なるほど。フラグの状態で、出るコマンドを制御すればいいのか。 サンクス
- 273 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 18:14:30 ID:ucHp1Nqp]
- メニューコマンドってみんなクラス化しているもんなのかな?
メニューオブジェクトを生成してどうこうみたいな。
- 274 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 21:20:41 ID:Gc2qBZ+R]
- ベタコードで記述したり構造体・配列のままより
クラスにしたほうがアクセスの統一をはかれる分いいかなぁ。 まーメニュー触るコードが一箇所ならどっちでもいいんでね? ようはクラスにするしないじゃなくて 複雑さを無くしたり楽するためにどうするかだから。
- 275 名前:名前は開発中のものです。 [2008/07/31(木) 21:26:22 ID:NXR7vyyv]
- フロントコントローラーパターンとコマンドパターンでやります。
- 276 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 21:38:09 ID:A+bu5iPx]
- メニューによるけど、FF風のメニューは別シーンにして、その中の一つ一つのコマンドは
だいたい同じインターフェースを実装してる。
- 277 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 00:01:16 ID:yD3o9/Uf]
- クラスメンバって全部privateにしてgetterでしか取得できないようにするべき?
privateにしたメンバをもつクラスを保持しているクラスから、そのprivateメンバにアクセスしたいときに get()で呼び出すのが面倒なんだが・・・・publicならそのまま呼び出せるし
- 278 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 00:11:49 ID:yp70Uz6t]
- >>277
クラス使って日の浅い俺はset()、get()作りまくり。確かにメンドイ。 たぶん何か間違っている。
- 279 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 00:14:41 ID:GzWnlC6Z]
- >>277
俺も同じようなこと悩んでて、気がついたら両方混在してた。 「これはクラスじゃない、構造体なんだ!」 って言い聞かせながらところどころpublicにしてたりw
- 280 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 00:22:47 ID:z2aBgJTr]
- 全部て
全部にgetter/setter作る意義って、メンバごとに独自処理必要な場合だろ そういうの不要ならpublicなり言語の提供するアクセサメソッド簡略化機能とうかで構わんて
- 281 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 00:28:14 ID:4UGZmRTZ]
- 排他制御や状態確認が不要ならどうでもいいかもだけど
コード書くのがマンドイだけなんじゃ? まっしなIDEやプロパティのある言語つかうとかかな。
- 282 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 00:32:32 ID:GzWnlC6Z]
- >>280
例えば、「すばやさ」と「回避率」と「盾の大きさ」というメンバ変数があったとする。 仕様変更により、これら三つを「守備力」に統合しようとしたとき、 各メンバ変数へのアクセスが全てアクセサメソッド経由なら、 そのクラスの変更だけで終わってしまう(ごまかせる)というメリットがあるよ。
- 283 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 00:36:38 ID:z2aBgJTr]
- まて、そら元々アクセサの設計が統合可能だった場合だろ
すばやさにアクセスしても盾の大きさにアクセスしても「守備力」が変わるって設計で良いなら構わんが…… 守備力を出すクラスなりが仲介して、他のパラメータを元から束ねてた場合の話って事かな。 ちょっとエスパー疲れるぞ?
- 284 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 00:47:59 ID:GzWnlC6Z]
- >>283
まあ、そういうこともあるさ(汗) ここはお茶を濁しながら、オブジェクト間の結合を弱めましょうとか何とか言って、逃げようかな。 あと、全部アクセサメソッドつけたくなる理由は、Java beansに対応させるってのもあるな。 シリアライズしてXMLでデータを吐けるとか特典があったはず(要らない特典かも)。
- 285 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 00:54:19 ID:b/gVwGdZ]
- getterもsetterも持ってるメンバってのは、結局外から値をいじれるわけだから、
publicにした方が使う側は書きやすくでいいんじゃないの?と思うわけ。 ああ、でもsetterに値のチェックとか入れれるのか・・・・
- 286 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 01:01:50 ID:b/gVwGdZ]
- しかもget()で取得するのが配列だったりすると、
取得側で配列格納用の変数も用意しないと取得した配列の要素にアクセスできないし、 非常に手間。
- 287 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 01:02:58 ID:tFL87oCT]
- とりあえずpublicで書いていって、
気が向いたらprivateにして、 それまで直接アクセスしたるところを、 大河の流れのように涙を流しながら直せば無問題。
- 288 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 01:07:26 ID:b/gVwGdZ]
- >>287
なるほど。あまりスッキリしないやり方ですが、しょうがないですかね。 いちいちget()で呼んで、呼び側の変数のセットして使うのって、スループット高そうなのもイヤなんですよね。
- 289 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 01:09:03 ID:b/gVwGdZ]
- 特にゲームだと毎フレームごとにいろんなものを描画するから、描画要素が多いとそれだけ呼び出しも増えるわけで。
- 290 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 01:19:38 ID:ua9U6ROu]
- c++での話だが速度はインライン展開されるの期待できるから問題ないし
メソッドが多くて中で使いまくるならclassで隠蔽。メソッド内でもget、set呼ぶ。 データの集合でしかなくメソッドが簡単な処理しかないならstructでpublic化かな。 コンストラクタ、コピーコンストラクタ、代入、比較演算あたりまでならstructで。
- 291 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 01:32:56 ID:b/gVwGdZ]
- >>290
こういうのって、センスが必要ですね・・・・。 ちょっと気になった事があるんですが、 自分のクラスのpublic関数が、内部で自分のクラスのprivateなメンバを使う場合、 わざわざgetterで呼び出して使う必要はないですよね? class Foo{ private int a; public int get(){ return a;} public int calc(){ return get() * 2; } このようなcalc()の書き方に利点はあるのでしょうか?
- 292 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 02:26:05 ID:ua9U6ROu]
- getter,setterがpublicなら外部参照する可能性があるということで
内部だけで使うprivateメンバ変数と意識して区別できるとか 関数内のローカル変数と名前が被ってもメンバ変数を指してるのが一目瞭然とか。 命名規則で見分けられるようにするのが良いんだろうけどなるべくそうしてる。
- 293 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 03:52:45 ID:eorE7C0S]
- getterロボ
- 294 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 04:12:11 ID:gQhqelIh]
- メンバ変数の存在が setter/getter の追加みたいに public 部分に影響するのがおかしいんだよ。
まず public なインターフェースが決まって、その後で必要なメンバ変数を private で考えるのが筋だろ。
- 295 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 18:37:49 ID:YDkT93Ih]
- >>294
今まで作ってきたゲームの焼き直しなら、現実的なやり方だね。うん。
- 296 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 19:02:25 ID:m4Vy5Xwk]
- 理想と現実はだいぶ違うよな
個人製作なら気に入らなければ壊して作りなおせるからそれでもいいけど それにこだわって完成させられない場合が多い気がする
- 297 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 20:43:12 ID:mQpnHwPh]
- インターフェース中心の設計でプログラミングするんだったら
プライベートメンバ変数にはアクセッサを用意すべき。 単なるクラスだけでプログラムするんだったら、位置とか角度とか見たいなアクセス頻度の高い メンバはパブリックのほうが良いかと思う。
- 298 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 00:14:18 ID:n2w2ONnP]
- ぶっちゃけ、片っ端からget/setにしたほうが、悩む時間を削減できて、完成が早まる(トイイナw
- 299 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 00:25:25 ID:MidBaG0Q]
- しかしgetやsetが乱れ飛んで読みづらくなることも
- 300 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 06:50:04 ID:xZ8r6Jdx]
- >>299
プロパティが欲しいと。
- 301 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 11:52:40 ID:eytLWJfu]
- C#はそういう意味ではスマートだなぁ
- 302 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 23:43:30 ID:Pnu26psa]
- ゲームのシーン管理ってどうすりゃいいんだろう
- 303 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 02:53:56 ID:DVblpxWK]
- シーンつったってゲームによって全然違うからな
もう少し具体的に
- 304 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 16:40:36 ID:HN+lqKwd]
- >>301
現行のゲーム機はまだC++なんだよな
- 305 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 21:47:19 ID:XQeDRsrL]
- >>302
シーンってのが何を指してるのかが微妙すぎ。 VMCに分けろじゃないけど、 Visual面だけでシーンを切り分けるのがいい時もあるし、 Dataの読み込みや各種準備の時が切り分けにてきしてる場合もある。 そうじゃなくて、Loopを二つぐらい回しながら、 片っぽでバックの処理こなしつつリアルタイム進行で、 残りで、Interfaceを回してくタイプとかもあるし、 結局どんな処理が必要などんなゲームなのか? どれを止めると不味いか、どれは止めても復帰させれば問題ないか? とかによると思う。
- 306 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 21:52:25 ID:qGD4tU/f]
- シーンて、どのゲームも
タイトルー本編ーゲームオーバ てな感じジャンか。細かいところは違えども。 ゲーム全体の状態遷移をどうするか聞いてんじゃないの?
- 307 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 22:00:54 ID:0ZCECk8O]
- おいどんのシーンは一種のタスクシステム(笑)で、
ウィンドウ管理、イベント管理、衝突判定、FPS調整、各オブジェクト行動などがセットになっとるでごわす。 シーンの切替えはこのセットをまるごと取り換える作業なのですたい。
- 308 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 23:21:42 ID:HN+lqKwd]
- FFとかのムービーシーンの管理はどうやればよかですたい?
- 309 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 23:31:02 ID:+gPnPllx]
- プロダクションだとファイルサーバ置いてモデル素材とか徹底管理するみたいだね。
Digital Anime Artwork(1/2)って本が内情ノウハウ溢れてて参考になった。 ほんとフォルダ分けの徹底とワークフロー統一にどこも頭悩ませてるようだ。 いまどきだとプロジェクションマップとか多用する規模の物も多いしな、美術、撮影、合成と
- 310 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 23:31:41 ID:+gPnPllx]
- あれ? ここCG板じゃねえじゃん。
うわ俺凄く恥ずかしいマジレス?
- 311 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 23:31:45 ID:0ZCECk8O]
- >>308
ムービーシーンなんて作ったことないからわからんですたい。 脳内妄想では、ムービーを再生できるオブジェクトが登録されてるシーンに移行するだけですたい。
- 312 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 17:38:42 ID:OcXTlg2n]
- うさんくさか博多弁多かたいね。なんかぐらぐらこく
馬鹿にしないでください><
- 313 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 23:28:56 ID:Vp8LYTR0]
- >>312
こらあげにまっことすまんかったぜよ。
- 314 名前:302 mailto:sage [2008/08/04(月) 23:40:39 ID:OTznAvMd]
- >>306
そうそうそんな感じ。 1シーンの処理は画像やその他のデータの読み込み、メインループ、 次のシーンに移る前の要らないデータの破棄のような感じにするつもり。 前のシーンに戻れるように階層構造を使ったりしたら難しくなりそう。
- 315 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 02:18:10 ID:iFGNdN4x]
-
しーん…
- 316 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 15:44:15 ID:J5sJkFaL]
- 【 審議中 】
∴∵
- 317 名前:名前は開発中のものです。 mailto:sage [2008/08/24(日) 00:35:34 ID:kCbI2Ziv]
- (審議が長引いています。今しばらくお待ちください)
- 318 名前:名前は開発中のものです。 mailto:sage [2008/08/27(水) 21:03:35 ID:pp3RgERm]
- キャラクターの状態って、どうやって実装してますか?
例えばマリオなら、 enum { SMALL, BIG, FIRE }; enum { STAR, NOT_STAR }; のように、直交した状態ごとにenumで列挙して、ifで場合わけするのでしょうか? stateパターンでは無理???
- 319 名前:名前は開発中のものです。 mailto:sage [2008/08/27(水) 21:31:52 ID:tgwWcjRq]
- それだけだとモーション中とかが実装できないよね
FCマリオならそのenumに加えて、ゲームステータスとして「巨大化アニメ進捗」を示すカウンタ用意すれば十分だと思う ステータス変化中に他の画面止めていいのか、それとも無敵時間とか起きながら遷移中にも時間は動かすのか前提がもうちょい欲しいかも。 その辺の細部を徹底的に見つめていくと、 適するパターンがあるのか、それとも独自な設計選ぶべきかが見えてくるんじゃないかな。 マリオにしてもSFCのヨッシーとかFC版3での画面奥行き潜りとか、色々 実装したい事を見据えて行くと変数の数やステータスのまとめ方が見えて来るだろうしね。
- 320 名前:318 mailto:sage [2008/08/28(木) 00:48:01 ID:Z+eKsEJG]
- >>319
いろいろ考えないといけない事多いですね。 この手のものを実装する方法として、stateパターンとenumとifで場合わけの他に何かあるんでしょうか? 状態の種類と数が複雑になってくると、enumとifを使う方法しかない気がしてきます。 ifで場合分けって、コードが汚く感じてあまり好きじゃないんですよね。 でも、こういうケースでは、これがベストなのかなぁ。
- 321 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 01:16:45 ID:q3w3U78u]
- >コードが汚く感じてあまり好きじゃないんですよね。
好みと言うより仕方がない気も。 よくわからんなら下手に「なんとかパターン使うべきなのかな!」って 考えるより、ベタで汚いながらも「いじりやすい」単純なコードからはじめてさ、 あとはめくらめっぽう試した方がいいよ。 ifでの場合分けさえ、インライン展開される事を知ってるかどうかで汚くても使う訳で。 で、知ってる人にはそういうのやら三項演算多用した分岐の方を「美しい」って言っちゃったりするからねw
- 322 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 01:34:35 ID:O/+Qqs/2]
- 最初ってそういうの考えちゃうよな
世間じゃどういうのが正しいんだろうとか考えて自分のコードが全然すすまねぇ 今ではなんだかんだで破綻するギリギリまで「動けばいいや」の精神で書いてる 仕事じゃないからこそだな
- 323 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 03:20:26 ID:tq3ymPlL]
- 関数ポインタで飛ばせば見た目は良くなるね。
可視性に問題が出てきそうで自分では使ってないけど。
- 324 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 09:12:41 ID:y2qhH8VC]
- そこで goto ですよ
- 325 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 10:11:26 ID:MS2hHN8x]
- 某シューティングツクール的にはそもそも「状態」という概念が無くて、
全く別のオブジェクトを「発射」して、自分を「消滅」させることで状態の変化を表現してた。
- 326 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 11:46:09 ID:Qlb2/Pnm]
- javaは関数ポインタ使えないんだ・・・・
- 327 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 11:57:21 ID:MS2hHN8x]
- >>326
Javaの場合は、状態クラスを作って、それを持つようにすればいいんだよ。
- 328 名前:318 mailto:sage [2008/08/28(木) 17:59:10 ID:Z+eKsEJG]
- >>321,322
汚いコードって書き直したくなってくるんですよね。 綺麗に書けないと達成感がないというか・・・。 また、本などで知識をつける毎に、今まで書いてきたコードが正しくない書き方だったな〜と思うことが多くて(プログラミング始めた頃はダライアス継承とかやってたw)。 完成させることが第一と思っていてもついつい・・。 >>323,327 stateパターンですよね? >>325 そういう方法でやってるところもあるんですね。 でも、オブジェクトのコピーが効率悪そう。
- 329 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 18:35:54 ID:CuTVRbF+]
- 自分ひとりで考えても、本を読んでも出てこない、他人の眼に触れさせなければ見えてこないものもある。
それよりも自分の達成感の方を優先したいならそっちを選べば良いさね。 つか、コードの正しさ、綺麗さ、効率の良さ、読みやすさってどういうものだとして使ってる?
- 330 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 19:03:37 ID:Jt4Hw7jN]
- むしろ可能な全ての表記法を試す勢いで!
次のプログラムからは気に入った表記で。 昔の事は忘れましょう。
- 331 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 19:43:21 ID:MS2hHN8x]
- 人が書いたソースを読むのって勉強になるけど、読む気が出ない……
>>328 >stateパターンですよね? パターンのことはよく知りませんが、ポリモーフィズム(多態性)です。
- 332 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 20:37:26 ID:xedxyhWb]
- >状態という概念が無い
敵が爆発する瞬間とかだとやっちゃうなあ……。効率悪いんだろうか。
- 333 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 21:28:28 ID:MS2hHN8x]
- >>332
他に良い方法があるならどうぞ。 MHz世代のCPUで通用してた方法だから、致命的な効率低下があるとは思わないよ。
- 334 名前:318 mailto:sage [2008/08/28(木) 21:30:31 ID:Z+eKsEJG]
- >>329
コードの正しさ、綺麗さの2つは曖昧な表現で使うべきではなかったですね。 私はコードには、実行効率、保守性、読みやすさの3つがあると思っています。 今問題にしてるのは、主にこのうち後者2つです。 ただ、読みやすさは人それぞれなのかもしれません。 >>331 状態毎に仮想関数をオーバーライドするのが、まさにstateパターンですね。
- 335 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 21:59:24 ID:O/+Qqs/2]
- 保守性も読みやすさもifとenumにしたからと言って損なわれるものでも無いと思うけど何を悩んでるの?
- 336 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 22:18:17 ID:qtCAmqfQ]
- ダライアス継承ってどんな継承?
- 337 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 22:22:03 ID:xedxyhWb]
- >333
爆発オブジェクトを自身と同じ場所に生成して、自身を削除する って認識で合ってる?
- 338 名前:318 mailto:sage [2008/08/28(木) 23:04:17 ID:Z+eKsEJG]
- >>335
保守性については、仕様変更により、状態を追加したり、廃止したりする時、影響する部分を探し出すのがめんどくさいというかすっきりしないというか。 読みやすさは個人的な好みかもしれません。 保守性、読みやすさともにstateパターンの方が好きです。 でも、直交した状態群が複数あるとき、stateパターンで実装するのが難しそうなので悩んでいました。 うまい方法が見つからなければ、enumとifでいくつもりでした。 >>336 ダイアモンド継承の方が一般的な呼び方なのかもしれません。 仮想継承を使うことによって、継承グラフが菱形になるやつです。
- 339 名前:名前は開発中のものです。 mailto:sage [2008/08/29(金) 00:44:03 ID:hcEje8O4]
- ダライアス継承なんて初めて聞いたなあ
英語だと Multiple Inheritance あるいは Diamond Inheritance と言うようだが。 あとダライアス(Darius?)はペルシャ人の名前のようだ。 まゆに唾つけて聞いておこうかな
- 340 名前:名前は開発中のものです。 mailto:sage [2008/08/29(金) 00:50:36 ID:rESH+j3C]
- ダライアス継承でググってみても勘違いで質問してる奴にしか引っかからないな
デザパタへの無駄なこだわりとか、初心者がなんか変な用語がいっぱい並んでる本だけ読んで惑わされてるだけに見える
- 341 名前:名前は開発中のものです。 mailto:sage [2008/08/29(金) 02:39:33 ID:VLtb7ZED]
- Multiple Inheritance (多重継承) と Diamond Inheritance (ダイヤモンド継承) は
違う概念だが...というかダライアスっていうとシューティングゲームしか思い浮かびませーん
- 342 名前:名前は開発中のものです。 mailto:sage [2008/08/29(金) 06:43:42 ID:gdp2Jatd]
- ir9.jp/prog/ayu/datlog/tech_cpp/1106527792/1106527792_01.html#R50
- 343 名前:名前は開発中のものです。 mailto:sage [2008/08/29(金) 10:26:08 ID:ESvglHwU]
- >>337
合ってると思うよ。 問題があるとすれば、状態を変化させるだけの場合、ライフとかのパラメータ引き継ぎどうすんねんとか。 そこんとこがツクールVじゃ無理だった。(最近の(95とか)はシラネ)
- 344 名前:名前は開発中のものです。 mailto:sage [2008/08/29(金) 14:31:33 ID:UaA8GGvx]
- >>341
>ダライアスっていうとシューティングゲームしか思い浮かびませーん ダライアスの面セレクト画面が菱形継承図っぽいところから生まれた俗称だったりしてw
- 345 名前:名前は開発中のものです。 mailto:sage [2008/08/29(金) 14:34:13 ID:nV9hYRuE]
- >だったりしてw
いやだったりしてっつーかそれしかなくね
- 346 名前:名前は開発中のものです。 mailto:sage [2008/08/30(土) 13:56:18 ID:vqGqt03L]
- ダイヤモンドが2個も3個もあるような継承のことか。
C3 MRO の解説でしか見たこと無いが。
- 347 名前:名前は開発中のものです。 [2008/08/30(土) 14:18:00 ID:gGJd0yLw]
- ドラえもん 「ことわざゲーム」
これはいいアニメ。 ... ドラえもん 藤子F不二雄 アニメ ドラえもん後期 ドラえもん本編 教育アニメ コメント非 表示推奨 緑 ... ex-co-jp.8866.org/gourmet/080803.rar
- 348 名前:名前は開発中のものです。 mailto:sage [2008/08/30(土) 14:23:18 ID:h7pQaJrI]
- なんかあちこちで見かけるな。これ以上ないってくらい、明らかにヤバいリンク
- 349 名前:名前は開発中のものです。 mailto:sage [2008/08/30(土) 14:32:04 ID:hoYQeFVI]
- 夏休みも終わりって事さw
- 350 名前:名前は開発中のものです。 mailto:sage [2008/08/30(土) 14:40:33 ID:vqGqt03L]
- Bot使った宣伝書き込みかなぁ
- 351 名前:名前は開発中のものです。 mailto:sage [2008/08/30(土) 15:36:27 ID:h7pQaJrI]
- なんかのマルウェアって聞いたが
- 352 名前:名前は開発中のものです。 mailto:sage [2008/08/31(日) 15:40:22 ID:5jP5dBFC]
- A has B B has C C has Dのようなクラス構成で
Aで作ったEをDで使うために、Aから呼び出したB、Bから呼んだC、Cから呼んだDのそれぞれの関数の引数に Eを渡していくのはいいのかな?
- 353 名前:名前は開発中のものです。 mailto:sage [2008/08/31(日) 15:45:26 ID:eaWcmeF0]
- いいんじゃね。
- 354 名前:名前は開発中のものです。 mailto:sage [2008/08/31(日) 15:47:56 ID:fQJxWw7j]
- 別に悪くはないと思うよ
Eの役割によってはABCD全てからアクセスできる領域に置くのもアリかもね なんにせよその構成だけじゃいいとも悪いとも言えない
- 355 名前:名前は開発中のものです。 mailto:sage [2008/08/31(日) 15:54:48 ID:5jP5dBFC]
- >>353
>>354 サンクス AからDは直接呼べないけど、Eを使うのはDなので、 AからDにEを渡したいけど、それだけのために間にクラスでEをたらし回しにするのがどうかな〜と 思ったんだよね
- 356 名前:名前は開発中のものです。 mailto:sage [2008/09/02(火) 03:29:08 ID:m23QvXa7]
- このスレにUMLで図描いて貼っても、きっと誰かが見る前に流れて消えてしまう罠
- 357 名前:名前は開発中のものです。 mailto:sage [2008/09/02(火) 03:31:07 ID:m23QvXa7]
- >>352 >>355
コンポジッションの視点、あるいはチェインズ・オブ・レスポンシビリティの視点で言えば、 それは普通にアリ。 っていうか、>>354 も言ってるけど、その構成だけだと(意図する形の意味づけが見えないと) 本当はいいとも悪いとも言えないが。
- 358 名前:名前は開発中のものです。 mailto:sage [2008/09/02(火) 17:16:20 ID:BpB/a+5N]
- CarクラスはTireクラスを4つ持っているとして、
TireクラスもCarクラスを持っていてCarクラスの関数を使えるという設計はいいんでしょうか?
- 359 名前:名前は開発中のものです。 mailto:sage [2008/09/02(火) 17:22:14 ID:Kf1ObPTz]
- コールバックしたいならインターフェース化してポインタ渡すとよい
TireクラスでCarクラスを生成するとかなら論外
- 360 名前:名前は開発中のものです。 mailto:sage [2008/09/02(火) 17:30:36 ID:BpB/a+5N]
- TireクラスにCarクラスのポインタを持たせて、Tire生成時とかにCarクラスのオブジェクトのポインタを渡せば
いいということでしょうか?
- 361 名前:名前は開発中のものです。 mailto:sage [2008/09/02(火) 17:36:03 ID:NydWLubY]
- >>360
Tireが常にCarのポインタを持っている必要もなくて、 CarがTireのメソッド呼び出し時に必要なポインタを渡すのもアリだと思う。
- 362 名前:名前は開発中のものです。 [2008/09/02(火) 17:40:44 ID:IXiySr/S]
- タイヤが車に関心があるってどういう状況?
- 363 名前:名前は開発中のものです。 mailto:sage [2008/09/02(火) 17:42:28 ID:NydWLubY]
- 「パンクしたよ」って知らせてくれるんじゃね?
- 364 名前:名前は開発中のものです。 [2008/09/02(火) 17:44:29 ID:IXiySr/S]
- なるほど
- 365 名前:名前は開発中のものです。 mailto:sage [2008/09/02(火) 19:17:31 ID:gmtfIbjx]
- それ車が「パンクしたか?」メソッド持ってるんじゃダメなの?
- 366 名前:名前は開発中のものです。 [2008/09/02(火) 19:20:27 ID:IXiySr/S]
- 車が、常に「パンクしたか?」ってタイヤに聞くの?
|

|