- 1 名前:名前は開発中のものです。 mailto:sage [2012/05/20(日) 21:22:08.41 ID:iNm25OoA]
- ゲーム製作におけるC/C++全般に関するスレです。
元スレ DXライブラリ 総合スレッド その12 toro.2ch.net/test/read.cgi/gamedev/1330000532/
- 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]
- 地形マップの着地判定って手作業で設定して行くの?
それともポリゴンの点から面を取得して〜・・・
|

|