- 1 名前:名前は開発中のものです。 mailto:sage [2014/07/08(火) 19:30:19.51 ID:J+zVqUil]
- ゲーム製作におけるC/C++全般に関するスレです。
元スレ DXライブラリ 総合スレッド その17 toro.2ch.net/test/read.cgi/gamedev/1383795645/ 前スレ C/C++ゲーム製作総合スレッド Part1 toro.2ch.net/test/read.cgi/gamedev/1337516528/ C/C++ゲーム製作総合スレッド Part2 toro.2ch.net/test/read.cgi/gamedev/1351015269/ C/C++ゲーム製作総合スレッド Part3 toro.2ch.net/test/read.cgi/gamedev/1357899040/ C/C++ゲーム製作総合スレッド Part4 toro.2ch.net/test/read.cgi/gamedev/1376262450/ C/C++ゲーム製作総合スレッド Part5 peace.2ch.net/test/read.cgi/gamedev/1389798031/
- 115 名前:名前は開発中のものです。 mailto:sage [2014/08/28(木) 16:18:23.85 ID:bFGeiPpW]
- while(true){printf("a");}
とコンソールで実行した時ループが遅くなるのはなんでですか? 目で追える速度でしか文字列を描画できないなら 計算だらけのゲームなんてまず作れませんよね?
- 116 名前:名前は開発中のものです。 [2014/08/28(木) 18:13:14.40 ID:c3zFvuJr]
- 文字表示系の処理は重いんです
- 117 名前:名前は開発中のものです。 [2014/08/28(木) 18:25:00.80 ID:kFtDpON/]
- 処理が重いというよりも、OSやコンパイラがConsoleで高速描写されないよう規制してるんだろ。
ファイル出力する記号 >でやったら画面表示より速いし、ゲームなんかで使う描写を、使えば速いし。
- 118 名前:名前は開発中のものです。 mailto:sage [2014/08/28(木) 18:34:21.79 ID:p3a/rk2R]
- コンソールはそもそも文字描画速度を速くしようなんて考え方で作られてないでしょ
windowsのコンソールの文字出力はCUIベースの補助的な表示がメインで、 コンソールの文字出力が遅いから早くしてほしいなんて誰も望まない
- 119 名前:名前は開発中のものです。 mailto:sage [2014/08/28(木) 18:35:31.68 ID:cOy/jyai]
- 今は文字を一つ画面に出力するよりもファイルに書き込む方が早い時代です
と言うか、文字一つ出力するのに何バイトのデーターを画面に書き込む必要があるか考えてみ?
- 120 名前:名前は開発中のものです。 mailto:sage [2014/08/28(木) 18:45:56.07 ID:cOy/jyai]
- >コンソールの文字出力が遅いから早くしてほしいなんて誰も望まない
あ、そう言えば昔、PC-98がdos/vよりも優位な点として文字出力速度が早い事を売りにしていたな
- 121 名前:名前は開発中のものです。 mailto:sage [2014/08/28(木) 19:17:50.59 ID:izIKodD2]
- ああいうのは、VRAMにテキストエリアがあるから速いんじゃないの。
DOS/Vにあるのかないのかは知らんけど。
- 122 名前:名前は開発中のものです。 mailto:sage [2014/08/28(木) 19:22:18.05 ID:cOy/jyai]
- PC-98は漢字ROMにフォントデータが入ってるから早いんだよ
- 123 名前:名前は開発中のものです。 mailto:sage [2014/08/28(木) 19:39:22.02 ID:p3a/rk2R]
- >>120
昔はコンソールは補助的なものじゃなかったし 今よりずっと遅い時代があったからでしょ
- 124 名前:名前は開発中のものです。 mailto:sage [2014/08/28(木) 20:10:27.78 ID:lAEGR6jw]
- >>123
いや、話のネタに思い出したからついでに書いただけだよ 昔はテキスト表示で画面をマスクしたりと、遅いマシンの 様々な機能をフル活用して使っていたみたいだね
- 125 名前:名前は開発中のものです。 mailto:sage [2014/08/29(金) 13:24:27.28 ID:7LwoDteC]
- >>115
目で追える速度に遅くしてるんじゃね つ Ctrl+S
- 126 名前:名前は開発中のものです。 mailto:sage [2014/08/29(金) 17:27:19.27 ID:PQKddMMr]
- struct Aiu{
int hoge; }; Aiu* aiu = new Aiu(); ってした時 Aiu aiu2 = *aiu; ってした場合、aiuの寿命が切れた後もaiu2に保持されるんでしょうか? コピーコンストラクタは定義してないです
- 127 名前:名前は開発中のものです。 mailto:sage [2014/08/29(金) 17:35:13.67 ID:I0DNX3OS]
- 自分で試したほうが早いだろ
- 128 名前:名前は開発中のものです。 mailto:sage [2014/08/29(金) 18:05:40.44 ID:B+gnwrXf]
- >>126
その Aiu aiu2 = *aiu; はメンバの値が複製されるだけだから、その後にaiu->hogeを書き換えてもaiu2->hogeは変わらない だからaiuの指す先がdeleteされようがaiu2に影響はない
- 129 名前:名前は開発中のものです。 mailto:sage [2014/08/29(金) 19:30:47.56 ID:+jt7R30F]
- class Stack
{ int a; } class Heap { Stack stack; } void main() { Heap* heap = new Heap(); } っていうプログラムの場合、int aはメモリ内のどこにあるのでしょうか? そもそもヒープ領域のオブジェクトの中のスタック領域の場合ってメモリ的にはどうなるのでしょうか?
- 130 名前:名前は開発中のものです。 mailto:sage [2014/08/29(金) 19:53:53.39 ID:B+gnwrXf]
- 普通にヒープ
- 131 名前:名前は開発中のものです。 mailto:sage [2014/08/30(土) 18:37:32.98 ID:5AIFhixX]
- picojsonというjsonパーサー使ってるんですが、
Eclipseの言ってるエラーが意味不明で困っています どうしたら結果が得られますか? エラー内容:expected primary-expression before ')' token あとテンプレートにポインタやらちょっと組み合わせると全く入力補完してくれないんですがなんなんですか void hoge::hoge1(picojson::object* jsonObject){ picojson::array& jsonArray = jsonObject->get<picojson::array>(); for (picojson::array::iterator it = jsonArray.begin(); it != jsonArray.end(); it++){ picojson::object& o = it->get<picojson::object>(); int unit_num = atoi(o["unit_num"].get<std::string>().c_str()); int unit_id = atoi(o["unit_id"].get<std::string>().c_str()); } }
- 132 名前:名前は開発中のものです。 mailto:sage [2014/09/01(月) 11:52:34.58 ID:NxW8u5cB]
- BlenderとかMayaで作ったモデルファイルとかモーションファイルって
C++erならやっぱり自分でパーサー作って読み込むの?
- 133 名前:名前は開発中のものです。 mailto:sage [2014/09/01(月) 17:34:00.00 ID:7vpWhfmF]
- >>132
Assimp
- 134 名前:名前は開発中のものです。 mailto:sage [2014/09/02(火) 14:27:36.03 ID:PUVCbn2i]
- DirectXも使えるの?
- 135 名前:名前は開発中のものです。 mailto:sage [2014/09/02(火) 17:26:57.05 ID:tdHhEDHk]
- >>133
これ良さげやね BSDライセンスだし色々出来そう スレッドセーフなのもポイント高い
- 136 名前:名前は開発中のものです。 mailto:sage [2014/09/06(土) 11:58:19.59 ID:khJXlvEe]
- >>131
これ誰かわかりませんか?
- 137 名前:名前は開発中のものです。 mailto:sage [2014/09/06(土) 18:09:59.56 ID:AxxHSbmN]
- expected primary-expression before ')' token 意味
で検索してみた?
- 138 名前:名前は開発中のものです。 mailto:sage [2014/09/07(日) 11:10:43.48 ID:s9vhQEyf]
- >>137
()内に値があるとかなんとかとか・・・ でも引数のエラーは別にあるし、全く同じ文(変数名は違うけど)をコピペしてきたものだし・・・
- 139 名前:名前は開発中のものです。 [2014/09/08(月) 21:02:33.10 ID:tesqRk+d]
- ずっとDXライブラリのwhileの中でやってきたせいで(ビジーウェイトっていうのかな?ポーリング?)
GUIライブラリとかのイベントドリブンでゲーム作る方法が全くわかんないぜ DXライブラリでは1フレームごとの処理をupdateメソッドの中でやってたから、 アクションゲーム上のキャラクタなどがゲーム内時間での同期が簡単だったんだけど イベントドリブンだと、そういう「メイン時間軸」による制御がないから ゲーム内時間で厳密に同期が取れないとこが気持ち悪い 例えば、前者では1フレームごとにキャラクターの速度ずつ動いて、衝突判定も一斉にできるけど、 後者だとライブラリ側が(おそらく裏で_秒単位でポーリングしてて)『ボタン押されたよ!』って判断するから、 用いる時間の粒度が、自分が定めたいゲーム内時間じゃなくなってしまうという・・ イベントドリブンを用いる手前、1フレごとにupdateイベント起こすなんて二度手間はやりたくないし・・ (Unity3Dはupdateとイベント併用型らしいけど、どうやってるんだろ)
- 140 名前:名前は開発中のものです。 mailto:sage [2014/09/08(月) 21:18:20.61 ID:tYyDmrPQ]
- 別に必要ならUpdate相当のイベント起こしたっていいじゃない
Windowsとか普通のアプリでアニメーションしたいならWM_TIMERとか別スレッドのタイマーで処理してから 描画のWM_PAINTを間接的に呼び出してるわけだし 描画のイベントを約16msで起こして内部で状態更新すれば60フレームのゲームだ
- 141 名前:名前は開発中のものです。 mailto:sage [2014/09/09(火) 01:28:32.21 ID:iF9Myub/]
- 俺もDXライブラリしか使ったことないからわかんないんだけど描画ループとゲーム内処理のループって分けてマルチスレッドにするもんなの?
ダブルバッファってのもなんか、全ての描画リソースを2倍持つって結構勿体無いなとか思うんだけど ネトゲでよく200fpsとか表示されててなんじゃこりゃとか思ったことあるけどゲーム内処理ループの事だよね?
- 142 名前:名前は開発中のものです。 mailto:sage [2014/09/09(火) 03:36:37.22 ID:C1Zjzm8i]
- 無限ループの中で定期的にPeekMessage関数を呼んで
受信しているウィンドウメッセージを処理するようにするようにする方法が一つある (DxLibで言えばProcessMessage関数みたいなもんだと思いねぇ)
|

|