-OOP限定-プログラム設計相談室
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2005/09/24(土) 16:35:590876uy
2012/07/22(日) 23:53:31.260877デフォルトの名無しさん
2012/07/22(日) 23:57:36.79早くこらのスレが黒歴史になってコテ付けて書き込んだことを絶対公言できないようになれよ
0878デフォルトの名無しさん
2012/07/23(月) 00:12:44.61生ポインタをあつかう理由がまったくないのでそのファクトリー関数はshared_ptrを返すように書き換える
0879デフォルトの名無しさん
2012/07/23(月) 00:46:46.47クラス 描画先
{
public:
描画する(直線);
描画する(円);
描画する(円弧);
描画する(図形)
{
assert(0);
}
};
クラス 直線 : 図形
{
上書 描画する(描画先)
{
描画先.描画する(this);
}
};
0880デフォルトの名無しさん
2012/07/23(月) 00:59:40.57なんの解決にもなってないだろ
あとそういう描画にダブルディスパッチはやめたほうがいい
拡張性が下がる
0881デフォルトの名無しさん
2012/07/23(月) 01:03:41.02数値はintとかdouble出あつかうとして、点のクラスが必要。
点の集合である基本線のクラス、それらを複数集合した図形クラス。
上記の操作や描画は、それらを利用して処理するようにしたほうがいい。
0882デフォルトの名無しさん
2012/07/23(月) 01:05:04.40直線には不要なメンバ(角度、中心点)がありますよね
直線と円弧の親クラスに角度、中心点もメンバとして入れるか否かを聞きたいです。
0883デフォルトの名無しさん
2012/07/23(月) 01:07:45.88せめて図形側を抽象化クラスにして単方向の参照にしたほうがいい
あと、ダブルディスパッチするなら"描画する(図形)"は要らんだろ
0884デフォルトの名無しさん
2012/07/23(月) 01:09:12.32LokiのCyclic Visitorのような物を使えば、拡張性は逆に上がるとおもうけど。
>>879だと描画先だけど、オブジェクトに対する操作をストラテジパターン的に扱えるようになるし。
0885デフォルトの名無しさん
2012/07/23(月) 01:11:06.51目的をBitmap限定にするならそれでもいいかもしれんが、
バックエンドをOpenGLやSVGみたいなベクターグラフィックにするならアウト。
SSEつかって描画したいってケースでも使えない。
単に描画指示情報と、レンダラーに分離したほうがまだ意味がある。
0886デフォルトの名無しさん
2012/07/23(月) 01:13:02.54>>874の悩みになんの解決にもなってないって話。
0887デフォルトの名無しさん
2012/07/23(月) 01:17:18.70横槍だがこの表現自体が気に入らん
クラス ウィンドウ : 図形
とか作るのか?
クラス ウィンドウ : 描画要素
クラス 直線 : 描画要素
でいいだろ。(実際にはPaintableみたいな名前)
図形は図形で境界管理とか位相管理とか別の継承ツリーになるはずだ。
0888デフォルトの名無しさん
2012/07/23(月) 01:20:28.230889デフォルトの名無しさん
2012/07/23(月) 01:24:06.47struct line_mover : public visitor
{
void visit(直線)
{
直線.開始点.x = 1;
}
void visit(円){} // visitorで何もしないデフォルトの実装を用意してもよし
void visit(円弧){}
};
図形.accept(line_mover());
じゃ、だめなん?
0890デフォルトの名無しさん
2012/07/23(月) 01:27:31.94行列に合わせて拡大するとか。尤も厳密な位相調整はレンダラーの方でやるだろうから
相対的な大きさや位置の調整しかやる事ないだろうけど。
0891デフォルトの名無しさん
2012/07/23(月) 01:29:13.13ダブルディスパッチ使ってるだけでさっきのと意味合いが全然変わってんじゃん
0892デフォルトの名無しさん
2012/07/23(月) 01:32:52.47そんな手間の掛る事するぐらいなら>>875でいいだろ
0893デフォルトの名無しさん
2012/07/23(月) 01:53:43.91まず、何と何に出力したいの?それから何と何から入力したいの?
どういう加工をしたいの?そこをはっきりさせないと万能な解決策なんて無い。
だいたいOOをしたくてコードを書くんじゃなく、ある目的のソフトを書く上でOOを取り入れてるだけな筈だ。
0894デフォルトの名無しさん
2012/07/23(月) 18:56:43.98クラスAには属性aが存在するが、クラスBには不要な属性
0895デフォルトの名無しさん
2012/07/23(月) 19:04:02.18という場合が多々ある。
サブクラスのことを知っている親クラスなんて腐ってるし、
サブクラスのことを配慮した親クラスも結局足をひっぱる。
言ってる意味が分からないならそのままつっぱしればいい。
半年後に気付く。
0896デフォルトの名無しさん
2012/07/23(月) 19:24:37.02わかります
0897デフォルトの名無しさん
2012/07/23(月) 21:04:58.50ダックタイプできない言語のほうがむしろ少数派なんだから
0898デフォルトの名無しさん
2012/07/24(火) 02:09:24.52なんでアウトかしらんが、全部分離しろ。
0899デフォルトの名無しさん
2012/07/25(水) 19:39:31.86点の集合体はベクターに出来んだろうが
0900デフォルトの名無しさん
2012/07/26(木) 01:40:58.86描画に制限があるからって、データ側が描画側の都合にあわせてどうする。
点集合を描画に必要なデータに変換する機能を作ってそっちにまかせて抽象化しろ。
0901デフォルトの名無しさん
2012/07/26(木) 06:19:35.380902uy
2012/07/27(金) 02:29:56.690903uy
2012/08/03(金) 12:55:23.92結局ゲーム内オブジェクトって「物」じゃねーもん
もっといえば「オブジェクト(種類付)」じゃないよ
ゲーム内で使うオブジェクトっていうのは、
種類、区別のないオブジェクトだよ
class Block ← はい、この時点で設計間違ってます
class Node ← 正解
class Obj ← 正解
一は全で、全は一 の状態にさせないと、まともなゲームプログラムはかけない
確実にハードコーディングになる
0904デフォルトの名無しさん
2012/08/03(金) 22:50:20.260905デフォルトの名無しさん
2012/08/04(土) 12:21:51.140906デフォルトの名無しさん
2012/08/05(日) 01:08:26.62ゲームじゃ使わないのかもしれんが、これらはオブジェクトとして扱えたほうが良い。
0907uy
2012/08/05(日) 06:58:45.91ゲームで使わないものはない
使い方が違う
0908デフォルトの名無しさん
2012/08/05(日) 11:51:52.890909uy
2012/08/05(日) 19:55:37.38俺はいつの間にか商品としてのゲームを作っている話になっているらしい
そもそもカテゴリー的にはゲームでも、ゲームとか作ってる気はない
作っているのは世界
俺が何のために、わざわざプログラミングで最強スキルを手にして
ゲーム()ごときを作るには
勿体無いくらいの技術で開発しているかを分かっていない
ああ、そうだな・・・
やっぱお前らはオブジェクト指向でいいよwwww
0910デフォルトの名無しさん
2012/08/05(日) 19:56:49.110911デフォルトの名無しさん
2012/08/05(日) 21:04:46.30オレはゲーム開発の仕事で15年以上食ってるけど必要。
0912デフォルトの名無しさん
2012/08/05(日) 21:58:05.400913デフォルトの名無しさん
2012/08/05(日) 23:27:41.05部分的には便利というレベルで
必ず必要というものでもない。
0914デフォルトの名無しさん
2012/08/06(月) 00:13:53.670915uy
2012/08/06(月) 08:14:07.99ゲーム内で使うオブジェクトは本当は「物」ではないでFA
チーム開発で足並みそろえる為にOOでやってるとかそんなのは知らない
ただ本質的にはそうというだけ
0916デフォルトの名無しさん
2012/08/06(月) 19:01:48.34そろそろ自分の開発に戻れよw
480 : uy : 2012/05/07(月) 11:27:57.63
いやいい
俺はそろそろ自分の開発に入る
最近やけに初心者相手にソース2chにあげまくったりしていたのは少しプログラム離れていたから
感を取り戻す為にやっていた
0917uy
2012/08/07(火) 08:08:31.64いまはプログラムから離れすぎて感覚を失わないようにム板を見ている
0918デフォルトの名無しさん
2012/08/07(火) 10:32:14.23\ 俺が仕事も勉強も完成させないのは別にできないからじゃない。
ヾ, ;;) やりたくないわけでもない。もうプログラムの作業は8割終わってる。
ヾ,.;″ ;,;;) いまはプログラムから離れすぎて感覚を失わないようにム板を見ている
) こんなことって、
ー――-,, ,,,,-'" i) 世間のがさつで無神経な奴らには絶対に理解できないだろうし、
____ ヾ / ___ i′ してほしくもない。
ヽ(;;;;)丿 '.(;;;)ノ i 人
 ̄ i < > ─┼─
