- 1 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 21:22:08.41 ID:iNm25OoA]
- ゲーム製作におけるC/C++全般に関するスレです。
元スレ DXライブラリ 総合スレッド その12 toro.2ch.net/test/read.cgi/gamedev/1330000532/
- 41 名前:名前は開発中のものです。 mailto:sage [2012/05/23(水) 23:25:09.30 ID:IjYu3jeM]
- >>39
すいません、調べればわかることでしたね・・・ ただ、コンストラクタでインスタンス化してポインタに代入しても、 実体はコンストラクタのスコープの中だけで コンストラクタが終わるとデータも無くなる・・・ ということはないのでしょうか?
- 42 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 00:08:46.35 ID:h3LSjb5w]
- ID:IjYu3jeMはmapを使いたいって言ってた人だろ?
諦めんなよ
- 43 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 00:45:10.53 ID:mZT3BYan]
- >>41
newで確保した領域はdeleteされるまで存在しますよ。 なのでデストラクタ―が呼ばれるまで大丈夫です。 気にしているのは、ポインターdataの寿命かと思いますが、 dataはクラスのメンバ変数なのでこちらも大丈夫です。 dataの初期化はコンストラクタの初期化子でも設定できるみたいです。 こちらの方が初期化として、意味的に正しいのだと思います。 Hoge( UINT n ) : data( new DATA [n] ){}
- 44 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 06:29:42.60 ID:sYTZ8FZ7]
- いろいろ環境や目的もあるだろうからあれだけど
std::vectorやstd::dequeを参照で渡すほうが遙かに楽だと思うぜ まあイテレータの宣言はダラダラ長くてめんどくさいけど
- 45 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 08:26:33.69 ID:qNAXiXfS]
- C++11ならAutoさんが活躍
- 46 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 09:19:00.25 ID:n/ZlLmSI]
- >>43
とても参考になりました! ありがとうございます!! >>44 こっちのほうが楽じゃないですか? 自分の無知から来る疑問ですけど
- 47 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 09:33:53.29 ID:AVLO1dG0]
- 絶対vectorのほうが楽。
new/deleteで神経質になる必要が無いし、配列サイズ変更も楽。 >>37でもいいし、漏れはコンストラクタで Hoge(int num){m_array.resize(num,0);} にする。引数の0は初期値。 あえてvector使わないときは、 せいぜい定数代わりの配列使うときくらいかな?
- 48 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 10:20:14.62 ID:YnP/Ncq+]
- 自分を初心者だと思ってるうちは、STLを安易に使わないほうがいい。
中級者向け。
- 49 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 11:53:20.03 ID:Mn2K1W8a]
- STLこそ初心者向けだろw
- 50 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 12:21:42.12 ID:sYTZ8FZ7]
- >>46
ゲームだとこんな処理したくならない? /** キャラクター一覧 */ int listUp( std::vector< MyCharacter >& v ) { if ( v.empty() ) { Message( "キャラクターがいません" ); return 0; } int s = v.size(); for( int i=0; i<s; ++i ) { Message( v[i].Name ); } return v.size(); }; 配列の操作を経験しとくのはいいことだと思うけど リスク≒デバッグ負荷って面もあるしな 表記が長くなるって程度のめんどくささはあるけどね
- 51 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 13:31:37.34 ID:YnP/Ncq+]
- >>49
入門書にSTLが載っているが、それを理解したら入門者じゃないんだなw とりあえずC++入門3分の1ぐらい読んで、作り始めちゃっているようなやつが初心者なわけで。
- 52 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 14:00:10.53 ID:cjBLATMC]
- Cの本なんてほとんど読んだ事もなくて、STL? vector? インスタンスとかメソッドとか何それ?
な状態でゲームを数本完成させた俺は初心者ですか中級者ですか。
- 53 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 14:11:15.14 ID:0uzx/Lw1]
- ゲームの内容や規模によるだろ
規模が大きくなるにつれて低レベルの処理が重要になるからSTLを選ぶかどうかが重要になる 小規模なら力技で何とかなるし
- 54 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 15:26:20.14 ID:Mn2K1W8a]
- STLを使うのは誰でもできるだろ。
あれと同じ機能のクラスを実装しろってんなら 中級以上じゃないと無理だが。
- 55 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 15:34:03.30 ID:9WXEv1xv]
- >>52
間違いなく初心者
- 56 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 15:35:30.76 ID:/ghVU8JG]
- >>52
他人に自分のコードを説明できなきゃ初心者 他人のコードを読めて理解できれば中級者
- 57 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 18:15:50.25 ID:CY70W+Ee]
- クラスの中に int main()
- 58 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 18:37:54.09 ID:/ZaEqx4s]
- 初級者中級者ぐだぐだ言ってるやつは初心者に決まってるだろw
- 59 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 20:00:14.96 ID:YnP/Ncq+]
- STLは難しいとされてるのが一般的じゃないの?
そりゃプリミティブ型でpush_back()しか知らないで使うならいいけど、 コピーコンストラクタとかスマートポインタに関する 理解をもたないでやったら謎バグに嵌るのが目に見えるわ。
- 60 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 20:11:52.79 ID:qNAXiXfS]
- 別に嵌っても良いんでない?
勉強になるし
- 61 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 20:37:53.40 ID:9WXEv1xv]
- スマートポインタはSTLじゃなくてboost使ったほうがいいよ。
スコープで一時的に使いたかったらunique_ptrでいいけど。
- 62 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 20:49:46.55 ID:IK85TX04]
- STL使うとバグに悩まされるけど、自前でlistだのmapを実装するとバグはないらしい
- 63 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 20:55:53.89 ID:9WXEv1xv]
- いやいやいや、そぉかぁ?www
昔のSTLならともかく、今はそれはないでしょーw ゲームじゃないけど、業務にバリバリvectorとlistとsetとmap使って遭遇しなかったよ。 STLportだけど。
- 64 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 20:59:05.52 ID:iewKyvkB]
- >>62
妄想乙w
- 65 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 21:03:23.03 ID:IK85TX04]
- いや、>>59の主張を言い換えただけなんだが・・・
- 66 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 21:09:15.76 ID:9WXEv1xv]
- 俺にはauto_ptrなどのスマーポインタをわけわからんで使ったときの挙動と解釈した。
STL自体のバグには言及してないっしょう。たぶん。
- 67 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 21:14:13.92 ID:hIKRkdFB]
- STLなんて、std::vectorとstd::mapにstd::string出し入れするだけなら、
解説サイトの例文をコピペするだけで使えるじゃん コピペで定番の処理ができるものについては、 初級のうちからガンガンやっといていい 自分で考えるところが出てくるようなものは、多少プログラムに慣れるまでは 迂闊に手を出さないほうがいいかもしれないけど
- 68 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 21:47:13.31 ID:YnP/Ncq+]
- コピペおまじないプログラムだとこうなる
toro.2ch.net/test/read.cgi/gamedev/1330000532/796
- 69 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 21:55:02.55 ID:8FH0wSaN]
- 仕様を理解せずに使えばどんなライブラリだってバグの温床になるよ。
問題は自分の不勉強をライブラリのせいにする無能さ加減。 原因追及は出来ないけどSTLを使うとバグるとか言う人間はその典型例。 きっちり検証した上で、ここの実装がおかしいとか指摘できるならその限りにあらずだけどね。
- 70 名前:名前は開発中のものです。 mailto:sage [2012/05/24(木) 23:31:08.11 ID:n/ZlLmSI]
- newしたクラスのメソッドにアクセスして
テスト用の文字出力みて満足してデリートしないでウィンドウ閉じた (´・_・`)
- 71 名前:名前は開発中のものです。 mailto:sage [2012/05/25(金) 00:11:59.72 ID:9i1PDVc5]
- イテレータとか使い出したら初心者が混乱するのは分かるが、
vectorくらいなら初心者でもぽんぽん使っていいと思う。 インスタンス管理で躓くならstl云々ではなくてC++の勉強しなおしが要る。 >>70 あー、これどうなるんだろうな。 最近のOSだと良い感じにしてくれそうな感じはするが。
- 72 名前:名前は開発中のものです。 mailto:sage [2012/05/25(金) 01:55:38.79 ID:GIl7/nNl]
- Bjarne Stroustrup インタビュー
www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
- 73 名前:名前は開発中のものです。 mailto:sage [2012/05/25(金) 05:50:35.88 ID:7a2EC8PQ]
- >>70
>ウィンドウ閉じた プロセスを閉じればプロセスで使っていたヒープは解放される。 つまりメモリリークはプロセスの内側のこと。
- 74 名前:名前は開発中のものです。 mailto:sage [2012/05/25(金) 07:37:23.51 ID:NHlde/d0]
- 碌に作ったことないけどmainクラスからtitleとかgameとか呼び出してその中でwhileループ、
クリアとかしたらmainに戻ってまた他の項目呼び出すのが簡単に出来そうだな
- 75 名前:名前は開発中のものです。 mailto:sage [2012/05/25(金) 18:21:37.17 ID:AwX4C6l5]
- >>72
懐かしいパロディ
- 76 名前:名前は開発中のものです。 [2012/05/26(土) 14:19:42.97 ID:e8/fGbGH]
- シーンクラスのコンストラクタに、シーンクラスのアドレスを保持するクラスのコンストラクタに渡すことはできるでしょうか?
また、する方法はどうしたらいいでしょうか? ↓イメージだとこんな感じです class abc{ praivate: def* hoge; public: abc(){ def = new def(this*); } ~def(); }; class def{ praivate: abc* hogu; public def(abc* tmp):hogu(tmp){} };
- 77 名前:名前は開発中のものです。 mailto:sage [2012/05/26(土) 14:24:06.06 ID:U5Ue5qkT]
- class defの前方宣言をclass abcの定義前に置く
- 78 名前:名前は開発中のものです。 [2012/05/26(土) 14:24:19.28 ID:lwTzxCQ6]
- >>76
class abc{ の前に class def; を追加すれば出来る。
- 79 名前:名前は開発中のものです。 [2012/05/26(土) 14:35:04.98 ID:e8/fGbGH]
- あ、順番間違えました
コンストラクタの引き数にthis*は、文法としてあってる?
- 80 名前:名前は開発中のものです。 [2012/05/26(土) 14:39:08.15 ID:lwTzxCQ6]
- *thisに直すべし
- 81 名前:名前は開発中のものです。 [2012/05/26(土) 14:49:54.86 ID:e8/fGbGH]
- >>80
ありがとう
- 82 名前:名前は開発中のものです。 mailto:sage [2012/05/26(土) 14:51:45.38 ID:jFmnTHnO]
- thisでポインタ
- 83 名前:名前は開発中のものです。 mailto:sage [2012/05/26(土) 21:13:49.29 ID:U+nTXa0c]
- >>77 >>78 できるか?
引数付きコンストラクタを宣言できないからダメだと思うが。 前方宣言すべきはabcのはず。 class abc; class def{ public: def(abc* pABC){} }; class abc{ public: abc(){ abc* pThis = this; def* pDEF = new def(pThis); } };
- 84 名前:名前は開発中のものです。 mailto:sage [2012/05/26(土) 22:42:16.01 ID:U+nTXa0c]
- .h と .cpp 分けるのは必須だな。
- 85 名前:名前は開発中のものです。 mailto:sage [2012/05/26(土) 23:10:07.09 ID:5tO+iNJs]
- 初心者を装って引っかけ質問してる臭い
>>83 正しいと思うが、俺ならテンプレート使いたくなるな template < class T > class Class1 { public: T * c2; Class1( T * caller ) { c2 = caller; }; virtual ~Class1() {}; }; class Class2 { public: Class1<Class2> * c1; Class2() { c1 = new Class1< Class2 >( this ); }; virtual ~Class2() { delete c1; }; }; 連絡クラスか上位クラスで連携すべきだよね
- 86 名前:名前は開発中のものです。 mailto:sage [2012/05/27(日) 00:26:41.53 ID:ByeFImNB]
- オンライン対戦ってどうやるんですか
- 87 名前:名前は開発中のものです。 mailto:sage [2012/05/27(日) 01:22:42.60 ID:jTp1UMkC]
- C/C++関係ねえw
ネットワーク接続機能のあるライブラリ使う
- 88 名前:名前は開発中のものです。 mailto:sage [2012/05/27(日) 08:50:30.87 ID:2c7du0Oa]
- DirectPlayとか。
- 89 名前:名前は開発中のものです。 mailto:sage [2012/05/27(日) 09:48:40.07 ID:Sq25nKDW]
- VCって何年版がおすすめ?
- 90 名前:名前は開発中のものです。 mailto:sage [2012/05/27(日) 10:22:53.21 ID:DTmcX9vm]
- C++11触りたいなら2010、それ以外は一長一短
- 91 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 07:40:52.97 ID:uR2hVdYz]
- オンラインはな…鯖がな…
- 92 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 07:56:12.09 ID:RkjNhW6P]
- いきなりですが2Dエフェクトってどういう作り方してますか?
数枚画像を用意して、あとはプログラム側で加工するのか、 元から透過画像とかを全部用意して表示するだけなのか…一般的なのはどれだろう
- 93 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 08:10:15.29 ID:IVkwT0S2]
- >>89
特に理由がなければ最新でいいと思うよ 古いバージョンだと色々と対応してなくて面倒 >>92 グラフィック用意して透過や加算で表示
- 94 名前:名前は開発中のものです。 mailto:sage [2012/05/28(月) 09:37:38.39 ID:8NkasfYy]
- >>92
スピード的にエフェクト画像は元から用意しとくべき。 ランタイムでは位置とスケールと透過度を変えるくらいだな。
- 95 名前:名前は開発中のものです。 [2012/05/29(火) 00:47:50.68 ID:ajD2ZMcH]
- marupeke296.com/TIPS_No13_ClassArrayInitialize.html
ここの一番下のplacement newを使ってクラス配列にコンストラクタを使いたいんですけど 一番下って動的に増減できないですよね? クラスAのコンストラクタで、動的に他のクラスB配列(Bコンストラクタによる初期化機能付き)をインスタンス化するにはどうしたら良いでしょうか? クラスBを、クラスAのコンストラクタの引数分、配列にしてメンバにしたいです。
- 96 名前:名前は開発中のものです。 [2012/05/29(火) 03:11:27.66 ID:ZvK6euHz]
- ここの来ると
「寄ってくるな」「来るんじゃねえよ」 こないと、何故かちょっかいが来る 不思議なもんだ
- 97 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 03:34:23.96 ID:ZvK6euHz]
- ホモ本ばっかだけど
男だったんだっけか?
- 98 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 04:04:39.91 ID:ZvK6euHz]
- なんでBLなんだよ orz
- 99 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 05:58:59.29 ID:WcnaYjLE]
- >>95
動的に確保するなら、そもそもBの引数無しコンストラクタ使う必要ないんじゃない? Aのコンストラクタの引数で配列のサイズ受け取って、 Aのコンストラクタ内でその分だけBを作ればいい でも、メモリ管理面倒になるから普通にvector使ったほうが楽だよ
- 100 名前:名前は開発中のものです。 [2012/05/29(火) 08:36:02.60 ID:ajD2ZMcH]
- >>99
Bを、Aのコンストラクタの中でBのコンストラクタに引き数を渡して、初期化をしたかったんですが iniメソッドを別で作ったほうがいいですか?
- 101 名前:名前は開発中のものです。 [2012/05/29(火) 08:36:41.71 ID:ajD2ZMcH]
- vector(´・ω・`)・・・
- 102 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 09:06:33.41 ID:HdwzMGJO]
- vectorでポインタ持たせた方がずっと良い。
動的なサイズ変更とか楽だし。 コンストラクタでnewしてデストラクタでdeleteすれば 別にインスタンス管理で悩むことも無いし。
- 103 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 09:12:31.28 ID:WcnaYjLE]
- >>100
Aのコンストラクタ内で m_b = new B[size]; for (int i=0;i<size;i++) m_b[i] = B(b); とすればいいと思うけど、俺なら確実にメモリリークする自信がある
- 104 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 09:37:49.28 ID:8hClbexe]
- >>103
sizeをconstにすれば大丈夫な気がしてきました! ありがとうございます!
- 105 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 11:11:05.67 ID:kEO6PQW4]
- そもそも同じ引数でいいなら配列版のplacement newてのがあってだな
delete要らないったってデストラクタに意味があるとか使わなくなったから消したいときは デストラクタとplacement deleteを両方呼ばなきゃいけないし 結論としてvector使え、管理面倒ならvector<shared_ptr<T> >
- 106 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 11:31:41.26 ID:HdwzMGJO]
- vectorだと要素数が固定じゃなくても、size()があるしね。
別のコンテナでもイテレータがあるし。 頑なにvector回避する理由なんて無いだろ。
- 107 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 11:54:40.08 ID:0OI7v8Tb]
- そもそもSTLを回避してる理由ってなに?
- 108 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 13:18:32.52 ID:3ho6bi3y]
- コピーコンストラクタが分かっていないとか、
デストラクタの呼ばれるタイミングを理解していないとか、 メンバのポインタがコピーされて二重解放するとか、 仕様を分かっていない馬鹿がバグを出すには十分だからだろう。 無能だからSTLを使わない、その理由に疑問の余地は微塵も無い。
- 109 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 14:08:39.03 ID:ydqxZFnO]
- 言えてる気がする。
俺もどっちかっつーと馬鹿な方だから、STLが怖くて 自作のコンテナ使ってる。 出来合いのものを使った方が機能も多くて堅牢で ずっと良いんだろうけどさ。
- 110 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 16:51:46.79 ID:HdwzMGJO]
- >>109
漏れも最初はそうだったけど、使い始めると一瞬で慣れるよ。 ググったら日本語で解説や使用例が山ほどヒットするのがデカイ。
- 111 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 17:43:50.08 ID:uK14SeXM]
- STLごときで上級者気取る奴は明らかに初心者
- 112 名前:名前は開発中のものです。 [2012/05/29(火) 17:47:49.24 ID:ajD2ZMcH]
- >>103
これってコンストラクタ?? 引き数を渡してるの?
- 113 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 18:28:57.24 ID:WcnaYjLE]
- >>112 >>103
Aのコンストラクタ内で、Bのコンストラクタに引数渡して初期化してる m_b … Aのメンバ変数のBの配列 size … Bの配列のサイズ。Aのコンストラクタの引数とか b … Bのコンストラクタの引数
- 114 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 18:35:32.92 ID:ajD2ZMcH]
- >>113
コンストラクタの返値を代入してるように見える・・・ 「コンストラクタは特殊で、こういう使い方もできる」 って理解でいい?
- 115 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 19:06:36.23 ID:CIJM7t3P]
- 一時オブジェクトをコピーコンストラクタでコピーしてる
- 116 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 19:12:41.63 ID:ZxX1trWI]
- むしろそっちのやり方のほうがSTLコンテナより高度
- 117 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 19:18:19.05 ID:CIJM7t3P]
- いやどっちも全然高度じゃないし
- 118 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 19:33:39.81 ID:oMsrWIHY]
- メモリプール&自作動的配列か
- 119 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 19:36:33.07 ID:HdwzMGJO]
- 俺もさっぱりわからん。placement_newとかなんぞやw
オブジェクトの配列なんて普段STLコンテナしか使わないですしおすし
- 120 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 19:58:54.63 ID:5CsBVBDy]
- 新しい大統領ってことだよ
- 121 名前:名前は開発中のものです。 [2012/05/29(火) 20:55:06.94 ID:ajD2ZMcH]
- >>115
なるほど! あと最後に質問なんですが B(b)って実態できないですか?
- 122 名前:名前は開発中のものです。 [2012/05/29(火) 21:06:49.97 ID:ajD2ZMcH]
- これはできるのでしょうか?
class krasuA{ int hoge; kurasuB* B; kurasuA(int tmphoge):hoge(tmphoge){ for(int i=0;i<hoge;i++){ new(&hugo+i) B(/*Bのコンストラクタの引き数*/); } } }; ↓これをちょっと変えたんですけど marupeke296.com/TIPS_No13_ClassArrayInitialize.html
- 123 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 21:23:59.83 ID:5MrgPwME]
- placement new とか 引数付きコンストラクタはできれば避けたほうがいいな。
- 124 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 21:36:10.64 ID:5MrgPwME]
- >>122
できないよ。全くもっておかしい。
- 125 名前:名前は開発中のものです。 [2012/05/29(火) 22:13:10.43 ID:ajD2ZMcH]
- 間違えました
hugoじゃなくてBでした
- 126 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 22:27:07.32 ID:ajD2ZMcH]
- あ、違う
new(&B+i) kurasuB(/*Bのコンストラクタの引き数*/); こうでした。 int型を足すのがよくわからないですが、リンク先の文章ではクラスの配列をintでずらしてましたし・・・
- 127 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 23:19:35.98 ID:Rb8xQrUK]
- こうやって理解しないままでたまたまコンパイルできちゃったときにバグが蓄積されていくわけだな
- 128 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 23:27:07.76 ID:CxAL5fmd]
- どうも2Dキャラの画像パターンが早いと思ったら>と<が逆だった、紛らわしい
ifとかだと逆になるんだっけ
- 129 名前:名前は開発中のものです。 mailto:sage [2012/05/29(火) 23:41:16.87 ID:ajD2ZMcH]
- *kurasuB B;
int Bnum kurasuA(int num){ Bnum=num; for(int i=0;i<num;i++){ B[num] = new kurasuB("aa"); } } これじゃダメっていう
- 130 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 00:30:51.36 ID:2jOUDrUI]
- 悪いことは言わん
Placement newのことはひとまず忘れるんだ
- 131 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 01:33:55.24 ID:UrD0aw2e]
- 配列とポインタが全然わかってないのが致命的。
もっと初心者向けのやり方でやれ(つまり初期化の関数作れ) int karasu_num = 100; Karasu* karasu_list = new Karasu[100]; for(int i=0;i<karasu_num;i++){ karasu_list[i].Initialize("oh...yea...oh...yes...!"); }
- 132 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 01:47:19.26 ID:UrD0aw2e]
- ちなみに placement new だと。
for(int i=0;i<num;i++){ new( B+i ) kurasuB( "aa" ); }
- 133 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 07:05:58.24 ID:ZKjgmpWL]
- で、それが出来るとどんなゲームが作れるの?
- 134 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 07:48:00.61 ID:UrD0aw2e]
- 無能には作れないゲームがつくれます
- 135 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 08:22:42.69 ID:1zhA8gll]
- >>131
じゃあ>>132のほうが簡単じゃないですか numをconstにすれば多分安全ですし・・・
- 136 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 08:28:13.88 ID:NLDozPhE]
- CRASS **Crass;
Crass = new *CRASS[Num]; for(i=0;i<Num;i++) { Crass[i]=new CRASS; }
- 137 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 08:37:55.19 ID:kfkMhAbK]
- 少々くどいな
そろそろ他の話題が出てこないかな
- 138 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 08:54:24.92 ID:dGAr2JTI]
- 非ポインタ配列・コンストラクタで初期化値渡す、ってのに拘ってたら
何時までたってもゲーム作れんぞ。 コーディング中にゲームデザインの見落とし・見直しで嫌ほど悩むのに。 ポインタでの管理が安全じゃないって思うのは単に理解不足。 九九の答えが合ってるか分からないから足し算で計算するのと同レベル。
- 139 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 09:35:26.80 ID:AhB/MNAS]
- 動いたとしてもメモリリークしまくってそう
- 140 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 09:52:37.13 ID:UrD0aw2e]
- >>135
俺がそちらを進めるのは彼がポインタや参照を理解してないとみたから。 質問の文からみて非常に程度が低い。 とりあえず無難なやりかたで進めながら勉強するか、一生無理だね。。
- 141 名前:名前は開発中のものです。 mailto:sage [2012/05/30(水) 10:10:01.57 ID:RKjVMfvb]
- ポインタと参照がわからずつかえないなら
VBでやったほうがわかりやすいし生産効率あがるとおもう VBで不便に感じたことがCのポインタで便利になったと思え 理解がはやいんじゃないかな
|

|