- 1 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 21:22:08.41 ID:iNm25OoA]
- ゲーム製作におけるC/C++全般に関するスレです。
元スレ DXライブラリ 総合スレッド その12 toro.2ch.net/test/read.cgi/gamedev/1330000532/
- 249 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 00:20:39.87 ID:Em2GMpFA]
- >>248
そうだよ 似た質問しない方が良かった?
- 250 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 00:48:35.66 ID:suZpr76G]
- 何回も同じような質問するのはまずいだろ
「やろとしたができなかった」とか「やってみたが効果がいまいちだった」とかなら それを軽く説明してから改めて質問に入るべきじゃね でなきゃ>>243だよ。相手する意味がないしな
- 251 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 00:55:06.96 ID:NFm2pd34]
- 銃は発射するだけだろ。弾受け取って兵士が処理すりゃいい。
フルアーマーの奴と、裸の奴もおるだろ。
- 252 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 01:12:22.83 ID:5kM6hLnq]
- じゃあ生成したユニットデータに座標を持たせるのと、
マップの座標にユニット番号持たせるのどっちが良いのっと
- 253 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 02:02:20.06 ID:NFm2pd34]
- 好みだろ
- 254 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 05:46:34.75 ID:BRzk8XkE]
- >>252
どっちも持たせる。
- 255 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 07:59:01.95 ID:weX4F0Ac]
- >>251
基本的に当たり判定って食らう側がするもんだよね
- 256 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 08:37:58.08 ID:kLL4aZzx]
- >>255
どっちでもやる事は一緒。
- 257 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 08:47:58.63 ID:Em2GMpFA]
- >>252
処理多くならない?
- 258 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 08:48:30.58 ID:alVEkGAv]
- この手の話って、常に正解を教えられて育ってきた人間が、精神病のごとく質問してくるよね。
自分で決めていいことなのに、自分で決められず、 誰かに正解を提示されないと不安で仕方がない心の病気にかかっているヤツ。
- 259 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 09:49:57.78 ID:TYJ+eYx9]
- それまで・これからのコーディングやゲームデザインによっても変わってくるしな。
その上で、この手法はこういうデメリットがあるし、 あの手法はああいうデメリットがあるし悩んでる。 っていうのを言えば、こういう方法があんじゃね? ってことも言えるんだけど。 質問が大雑把過ぎるんだよな、結局。 恐らくデザインやクラス設計がイマイチ固まってないんだろう。
- 260 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 10:15:50.33 ID:kLL4aZzx]
- 弾が速くて可変フレームレートの場合は、
前回の位置と今の位置との線分で当たり判定が必要だから、 弾を移動させるロジックと同時に判定もさせた方が 楽だと思うに一票。
- 261 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 13:25:02.85 ID:kY76Nlsr]
- 銃の弾は、弾の移動でやったほうが楽だし
地雷の接触などはキャラが動いた時のほうが楽だし 楽なほうでやったらいいんじゃないかい もしくは当たりイベントのスレッドをつくって統括するって方法もあるけど
- 262 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 14:00:18.48 ID:GfSYyx1Y]
- 弾クラスには弾クラスだけで、兵士クラスには兵士クラスだけで
完結するメソッドを持たせて、存在する全ての弾と兵士にアクセスできる 判定クラスがあればいんじゃね? mediatorパターンというか、トランザクションスクリプトというか Cライクやり方をお勧めする。 class Judge { Bullet* all_bullet_array; Soldier* all_soldier_array; void judge_all(){ for(...){...}; } };
- 263 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 15:48:15.62 ID:nQ9KtldE]
- FPSなら線分で良さそうに思えるが
毎フレーム接触判定してるもんなのかな
- 264 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 16:20:02.21 ID:GfSYyx1Y]
- 3Dかどうかもわからんが、彼のレベルからすると
ファミコンマリオぐらいのアクションゲームだと思う。
- 265 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 20:21:19.07 ID:NFm2pd34]
- シミュレーションかもしれんぞ
- 266 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 20:30:56.37 ID:QyF/fiyn]
- マリオって作るの結構難しいよね
あのジャンプなんだよ
- 267 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 21:55:13.21 ID:q0NKYXAt]
- ジャンプ中、亀を蹴って飛び上がれるときと当たって死ぬときが
あるけどどういう判定にしているのかみたいな話題がどっかのスレであったな
- 268 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 22:06:41.15 ID:5kM6hLnq]
- >>257
射線1マスごとにユニット表総舐めする前者と 行動主を特定するのにマップを総当たりする後者 冗長構成の一貫性さえ保てればイイトコ取りの>>254 好きなのを選ぼう!
- 269 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 22:40:23.00 ID:l61wSE5A]
- ユニットスタックの概念がなかったら後者の方が単純でわかりやすいけど、
汎用性とか考えたら前者の方がよいんじゃないかという気がするな。 まぁ今のPCならメモリ不足はあまり心配する必要ないんだし、 前者をベースに後者の「ユニット判定専用マップ」を用意するってのが いろいろできていいかも。
- 270 名前:名前は開発中のものです。 mailto:sage [2012/06/04(月) 23:31:53.31 ID:gSaZzhQ+]
- リアルテイストの競馬育成ゲームで毎年生まれる馬3万体の
遺伝データをずーっとメモリに持たせたらとんでもないことになった思い出
- 271 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 07:03:53.84 ID:5hghPcJi]
- どうなったんです?
- 272 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 19:54:18.88 ID:X1AjLJeN]
- 正直初心者にはマリオですらアクションゲーは無謀だと思う
まずはWizみたいな探索ゲーを作るべき
- 273 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 19:57:18.38 ID:AKltwP6Q]
- おいおいw Wizは難易度高いだろ。
最初はパックマンか倉庫番でいくべし。
- 274 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 20:14:39.78 ID:X1AjLJeN]
- そうかな
シーン管理と変数配列構造体辺り出来れば割りとなんとかできそうなんだけど
- 275 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 20:35:08.86 ID:s+a7RtxR]
- 探索だけなら簡単だな。
1マス未満の移動を出来るようにするとか、戦闘やらイベントを加えると途端に面倒だと思う
- 276 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 20:57:04.12 ID:rQvv9pU4]
- 宣言用.hと定義用.cpp作って
そこにexternで変数関係ぶち込むと凄い楽できることに気付いた 単純なミニゲームとかなら楽に作れそうだけど何か穴とかあるのかな
- 277 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 21:12:18.32 ID:s+a7RtxR]
- 単純なミニゲームならそれでいいんじゃね。
規模に比例して、デメリットが大きくなると思うけど。
- 278 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 23:39:25.37 ID:mjwjZU1k]
- >>276
関数外のstaticの使い方とか覚えると、さらに世界が広がる >>277 デメリットって?
- 279 名前:名前は開発中のものです。 mailto:sage [2012/06/05(火) 23:46:14.46 ID:mjwjZU1k]
- >>236
ソースプリーズ new はVirtualAllocを呼ばないだろ
- 280 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 00:15:24.25 ID:yfcMlTbU]
- extern自体あまり使うべきじゃないよな...
- 281 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 00:31:44.41 ID:s5fJFGX+]
- >>278
「グローバル変数 弊害」などでぐぐると沢山の資料が出てくるので、そちらを参考にされたい。 名前空間やシングルトンパターンなどの利用で回避できる部分もあるけどね。 あと、プログラミングにおける有名な考え方(哲学)の1つなんだけど。 ざっくり言うと、「オレ専用のモノはオレだけが知っていればいい」という考え方がある。 例えばfor文で使ってる変数iとか、他のところから見て何の価値も無いよね。 単にどうでもいいってだけじゃなく、価値のない情報が溢れかえると肝心の情報が埋没するというデメリットがある。 本当に必要なものだけを選別しないと、それこそ狼少年みたいに重要なことが見過ごされてしまうかもしれない。 ミニゲームのうちは、そういった無価値な情報が多少あっても問題にならない。 でも規模が大きくなると、相対的に不要な情報が増えてくるんだ。
- 282 名前:名前は開発中のものです。 [2012/06/06(水) 00:57:04.37 ID:0Qe/6ch0]
- 木の葉を隠すなら森の中
- 283 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 05:05:34.22 ID:F+8wYuiU]
- デバイスまとめクラスは
オレオレ名前空間内のstaticなグローバルオブジェクトにしてるな どの程度正しく作るかって難しいよな
- 284 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 06:13:10.68 ID:BB9r7cef]
- >>274
迷路自動作成ロジックはどうする?
- 285 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 07:30:32.76 ID:B+n3k45G]
- >>281
例えばだけど、規模が大きくても付けた変数名を絶対に忘れない人が一人で作れば問題ないよな 場合によっちゃそこらへんのツールで重複調べられるしな
- 286 名前:名前は開発中のものです。 [2012/06/06(水) 07:45:33.71 ID:LQ8HTB51]
- グローバル変数名は頭に「g_」を付けましょう。
- 287 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 09:05:26.97 ID:mjTHO3b4]
- >>285
ホントに「例えば」だな。クラス設計が分からない時、 やたらグローバルな変数を宣言してたが見事に破綻したよ。
- 288 名前:名前は開発中のものです。 [2012/06/06(水) 09:28:51.13 ID:yfcMlTbU]
- >>285
「人によってはなんとかなることもあるから開発効率落としてみてもいいだろ。俺もそのなんとかなる人の一人かもしれないし」 こういうこと?
- 289 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 10:15:18.79 ID:WiOpGBsA]
- 名前空間+グローバル変数は結構使いやすい。
.hと.cppをめんどくても分けるのは 相互参照でコンパイル通らないC++の都合だね。
- 290 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 12:11:44.97 ID:Ez398/8e]
- なんだかんだで「変数はクラスに入れとけ」となるのはわかるんだが
じゃあそのクラスのインスタンスはグローバル的に参照したらダメなんかね? たとえばジャンルがRPGだとして、キャラクターデータを // common.h(各cppでincludeする) namespace Sample { // パーティーデータを宣言 MyCharacterData Party; }; // main.cpp #include "common.h" int main( int argc, char ** argv, char ** env ) { // 起動時に初期化 Party.init(); : } ・・・といった作りにするのはどうなんだろ
- 291 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 13:28:41.38 ID:s5fJFGX+]
- グローバル変数のデメリットと言われるものは複数ある。
そのうちの幾つかは解消されるけど、残りは解消されないと言った感じ。 例えば、意図しない変数名のバッティングは回避されるだろう。 でも、複数の箇所から操作される可能性はそのままだ。
- 292 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 13:31:53.21 ID:mJCSqxTc]
- グローバル変数のメリットは複数の箇所から操作出来る事なのでは……。
- 293 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 13:50:04.63 ID:s5fJFGX+]
- >>292
それがグローバル変数の「特徴」だな。 メリットにもなりうるし、デメリットにもなりうる。 どうしても複数の箇所から操作しなければならない変数だけ、ピンポイントでグローバルにするのはマジ有効。 何でもかんでもグローバルにするのは、あまり好ましくないと言われる。 熟練者が使えば凄く有効に使えるけど、 俺のような初心者は、最初から「グローバル変数は絶対に使わない」と決めてしまった方が楽w 他にもgoto文なんかがそうだね。 ちなみに自分は、C++のconst変数(いわゆる定数)のみ、 きちんと名前空間で整理した上で、まさに>276の方法でグローバル化することがある。 もちろん、ビルド時間や不要な情報が増えるというデメリットは超デカいけど、 一箇所にまとまるというメリットも、それなりに大きい。
- 294 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 13:54:50.07 ID:mJCSqxTc]
- そうなんだ。
俺はどうでもいい一時変数以外は全部グローバルでやっちゃってるよ。 別んとこで確保したローカル変数をまた別んとこで利用する、なんてやりかたやってたらバグの温床になりそうで。
- 295 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 14:03:27.96 ID:s5fJFGX+]
- >>294
呼び出し元(例えばmain関数)で変数を宣言して、複数の関数に引数で渡すというのは、 ありとあらゆるプログラム(C/C++以外の言語でも!)で使われる書き方だ。 だからもし、そこに面倒臭さとか一種の恐怖感を感じるなら、 無理矢理にでも改善したほうが良いかもしれない。 その上でグローバルを使うなら、ご自由に。
- 296 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 14:39:35.53 ID:9xH4E1Ru]
- >>294
さすがにそれは言語に対する理解が足りてないだろ。 「グローバル変数は絶対使ってはいけない」みたいなことを言う人達はおかしいとは思うけどね。 グローバル変数はどうしても必要なときにだけ使った方がいいぞ。
- 297 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 15:00:33.42 ID:mjTHO3b4]
- 逆にグローバルが最適ってどんなケースだろ?
サブクラス化でメッセージ受け取ったときのための、 ウインドウハンドルを記憶させたstlのmapくらい。 とりあえず俺が使ってるのはそれくらい。 dxutなんかも、使い出したらグローバル変数は使いそうだなぁ。
- 298 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 15:35:42.70 ID:PskKn+mp]
- >>294
一時変数ってローカル変数だろ? 確保したローカル変数ってなんぞ
- 299 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 15:57:44.74 ID:UXlaP3IH]
- メインループの前に変数宣言しておいて
メインループの中で弄ってるんだけど、 これってクラスのフィールドとメソッドポインタで代用できるよね お前ら的にはこの方法どうなの?
- 300 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 16:19:17.31 ID:s5fJFGX+]
- >>299
簡潔かつ具体的にどうぞ
- 301 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 19:31:30.78 ID:WiOpGBsA]
- シングルトンとしてわざわざprivateコンストラクタとか書きたくない場合、
引数でデータを渡すセッターが書きたくない場合かな。 まあ手抜きだね。 経験や設計力の足りない人が、とりあえずグローバル変数で手抜きをしてつくり、 後で修正するのはいいんじゃないかな。 >>299 >>15さんの好きなようにやりなさい。
- 302 名前:名前は開発中のものです。 [2012/06/06(水) 20:03:58.82 ID:dE87BNoI]
- 一人で開発してるとどうしても手抜きになるのは仕方かも。
就職してチームで開発するようになればセオリーの コーディングスタイルを学べるんだけどね。 すでに退職した人が書いたコードのバグを治す立場になれば グローバル変数の悪どさが身を持って分かるようになる。
- 303 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 20:08:37.83 ID:K3C+b+6o]
- クラスごとに読み込み専用とか書き込み可能とかのアクセス制御を簡単に記述できるなら
何処からでも参照可能なデータクラスがあっても悪くないのかもしれないけど
- 304 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 20:13:09.98 ID:s5fJFGX+]
- システム担当が1人しかいないので大して変わらん俺…(´・ω・`)
- 305 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 20:21:15.36 ID:wItmrJee]
- そもそも数人で作れるほどの腕を持つ奴はこんなとこ来ないから別にいいよ
しかもなんでバグ前提だよ>>302
- 306 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 20:22:50.00 ID:z1YH6Ic0]
- まとめ
グローバル変数は把握出来るようにきちんと整理しておきましょう
- 307 名前:名前は開発中のものです。 [2012/06/06(水) 21:31:22.54 ID:fkjdBITD]
- >>305
バグ0前提のほうがありえないだろw
- 308 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 21:32:44.31 ID:wItmrJee]
- 一項目を一通り作ったらビルドしないの?
まさか全部作るまでテストしない…?
- 309 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 21:35:34.97 ID:wItmrJee]
- なにいってんだ俺は
一通り終わってバグがあったらその都度バグ潰すってことね
- 310 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 21:56:51.01 ID:s5fJFGX+]
- >>308-309
そこだけ訂正されても、「お前は何を言ってるんだ」は変わらんぞw
- 311 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 22:10:00.23 ID:Ez398/8e]
- というか、グローバル変数をあちこちから直接触るのが危険、はわかるが
(どうせ他人のプログラム読むにはGrep必須じゃね? みたいな揚げ足取りは置いといて) クラスインスタンスを大域的にアクセス可能にすることにはどういうリスクがあるかな あちこちで生成・破棄を繰り返したらヤバイとか、 マルチスレッド時変数にロック必須とかは俺にもわかる 他に目立つデメリットってどんなものがあるだろう?
- 312 名前:名前は開発中のものです。 mailto:sage [2012/06/06(水) 23:42:28.46 ID:32DOJ83b]
- グローバルなフラグ処理があちこちで絡み合って、全体の処理が全くわけわからなくなるとかか?
- 313 名前:名前は開発中のものです。 mailto:sage [2012/06/07(木) 01:05:23.58 ID:BJcvBZeM]
- グローバルアクセスじゃなくてもポインタで共有してたら
マルチスレッドでは注意が必要だな。 問題は追尾性じゃないかな。検索使わないで探すとしたら大変だ。
- 314 名前:名前は開発中のものです。 mailto:sage [2012/06/07(木) 07:52:16.47 ID:Jv6ss4Bc]
- 管理出来るなら使え、管理出来ない奴は使うな、でいいよね
- 315 名前:311 mailto:sage [2012/06/07(木) 08:05:17.72 ID:1pAFbwR/]
- なるほど・・・改めて言われてみるとそうかもな
引数にしとけば関数一覧見ただけで出入りがわかるもんな 今後参考にする、ありがとう
- 316 名前:名前は開発中のものです。 mailto:sage [2012/06/07(木) 08:07:50.47 ID:ABZ9H4yv]
- 端から見て意思の疎通が出来てるのか心配になるやり取りだなw
- 317 名前:名前は開発中のものです。 [2012/06/07(木) 13:55:27.92 ID:QQtm5YS7]
- >>311
直行性の破壊
- 318 名前:名前は開発中のものです。 mailto:sage [2012/06/07(木) 14:44:16.39 ID:aJnWGOd5]
- ゼノギアスみたいに3Dマップに2Dを歩かせたいんだけど、2DキャラにVECTOR座標持たせないとダメなのかな?
それともカメラとマップの動きでなんとかするのかな
- 319 名前:名前は開発中のものです。 mailto:sage [2012/06/07(木) 21:30:16.39 ID:BJcvBZeM]
- やりたいようにやりなさい。
- 320 名前:名前は開発中のものです。 mailto:sage [2012/06/07(木) 22:02:16.36 ID:Ukk/kqdB]
- マジレスしていいのか?
- 321 名前:名前は開発中のものです。 mailto:sage [2012/06/07(木) 22:20:38.30 ID:G9hkoO5R]
- オブジェクト指向の弊害というか、基本的なアルゴリズム力がない人が増えたよな
特に内部の数値と表示部を分けて考えずに直結して考えてる人が多い
- 322 名前:名前は開発中のものです。 mailto:sage [2012/06/07(木) 23:49:11.74 ID:vdC1mnp6]
- アルゴリズム力って何?
- 323 名前:名前は開発中のものです。 mailto:sage [2012/06/07(木) 23:54:38.13 ID:p6Iwkliq]
- まぁ、ゲームというのは基本的に電源を入れ続けている間には停止しないので、
不完全なアルゴリズムであるといえよう
- 324 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 05:39:14.26 ID:emaLFwiS]
- >>323
哲学かw
- 325 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 12:13:59.29 ID:DZv8KWRM]
- ブログラムを学び始めて一ヶ月、トランプのゲームや簡単なアクションなら楽に作れるようになった
しかし未だにポインタの使い道が分からない
- 326 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 13:31:45.51 ID:q3HoT9+Z]
- >>325
心配しなくても、そのうちポインタじゃないと出来ないこと、ポインタの方がスマートに出来ることにブチ当たる。 その時に改めて覚えればいいのよ。 例えば、セーブシステムを実装してみるとかどうかな。
- 327 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 13:52:13.27 ID:tcFLKDMc]
- うむセーブできるスロットを3個として
それを読み込んだり上書きしたり そんなときに
- 328 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 17:42:03.38 ID:aSm1ZnJU]
- 俺がポインタ使い始めたのは
オブジェクトの配列を使わざるを得なくなったときかな? 上で一応、ポインタ不使用で配列扱う方法あったけど、 当時はそこまで調べきれんかった。 まぁ知っててもポインタ使ってただろうけど。 あとはfactoryパターンなんかポインタあってこそだな。
- 329 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 18:39:35.31 ID:pbnxpIOe]
- 俺がポインタ使い始めたのは、文字列の多次元配列を使わざるを得なくなったときだった
- 330 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 19:35:21.69 ID:lRuRBADW]
- ぼ、僕の初めてはmallocちゃん・・・
- 331 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 20:05:18.05 ID:SJfmbBy9]
- 俺はライブラリがポインタ返してくる場合を除いて使わないかな
それを除けばSTLコンテナと参照渡しでほとんど済むというか std::mapに関数ポインタ入れてスイッチ消すとかは価値あると思うんだけど コンパイル時に型と内容が確定するメリットが捨てがたいんだよな
- 332 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 20:50:19.69 ID:j/2x2bX+]
- 関数ポインタやストラテジーパターンならタイプセーフだぞ。
- 333 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 21:13:56.33 ID:m5MO4L1R]
- セガの人の本で関数内で引数の中身が変わるかどうかわかるように
ポインタと参照を使い分ける話があってそれに従ってるな
- 334 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 21:30:09.93 ID:zMZgxXcw]
- RPGツクールやってたせいかポインタ使わなくても処理できる方法が浮かぶから困る
多少コード長くなるかもしれないけど知らん
- 335 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 21:42:33.38 ID:+harBrKu]
- >>333
const使って解決するほうが堅牢に思える
- 336 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 21:44:24.52 ID:z81hpupn]
- さらにSAL注釈も付けるかな
- 337 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 21:44:25.54 ID:6tY7hMDQ]
- RPGツクールとポインタ使わなくても処理できる方法の
関連性がよくわからん
- 338 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 21:48:46.35 ID:PkeZlA3u]
- みんなポインタどこで勉強した?
- 339 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 21:53:09.92 ID:MREanol0]
- >>338
昔はネットが無いかわりにCマガジンという雑誌があってだな・・・
- 340 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 22:05:47.44 ID:MREanol0]
- >>234>>236
今更だが、ちょっと気になったので。 GetProcessHeapとHeapCreateでそれぞれ検索する事をオススメする。 ちなみに、C++のnewがどっちのヒープを使ってるかは分からなかった。 速度では前者、汎用性、拡張性を優先しているなら後者なんだが・・・
- 341 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 22:25:17.57 ID:2sQEIMbG]
- >>337
ツクールに限らず、そもそもポインタ使わなくてもゲームは作れるって話でしょう。 あれば便利だがなくてもできなくはないという程度の意味で。
- 342 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 22:30:05.74 ID:b1Lp2XzC]
- while(*dst++ = *src++ )
;
- 343 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 22:34:51.17 ID:FXgS0hSf]
- >>340
crt見ればいいよ 昔はheapを確保できればHeapAlloc、できなければVirtualAlloc VC10だとその辺の記述がごっそりなくなってるからreallocでまとめられたのかもしれない。たぶん というか本人がよく分かっていないのに他の人にググれっていうのは厳しいだろw
- 344 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 22:54:45.78 ID:MREanol0]
- >>343
でも、>>234>>236が何を混同してたのかは理解出来るんでは? HeapAlloc+HeapCreate(0,0,0)の挙動とnewの挙動を ごちゃ混ぜにしてた事は理解できたから。 HeapAlloc+GetProcessHeapの方が早いし使い勝手も良いから、 C/C++ではこちらを採用していると考える方が自然かと。拡張性は無いけど。
- 345 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 23:21:38.88 ID:meBz3r1I]
- 実はnewの挙動をMSがコッソリ変えていたというのが真相だったりしてな
- 346 名前:名前は開発中のものです。 mailto:sage [2012/06/08(金) 23:30:02.10 ID:m5MO4L1R]
- >>335
constもつけるよ あくまで呼び出した側でわかりやすいという話 一種のおまじないかも
- 347 名前:名前は開発中のものです。 mailto:sage [2012/06/09(土) 14:17:30.16 ID:lNgYTjBj]
- CでIMEの設定変更する方法っていうか関数あったりする?
標準全角入力使われたら予期せぬ動きしまくるしrewindでもクリアできないしマジ困る あれはバッファの中身どうなってるんだろう・・・
- 348 名前:名前は開発中のものです。 mailto:sage [2012/06/09(土) 15:10:15.66 ID:x2dTOO+E]
- >>347
Cにあるわけない。 WindowsAPI(Win32 API)か何かに投げるんじゃねーのかな。
- 349 名前:名前は開発中のものです。 mailto:sage [2012/06/09(土) 16:37:02.46 ID:FTBfxQeH]
- DirectXのサンプルの中にImeUi.h、ImeUi.cppってのがあったけど
俺は途中で放り投げたから詳細はわからない 要はTSFってのを使うらしい
- 350 名前:名前は開発中のものです。 mailto:sage [2012/06/09(土) 18:53:04.60 ID:XUfV5Ps7]
- "C/C++" IME
とかでぐぐるといろいろあるみたいだな
- 351 名前:名前は開発中のものです。 mailto:sage [2012/06/11(月) 08:03:40.59 ID:Vdy0LhS9]
- ちょっとCからは反れるかも知れないんだけど、3Dのマップモデルってどう表示してる?
1マップを超巨大なモデルを作ってそれをドカッと配置しようかとしてるんだけどまともな方法なのかな? そしてそれに家とかのモデルを一個ずつ配置するか、それとも地面にセットでくっ付けておくか悩む
- 352 名前:名前は開発中のものです。 mailto:sage [2012/06/11(月) 08:26:57.69 ID:pW3epnaG]
- >>351
地形と家や木などの何度も登場するモデルは分けて読み込んでプログラム側で配置すると良いよ。 ロード時間の短縮、メモリ節約、当たり判定の高速化、描画の高速化のメリットがある。 もちろんこれらの機能は自分で実装しなくてはいけないけどね。
- 353 名前:名前は開発中のものです。 mailto:sage [2012/06/11(月) 09:16:10.08 ID:IS7oiAfA]
- >>351
地形マップは大きいのが一つ。 建物などのオブジェクトは個々のモデルを配置する。 LODで高速化できるので。
- 354 名前:名前は開発中のものです。 mailto:sage [2012/06/11(月) 09:50:09.21 ID:67uf8PuE]
- 地形マップの着地判定って手作業で設定して行くの?
それともポリゴンの点から面を取得して〜・・・
|

|