(.,,. .,,.) i ∨ ─┼─
,i │
,、____, i | | /
.---‐ ,ノ _/
ヽ ヽ、 _ _ _ ,ノ
0919uy
2012/08/07(火) 14:34:53.08ていうかここ数日、全力でruby情報漁りまくってるが
情報追うのマジで疲れた
こんな言語でも10年くらいの歴史はあるし、
そのログを漁っていくのは大変すぎ
でも古参()に舐められるのウザいから覚えていく
まだ実装側のソースコード解読にはほぼ着手してないし
いくら俺様が1回見た情報は1度で記憶できるとは言っても、流石に厳しいものがある
あ、ちゃんと2004年とか2008年ごろにruby-listを騒がしたカス共の情報もサルベージ出来てます
0920uy
2012/08/07(火) 14:40:44.80かなりコアな部分になってくると、
そういうrubyの部分は積極的に使うべきではなく、
コアな部分に触れる事によって有益なものを作れたら
コードを綺麗にまとめてアップするとかでいい気がしてきた
実装がゴミカスっていうんじゃないけれど
誰も戦わない場所で戦ってる感じ
完璧に扱いたい!→でも一生に一度使うか使わないかの機能ばっかりだ→rubyなんてやめてやる!
結局こうやってrubyアンチが増えていくのかもしれない
完璧主義者ほどrubyは扱えない
0921デフォルトの名無しさん
2012/08/07(火) 22:37:16.10必要なことが出来るようになっていて、それを知ったり作ったりする手間を省くためのもの。
全部知る必要があるなら、CPUを作るためのシリコンの扱いから覚えろ。
0922uy
2012/08/07(火) 23:33:04.65ライブラリではなくruby特有のノウハウについてだ
rubyは奥が深いにも関わらず深部を解説してるサイトが個人ブログくらいしかないからルビリストに俺は正直rubyのコードで勝てないと思ってる
結局rubyコミュニティ入るか実装ソース読まないと2、3歩遅れたruby情報しか拾えない
ruby情報ぐぐればぐぐるほど知らないことが未だにでてくる言語だよ
奥が深いってレベルじゃないバージョンアップしても何がどう変わったのかどこにも情報まとまってないからわかんねーしさ
ちょっと各クラスのメソッド一覧を表示して一個一個ぐぐって使い方を調べていく作業は飽きたよ?
完全記憶能力は比喩的な表現であってその能力を維持するためにはそれなりのエネルギーを消費する
0923デフォルトの名無しさん
2012/08/07(火) 23:37:40.12なくても困らないものは使わなくてもOK
0924デフォルトの名無しさん
2012/08/08(水) 00:06:38.920925デフォルトの名無しさん
2012/08/08(水) 07:52:14.18アスペか?
話通じなすぎて怖いわ
俺がいってんのはruby言語のマイナー構文やコア部分仕組みだよ
で、それを仕組み知っているルビリストと知らない一般ruby使いで
不思議rubyハックコードをかいた時に明らかに差がでる
アルゴリズム的な差というより
こんなクラスあったんだメソッドあったんだ構文あったんだみたいな知識的な差
そういう知識的な差を埋めるためにぐぐりまくってるけど
これからぐぐらなくちゃならない情報は4桁単位だよ?ルビリストはこれ全部覚えてるならマジでやばい
経験がそうさせるんだろうか
0926デフォルトの名無しさん
2012/08/08(水) 10:05:40.520927デフォルトの名無しさん
2012/08/08(水) 10:30:19.110928デフォルトの名無しさん
2012/08/08(水) 15:06:12.580929uy
2012/08/08(水) 19:36:14.12感心するわ
でもenumrable周りってまだなんかおかしいよね
nextとnext_valuesってあるけど
あれは結局
1種類のnilしかないからああなってんだよね
1種類のnilしかない弊害はハッシュ引数においても発生する
処理内部に外部からはみえないnilとrubyユーザーがみることができて扱えるnilが必要だと俺様はおもう
キーワード引数でなんとかなるならいいんだけどな
いまの仕様だとバグの元になるだけだからハッシュ引数にnilやfalseはやたらと渡せない
0930デフォルトの名無しさん
2012/08/08(水) 20:10:36.29まずスタンドアロンでMVC試せよ
ネストしてるViewをどうやって操作するとか
考えにゃならんから最初から複雑なもん作ろうとしたら
後々大規模に直したくなって困るぞ
0931デフォルトの名無しさん
2012/08/08(水) 20:13:50.79描画とイベントをくっつけて原始的にGUIつくろうってときはMVCで十分だけど。
0932デフォルトの名無しさん
2012/08/09(木) 08:32:17.14数種類のエクセルシートを、数種類の帳票に変換して出力するというツールをどう組むか迷っています。
いずれのエクセルシートも、全ての種類の帳票に変換可能です。
仮にエクセルシートがA, B, Cと、帳票がD, E, Fとあるとしたら、
エクセルシート抽象クラス
エクセルシートクラスA
エクセルシートクラスB
エクセルシートクラスC
帳票クラス抽象クラス
帳票クラスD
帳票クラスE
帳票クラスF
という風にクラスをつくった後、
「.xlsファイルから値を読み取り、メンバ変数に格納していくメソッド」を抽象クラスに定義し、
エクセルシートクラスA, B, Cにオーバーライドして実装させる。
そして、帳票クラス抽象クラスに、
「エクセルシートクラスのインスタンスのメンバーを帳票クラスのインスタンスに代入していく」メソッドを定義し、
引数違い(エクセルシートクラスA, B, C)でオーバーロードさせておく。
そして、帳票クラスD, E, Fにその中身を実装させる。
という風なものを考えてみましたが、皆さんならどのように組まれますか?
0933デフォルトの名無しさん
2012/08/09(木) 08:54:44.250934デフォルトの名無しさん
2012/08/09(木) 09:28:09.76その考え方でいいと思うけど
0935デフォルトの名無しさん
2012/08/09(木) 09:46:03.00クラス階層不要と思うけどな。シートのほうも良く分からん。
読み込んだシートを数集類に判別した後、
それごとにデータをただ単に読んで、
データのラインナップを共有してんなら、
DataModelクラスでも使ってそいつを、
シート→モデル→帳票としてパラメータに使う。
帳票のほうは独自性がどうせ高くなるだろうから、
先に言ったように、クラス階層は意識させない。
データをチョコっと計算させたり、
独自のフォーマットに従わせたいような場合は、
データモデルの方をいじる。
帳票はそっからデータをもらって、あとは単に頑張って描画。
描画が複雑になるようならヘルパ用クラスを作って、
必要に応じて、各帳票クラスはそれをコンポジションとして使う。
0936デフォルトの名無しさん
2012/08/09(木) 09:48:29.50Graphicsじゃなくて普通にテキストとして書き込むんじゃないの?
0937デフォルトの名無しさん
2012/08/09(木) 09:50:12.340938デフォルトの名無しさん
2012/08/09(木) 10:03:22.38GUIにはMVCアーキテクチャという発想があって、
今回のケースは対話(controler)がないからModel-Viewだけになる
で、>>935の話はModelとView(Graphics2Dなど)との関連を考察していて、
ModelとViewとの間にクラス継承関係は存在しないし、その内容も間違っていないと思う
ただし、>>932の相談はModel内部のクラス継承設計に関する事柄じゃないのかな?
で、それについては(>>934の言うように)>>932の考え方でいいと思う
両者は直交する視点からの考察であって、どちらも正しいし矛盾した議論ではない
0939デフォルトの名無しさん
2012/08/09(木) 11:26:22.57自分ならVB-Reportを勧める。
自作で作るよりは結局安上がりになると思うから。
まっ設計のレスだから自作の話でいいとおもうけど。
OOの設計なら
>エクセルシート抽象クラス
>エクセルシートクラスA
教科書的な設計でいいと思う。
自分もこんな感じの抽象ー具象クラスで作っていた。
でも、最近は具象クラスのみで作っている。
OOらしくないけど、やっぱり処理やIFは一箇所に固めた方が理解しやすい。
その後に改修が入った時点で、継承をして機能変更するスタイルにしている。
0940932
2012/08/09(木) 19:42:35.020941デフォルトの名無しさん
2012/08/09(木) 20:59:58.27・Excelクラス群
・変換クラス群
・帳票クラス群
抽象化クラスがExcelに一個、帳票に一個じゃ
インターフェースとしての抽象化クラスが肥大しかねん。
帳票群のそれぞれに適した抽象化クラスを複数と
Excelクラス群の抽象化クラスを複数定義し、
変換クラスによってそれぞれの抽象化クラスを
つなぎ合わせる。
例えば、ある少数の帳票でしか使わないデータ書き込み手順があったとする。
その形式ためだけに、帳票の抽象化クラスにメンバーを追加したり
Excel側に対応求めるってのは極力避けたい。
予め変換クラス群の抽象化クラスを経由してやりとりするようにしていれば
最低限の変換処理を記述した変換クラスを追加するだけで
新しい形式に対応できるようになる。
0942デフォルトの名無しさん
2012/08/09(木) 21:01:55.82頭のいい方は考えることが違うね
0943デフォルトの名無しさん
2012/08/09(木) 21:23:58.09http://engawa.2ch.net/test/read.cgi/poverty/1344466560/
住宅市場冷え込み悲鳴上げる建設会社
100大建設会社の4分の1は倒産、関連産業も続々とまひ
資産価値の下落が続く場合、生活苦に陥った「ハウスプア」が子どもの塾通いや外食、各種ショッピングの費用などを減らし、
深刻な内需不況の泥沼にはまり込むという懸念も出ている。
資金難に耐えられず、倒産する建設会社も続出している。大韓建設協会によると、施工能力評価額基準で上位100社に挙げられる
建設業者のうち、現在23社が企業改善作業(ワークアウト。経営再建)や企業回生手続き(法的管理。会社更生)を進めている。
建設協会のチェ・ユンホ専務は「このままでは、10大建設会社を除けば生き残る建設会社はほとんどないだろう」と語った。
2012/08/04
http://www.chosunonline.com/site/data/html_dir/2012/08/04/2012080400787.html
0944デフォルトの名無しさん
2012/08/09(木) 23:51:08.430945uy
2012/08/10(金) 00:58:31.13rubyはあらゆるものをインタプリタ上から拡張できる詳細をどれだけ知っているかで拡張できる範囲が変わる
それによるとんでもないハック
知らない奴は知らない世界
0946デフォルトの名無しさん
2012/08/10(金) 01:16:39.300947デフォルトの名無しさん
2012/08/10(金) 08:15:18.87おまえ等が効率悪くてもあまり俺に関係ないし
0948デフォルトの名無しさん
2012/08/10(金) 11:03:48.010949デフォルトの名無しさん
2012/08/10(金) 16:19:40.460950デフォルトの名無しさん
2012/08/10(金) 17:05:55.020951デフォルトの名無しさん
2012/08/10(金) 17:07:13.870952デフォルトの名無しさん
2012/08/10(金) 17:17:27.600953uy
2012/08/10(金) 17:29:58.470954デフォルトの名無しさん
2012/08/10(金) 17:38:11.11uyに同意だ
0955uy
2012/08/15(水) 01:49:41.59本気でオブジェクト指向で書くとグローバル変数1個もなくなるよね?
でも色んな場所で使う情報はグローバル変数に入れたほうがコーディング効率が良い
オブジェクト指向的にグローバル変数って概念は有りなの?無しなの?特例なの?
0956デフォルトの名無しさん
2012/08/15(水) 03:22:21.34参照可能になっていてset/get的なメソッドがあって、
メジャーなクラスライブラリのリファレンスを見て行くと
グローバル変数的な何かを発見してしまうことしばしばw
0957デフォルトの名無しさん
2012/08/15(水) 07:14:36.42ただしグローバル変数に直アクセス出来るならクソ
Cであっても関数経由でのみアクセス出来るならいい
0958デフォルトの名無しさん
2012/08/15(水) 09:29:16.21グローバル定数ならあるけど
0959デフォルトの名無しさん
2012/08/15(水) 13:59:06.14機能にデータを渡すのではなく
データに機能が付いている。
つまり、オブジェクトは変数と同等。
オブジェクトがどこからでも参照でき
更新に制約がなければ、そのオブジェクトはグローバル変数と変わらない。
オブジェクト=機能と取られる人が多いが
OOの本質からするとオブジェクト=変数だと理解出来ている人が少ない。
0960uy
2012/08/15(水) 14:10:50.02またゲームの話になってしまうけど
Player情報っていうか、
残機 、残ボム、 得点 、プレイヤー自身のオブジェクトのポインタ(Enemy_shotとかでプレイヤー座標が欲しい為)
この4つくらいはどうしてもグローバル変数になっちゃうんだけど
ここら辺だけが唯一ソースがまとまらない
一応ライブラリ内部のみでグローバル変数アクセスは行って、表面上は相対アクセスのように見せかけたりは出来るけど
ゴミ箱に蓋をしたに過ぎないと思う
0962デフォルトの名無しさん
2012/08/15(水) 14:29:49.18データでも関数でもない単位を扱いたいから、
わざわざ抽象化してそれをオブジェクトと呼んだのでは?
しかも、インタフェースのデザインを考える場合、
実質的にはメソッド群とそれにつける名前を設計するわけで、
そう考えるとどっちかというとOOPでの設計の本質は、
「メソッド群+その命名」の設計だと思う。データというよりはね。
0963デフォルトの名無しさん
2012/08/15(水) 14:41:51.03シングルトン
0964デフォルトの名無しさん
2012/08/15(水) 14:45:42.06ゲーム管理クラスがそれぞれのオブジェクトを管理する。
シーンを木構造で考えるとどこに配置するのが良いか見えてくると思う。
システム-> メニュー
ゲーム -> プレイヤー情報
スコア
ステージ -> 自機
-> 背景
-> 敵
アーケードでSTG作ったときはCしか使えなかったのでCでツリー構造の処理系作ってこんな感じで処理してた。
まあ、いわゆるアレシステム。 弾とかアイテムは数が多いので1つのアレでまとめて管理
0965デフォルトの名無しさん
2012/08/15(水) 14:46:55.38システム-> メニュー
ゲーム -> プレイヤー情報
スコア
ステージ -> 自機
-> 背景
-> 敵
C++ならそれぞれをオブジェクトにしてそれぞれの生成/破棄を管理する感じかね。
0966uy
2012/08/15(水) 15:14:00.17一応、木構造だけど、
rubyの
class A
end
このclass Aの内部からアクセスできるのはグローバル変数だけなんだ
Cでいうところのグローバルstatic変数が欲しいけどそれは無い
システム-> メニュー
ゲーム ->
ステージ -> 自機( プレイヤー情報( スコア )
-> 背景
-> 敵
システム-> オブジェクトパターン ->
-> 自機
-> 自機ショット
-> 敵
-> 敵ショット( 誘導弾とかの作成の為に自機の情報へアクセスしたい )
-> エフェクト etc
設計はいまこんな感じで、いま自機のところに情報を詰め込んだ
この オブジェクトパターン 自体はライブラリにされていて
そこのパターンから選択してゲームを作る形
自機情報と、現在どのシーンを見ているか?っていう情報だけグローバル変数にポインタを持たせてる
0967959
2012/08/15(水) 15:32:12.81>そのグローバル変数をなくしたい
グローバル変数とローカル変数の違いは
・スコープ
・生存期間
これを管理すれば、ローカル変数と同等。
オブジェクトを指す”変数”のスコープや生存期間を制御すればいい。
>>962
>わざわざ抽象化してそれをオブジェクトと呼んだのでは?
抽象化はクラスレベルで定義。オブジェクトでは具象化されている。
>実質的にはメソッド群とそれにつける名前を設計するわけで、
メソッドは手段であって目的はフィールド(変数)の操作。
「○○○をXXXする」○○○の主語がフィールドで、XXXの動詞がメソッド。
メソッドの存在しないオブジェクトはありえるが
フィールドがないオブジェクトは関数ライブラリと同じ。
0968uy
2012/08/15(水) 16:02:40.83シーン自体に初期化や、解放の為のコードは書きたくない
俺様のはOOとしてみたらクズ設計だと分かった
オブジェクトの動作パターンはシーン以下の階層には置かないことは決定してて
そこからステージ内の変数にアクセスって事は、アレか
初期化のための
セッター & げったー か グローバル変数と大差ない
もういいや
0969uy
2012/08/15(水) 16:03:45.96いける
0970デフォルトの名無しさん
2012/08/16(木) 01:49:29.27C++ならファクトリー関数をクラスに持たせてやることでカプセル化が強固になる。
クラス内での生成はしたくないということだが、必要なときに必要なものだけ生成するようにしないと
全部のリソースオンメモリなゲームになる。STG程度ならまあいまのPCなら余裕ではあるが。
0971uy
2012/08/16(木) 04:12:01.50グローバル変数が出来る事は別によかったんだ
rubyはモジュール、クラスのスコープが複雑だから、そこにさらにMix-inの関係も複雑になる場合だと
メンバ変数、クラス変数がどこまでスコープ聞いてるか俺でも分からなくなるので
思い切ってグローバル変数にした方が圧倒的にマシ
どこにその変数作るかとか、そのグローバル変数の初期化場所で悩んでただけかもしれない
クラスは使ってないけどカプセル化については、完璧すぎるくらいに出来てる
いやクラスは1個だけ使ってるんだけどね
シーンも含めゲーム中のオブジェクトの全てを生成するクラスが根にあって
そのクラスでオブジェクトを生成してから、lambdaで実装を書くような感じだから
メンバ変数やクラス変数もないし、基本的にローカル変数しか必要としないので最強
0972デフォルトの名無しさん
2012/08/16(木) 23:40:25.51,,r::::::::::::〈:::::::::) ィ::::::ヽ
〃::::::::::::;r‐''´:::::::::::::::::::::ヽ::ノ
,'::;'::::::::::::::/::::::::::::::::::::::::::::::::::::
l::::::::::::::::::l::::::::::●::::::::::::::●:::::ji
|::::::::::::::::::、::::::::::::::( _●_)::::::,j:l クマー!
}::::::::::::::::::::ゝ、::::::::::|∪|_ノ::;!
. {::::::::::::::::::::::::::::`='=::ヽノ:::::/
';::::::::::::ト、::::::::::::::i^i::::::::::::/
`ー--' ヽ:::::::::::l l;;;;::::ノ
【ラッキーレス】
このレスを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
0973uy
2012/08/17(金) 00:15:40.80,,r::::::::::::〈:::::::::) ィ::::::ヽ
〃::::::::::::;r‐''´:::::::::::::::::::::ヽ::ノ
,'::;'::::::::::::::/::::::::::::::::::::::::::::::::::::
l::::::::::::::::::l::::::::::●::::::::::::::●:::::ji
|::::::::::::::::::、::::::::::::::( _●_)::::::,j:l クマー!
}::::::::::::::::::::ゝ、::::::::::|∪|_ノ::;!
. {::::::::::::::::::::::::::::`='=::ヽノ:::::/
';::::::::::::ト、::::::::::::::i^i::::::::::::/
`ー--' ヽ:::::::::::l l;;;;::::ノ
【ラッキーレス】
このレスを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
0974uY
2012/08/18(土) 03:43:22.24最高の気分です
0975uY
2012/08/21(火) 20:43:54.16Windowsにあるようなウィンドウをプログラム内で作りたいんだけど
一応WinAPIにならってウィンドウオブジェクトにメッセージを飛ばす形で作ってる
アクティブウィンドウと非アクティブウィンドウってあるけど、
非アクティブウィンドウをクリックした際のメッセージを送るタイミングってどうするべき?
非アクティブ状態ではメッセージをウィンドウは受け取らず、
"アクティブにする"というメッセージを送ってからアクティブにさせてから
クリック判定されたとかのメッセージを送るか
そもそも非アクティブ状態でもメッセージを送信するようにしておいて
ウィンドウ側で、自身が非アクティブな場合は不必要なメッセージをスルーするようにするか
Windowsのウィンドウのカスタマイズ性を考えると
後者の実装のような気がしなくもないけど、アクティブ非アクティブ関係なく全ウィンドウに常にメッセージ送信してるのってどうなんだろう
レス数が950を超えています。1000を超えると書き込みができなくなります。