C/C++ゲーム製作総合スレッド Part6
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2014/07/08(火) 19:30:19.51ID:J+zVqUil元スレ
DXライブラリ 総合スレッド その17
http://toro.2ch.net/test/read.cgi/gamedev/1383795645/
前スレ
C/C++ゲーム製作総合スレッド Part1
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/
C/C++ゲーム製作総合スレッド Part2
http://toro.2ch.net/test/read.cgi/gamedev/1351015269/
C/C++ゲーム製作総合スレッド Part3
http://toro.2ch.net/test/read.cgi/gamedev/1357899040/
C/C++ゲーム製作総合スレッド Part4
http://toro.2ch.net/test/read.cgi/gamedev/1376262450/
C/C++ゲーム製作総合スレッド Part5
http://peace.2ch.net/test/read.cgi/gamedev/1389798031/
0052名前は開発中のものです。
2014/08/03(日) 10:47:06.01ID:LcYcpDyVリストってことは、該当のポインタを削除するだけじゃなく
その前の要素にあるnextポインタも修正しなきゃならないわけだよな?
deleteだけじゃなく、その修正もしてるか?
してるなら、deleteと修正の間に、別スレッド(描画?)が参照してたりシないか?
0053名前は開発中のものです。
2014/08/03(日) 11:28:48.20ID:ygJOSsne>でもAndroidNDKだからブレイクポイント使えない
使えます。是非使ってください。本当にお願いします。
それと、既に指摘されてる問題部分の切り分けをして下さい。
最小構成でテストして下さい。出来ないならコードをうp
0054名前は開発中のものです。
2014/08/03(日) 11:31:35.11ID:DGgM8UM0操作前後でロックが必要だけどしてないんじゃね?
005544
2014/08/03(日) 13:03:28.60ID:Q2PG92NDごめんなさいstd::listではなくstd::vectorでダブルバッファリングしてます
更新ごとに入れ替わって、push_backされないオブジェクトはdeleteされてそのポインタにNULLが入ります
0056名前は開発中のものです。
2014/08/03(日) 13:39:34.89ID:pnMbsHQKレスしてる暇があるなら単体テストしなよ
0057名前は開発中のものです。
2014/08/03(日) 15:21:07.80ID:CNCHN1HK0058名前は開発中のものです。
2014/08/03(日) 23:21:55.40ID:X5LmADYNこういうメンバ関数ってどんな扱いになってるんですかね?
関数はデータじゃないので扱われないとすると都合いいんだけど、
ポインタだけで扱われてるのか、それともプログラムコードまで含まれるのか。
こんな説明じゃ分かりにくいですかね……。えーと。
以前から、「オブジェクトを生成するたびに、関数(のプログラムコード)も作られ、
オブジェクトごとにコードをそれぞれ持っている」なのか、それとも「関数のプログラムコードは
別のどこかに作られるだけで、オブジェクト内にはそこを示すポインタだけが作られてる」のか疑問だったんですが、
メンバ関数を修正してから修正前のデータを読み込んでみたところ、不正落ちするようになったもので
ひょっとして、前者なのかな? と思った次第でして。
0059名前は開発中のものです。
2014/08/03(日) 23:49:05.25ID:LcYcpDyVhttps://sites.google.com/site/boostjp/tips/serialize
0060名前は開発中のものです。
2014/08/03(日) 23:54:41.45ID:NYhfIPC5仮想関数使ってたらvtableのアドレスが格納されるから、それまで一緒にリストアすると落ちるんじゃないか?
0061名前は開発中のものです。
2014/08/04(月) 00:15:41.74ID:3huMrwYj0062名前は開発中のものです。
2014/08/04(月) 00:35:39.14ID:S6rlQ+o7http://www.microsoft.com/japan/msdn/vs_previous/visualc/techmat/feature/jangrayhood/
0063名前は開発中のものです。
2014/08/07(木) 12:24:04.59ID:t1Sego2o例えば一部の種類の敵は近くの自分と同じ種類の敵の数で動きが変わるとか、敵Bと敵Cが合体攻撃するとか、
ステージ内の他の敵の状態を参照する必要に駆られた時ってどうやってアクセスするべき?
敵のリストを持った敵管理クラスが敵の行動選択時に毎回敵のリストのポインタを投げるのか、
敵Bクラスがstaticで自身のクラスのリストを作っておいて、敵Bの情報が欲しいクラスがこれにアクセスするのか。
他にも地形によって移動が変わる(落ちないようにとか)場合の地形データのアクセス方法ってどうするべきなの?
0064名前は開発中のものです。
2014/08/07(木) 13:00:48.69ID:GofjvCIT必要に応じて管理クラスに問い合わせるという感じ
というか、何パターンか方法を考えているなら、適当にどれか試してみればいいと思うよ
動けばそれでいいし、問題があるなら直せばいいだけだし
006544
2014/08/07(木) 17:44:22.62ID:62RjpHCx敵が地形情報にアクセスできても不自然じゃないのでは
0066名前は開発中のものです。
2014/08/14(木) 01:20:33.31ID:McYBYG45SDLかcocos2dあたりになるのかな?
0067名前は開発中のものです。
2014/08/14(木) 14:25:37.69ID:KaQreIxk0068名前は開発中のものです。
2014/08/14(木) 19:21:35.91ID:tnMEEuh8日本語少なくて諦めてたけど、少しずつ揃ってきてるし、なによりDxLibで自作するようなクラスが
揃ってるのがありがたい
0069名前は開発中のものです。
2014/08/14(木) 23:14:33.68ID:hKNZ3m31プライベート関数を作るのって妙に抵抗があるんだよな
パブリックは明確に必要だなってわかるんだけど
0070名前は開発中のものです。
2014/08/15(金) 00:31:11.83ID:oe50SlNL無名名前空間使えばいいんじゃね?
0071名前は開発中のものです。
2014/08/15(金) 04:08:25.52ID:rUjRhF5gディレクトリでなんかやってるけど
不都合とかあるかな
0072名前は開発中のものです。
2014/08/15(金) 05:19:42.53ID:c/9kGC5uファイルをメモリのように扱う機能が既に存在していたでござる
0073名前は開発中のものです。
2014/08/15(金) 07:01:48.62ID:ohMMiKIE数十行もあるのなら、2回以上で関数にする
しないと、修正・テストを常にダブルでしないといけない
>>72
そもそもメモリの基本が、mmap(memory map)で、
確保したメモリを、どんなオブジェクトで使おうが自由
まあ一般的なもので、自分が思いつくようなものは、
たいてい誰かが作っているだろう
0074名前は開発中のものです。
2014/08/15(金) 09:58:24.44ID:c/9kGC5u0075名前は開発中のものです。
2014/08/15(金) 10:41:13.57ID:j6cgjhWqアクセス方法含めてファイルAPI使わない木構造コンテナならググれば色々ある
APIフックして自分しか見えないRAMドライブを作ったことあるけど行儀悪いから他でもみかけないな
0076名前は開発中のものです。
2014/08/16(土) 06:39:10.61ID:L92YcU8p0077名前は開発中のものです。
2014/08/16(土) 17:19:05.66ID:8Fs/dbncstd::vectorとかコンテナみたいなのに使うんですか?
ライブラリ作るときぐらいですか?
0078名前は開発中のものです。
2014/08/16(土) 17:29:23.54ID:FVHp6E5m大文字のTemplateって何か特別な意味がある言葉なの?
0079名前は開発中のものです。
2014/08/16(土) 18:04:48.11ID:8Fs/dbnc0080名前は開発中のものです。
2014/08/16(土) 19:19:43.39ID:KpuwMNAx0081名前は開発中のものです。
2014/08/17(日) 00:29:52.38ID:DxB78rur実際それくらいしか使ってないやってヒトも結構いると思う。
0082名前は開発中のものです。
2014/08/17(日) 01:22:39.68ID:ecqmGiuWその中身も用途も知らずに誰かに使われるだけですよね?
でなければポリモーフィズムとかで代用出来そうだし
0083名前は開発中のものです。
2014/08/17(日) 01:37:28.43ID:rcRtUElV基本的にはただの置き換えだが?
0084名前は開発中のものです。
2014/08/17(日) 02:35:54.03ID:DxB78rur0085名前は開発中のものです。
2014/08/17(日) 03:14:42.38ID:lY+LSruTコンテナ <int>
コンテナ <ユーザ定義クラス>
コンテナが、様々な型に対応できる
0086名前は開発中のものです。
2014/08/17(日) 10:03:56.33ID:ecqmGiuW要はtemplateの処理って誰かから値を貰って処理するのではなく
値を右から左に受け渡すだけで・・・
0087名前は開発中のものです。
2014/08/17(日) 10:13:42.02ID:rcRtUElVそれはソースを追えとしか言えんな。templateはその性質上、クローズド化が出来ないから。
0088名前は開発中のものです。
2014/08/17(日) 10:52:23.87ID:eh8TRovFSTLですらちょっとした記述漏れで出るエラーメッセージが適切じゃないんだよな
記述した行じゃなくてテンプレートソースの位置のエラーメッセージだし
0089名前は開発中のものです。
2014/08/17(日) 16:34:24.06ID:2LOHSTCb0090名前は開発中のものです。
2014/08/18(月) 12:06:43.86ID:/xfKqDtl0091名前は開発中のものです。
2014/08/18(月) 12:20:19.06ID:Amfk7YXr0092名前は開発中のものです。
2014/08/18(月) 17:33:11.61ID:/xfKqDtl0093名前は開発中のものです。
2014/08/18(月) 18:04:50.85ID:xxNYX8Uv0094名前は開発中のものです。
2014/08/19(火) 10:38:31.24ID:g/Td6fwvコロンがダメなのかい?
0095名前は開発中のものです。
2014/08/20(水) 12:24:47.31ID:vpc/8MHVstd見るとスネークケースだけどライブラリ見るとローワーキャメルケースだし
主流なオブジェクト指向で揃えたいのならJavaやC#みたいにアッパーキャメルケースだし
"ID"は両方大文字でもよかったり、HINSTANCEみたいにどこから意味のある単語なのかわかりづらいし
0096名前は開発中のものです。
2014/08/20(水) 17:29:53.86ID:zC8dBj+K0097名前は開発中のものです。
2014/08/20(水) 18:27:48.79ID:8ddmLszJ0098名前は開発中のものです。
2014/08/21(木) 12:39:31.06ID:cVduPEKK第一引数省略できたら最強なんだけどなぁ
MPLのgetはめんどくさすぎる
0099名前は開発中のものです。
2014/08/22(金) 08:08:31.76ID:np7Y3ytG0100名前は開発中のものです。
2014/08/22(金) 08:24:17.61ID:+/wZ7jnKいくら何でも世間をナメすぎwww
0101名前は開発中のものです。
2014/08/22(金) 13:04:18.40ID:GdbuT6p8知らなかったこんなのが普通にコンパイル出来た
int 関数(int ほげ, int はげ)
{
return ほげ + はげ;
}
0102名前は開発中のものです。
2014/08/22(金) 17:22:04.27ID:kNYnH0VP0103名前は開発中のものです。
2014/08/22(金) 18:16:28.30ID:tnjQY6BU漢字を使えるが
0104名前は開発中のものです。
2014/08/22(金) 20:27:56.63ID:knEiP0zptypedef int 整数
みたいな感じで型を日本語化して頑張ってた友達を思い出した
0105名前は開発中のものです。
2014/08/22(金) 21:01:32.45ID:+rbtpV8xさすがにこの条件で行く奴は居ないだろうと思うが……
と思ってよく見たらプランナーだった、紛らわしいな
0106名前は開発中のものです。
2014/08/23(土) 11:34:38.27ID:VlCYIhcaプランナーってそんな楽なお仕事なん?
0107名前は開発中のものです。
2014/08/24(日) 19:03:04.47ID:+YyUmjGHだから値段が安くても人は来ると
0108名前は開発中のものです。
2014/08/25(月) 12:46:11.86ID:13Ou/jq/0109名前は開発中のものです。
2014/08/25(月) 21:12:10.93ID:fIeVmxmzプランナーになってぼくのかんがえたさいきょうのげーむ作るんだ!
って人が多いイメージだわ
0110名前は開発中のものです。
2014/08/26(火) 02:42:29.32ID:zRu6Y76+0111名前は開発中のものです。
2014/08/26(火) 03:02:43.23ID:9nJGtRzs非エンジニアの人でも、ある程度形を作り上げられるっていう
0112名前は開発中のものです。
2014/08/28(木) 03:18:53.81ID:X8+LqzAg使った方が言われたのですが
MinGWのgccで使う方法はあるのでしょうか?
0113名前は開発中のものです。
2014/08/28(木) 12:27:05.34ID:IogRuqxm0114名前は開発中のものです。
2014/08/28(木) 14:45:11.67ID:fyv86xWh思った
0115名前は開発中のものです。
2014/08/28(木) 16:18:23.85ID:bFGeiPpWとコンソールで実行した時ループが遅くなるのはなんでですか?
目で追える速度でしか文字列を描画できないなら
計算だらけのゲームなんてまず作れませんよね?
0116名前は開発中のものです。
2014/08/28(木) 18:13:14.40ID:c3zFvuJr0117名前は開発中のものです。
2014/08/28(木) 18:25:00.80ID:kFtDpON/ファイル出力する記号 >でやったら画面表示より速いし、ゲームなんかで使う描写を、使えば速いし。
0118名前は開発中のものです。
2014/08/28(木) 18:34:21.79ID:p3a/rk2Rwindowsのコンソールの文字出力はCUIベースの補助的な表示がメインで、
コンソールの文字出力が遅いから早くしてほしいなんて誰も望まない
0119名前は開発中のものです。
2014/08/28(木) 18:35:31.68ID:cOy/jyaiと言うか、文字一つ出力するのに何バイトのデーターを画面に書き込む必要があるか考えてみ?
0120名前は開発中のものです。
2014/08/28(木) 18:45:56.07ID:cOy/jyaiあ、そう言えば昔、PC-98がdos/vよりも優位な点として文字出力速度が早い事を売りにしていたな
0121名前は開発中のものです。
2014/08/28(木) 19:17:50.59ID:izIKodD2DOS/Vにあるのかないのかは知らんけど。
0122名前は開発中のものです。
2014/08/28(木) 19:22:18.05ID:cOy/jyai0123名前は開発中のものです。
2014/08/28(木) 19:39:22.02ID:p3a/rk2R昔はコンソールは補助的なものじゃなかったし
今よりずっと遅い時代があったからでしょ
0124名前は開発中のものです。
2014/08/28(木) 20:10:27.78ID:lAEGR6jwいや、話のネタに思い出したからついでに書いただけだよ
昔はテキスト表示で画面をマスクしたりと、遅いマシンの
様々な機能をフル活用して使っていたみたいだね
0125名前は開発中のものです。
2014/08/29(金) 13:24:27.28ID:7LwoDteC目で追える速度に遅くしてるんじゃね
つ Ctrl+S
0126名前は開発中のものです。
2014/08/29(金) 17:27:19.27ID:PQKddMMrint hoge;
};
Aiu* aiu = new Aiu();
ってした時
Aiu aiu2 = *aiu;
ってした場合、aiuの寿命が切れた後もaiu2に保持されるんでしょうか?
コピーコンストラクタは定義してないです
0127名前は開発中のものです。
2014/08/29(金) 17:35:13.67ID:I0DNX3OS0128名前は開発中のものです。
2014/08/29(金) 18:05:40.44ID:B+gnwrXfその Aiu aiu2 = *aiu; はメンバの値が複製されるだけだから、その後にaiu->hogeを書き換えてもaiu2->hogeは変わらない
だからaiuの指す先がdeleteされようがaiu2に影響はない
0129名前は開発中のものです。
2014/08/29(金) 19:30:47.56ID:+jt7R30F{
int a;
}
class Heap
{
Stack stack;
}
void main()
{
Heap* heap = new Heap();
}
っていうプログラムの場合、int aはメモリ内のどこにあるのでしょうか?
そもそもヒープ領域のオブジェクトの中のスタック領域の場合ってメモリ的にはどうなるのでしょうか?
0130名前は開発中のものです。
2014/08/29(金) 19:53:53.39ID:B+gnwrXf0131名前は開発中のものです。
2014/08/30(土) 18:37:32.98ID:5AIFhixXEclipseの言ってるエラーが意味不明で困っています
どうしたら結果が得られますか?
エラー内容: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());
}
}
0132名前は開発中のものです。
2014/09/01(月) 11:52:34.58ID:NxW8u5cBC++erならやっぱり自分でパーサー作って読み込むの?
0133名前は開発中のものです。
2014/09/01(月) 17:34:00.00ID:7vpWhfmFAssimp
0134名前は開発中のものです。
2014/09/02(火) 14:27:36.03ID:PUVCbn2i0135名前は開発中のものです。
2014/09/02(火) 17:26:57.05ID:tdHhEDHkこれ良さげやね
BSDライセンスだし色々出来そう
スレッドセーフなのもポイント高い
0136名前は開発中のものです。
2014/09/06(土) 11:58:19.59ID:khJXlvEeこれ誰かわかりませんか?
0137名前は開発中のものです。
2014/09/06(土) 18:09:59.56ID:AxxHSbmNで検索してみた?
0138名前は開発中のものです。
2014/09/07(日) 11:10:43.48ID:s9vhQEyf()内に値があるとかなんとかとか・・・
でも引数のエラーは別にあるし、全く同じ文(変数名は違うけど)をコピペしてきたものだし・・・
0139名前は開発中のものです。
2014/09/08(月) 21:02:33.10ID:tesqRk+dGUIライブラリとかのイベントドリブンでゲーム作る方法が全くわかんないぜ
DXライブラリでは1フレームごとの処理をupdateメソッドの中でやってたから、
アクションゲーム上のキャラクタなどがゲーム内時間での同期が簡単だったんだけど
イベントドリブンだと、そういう「メイン時間軸」による制御がないから
ゲーム内時間で厳密に同期が取れないとこが気持ち悪い
例えば、前者では1フレームごとにキャラクターの速度ずつ動いて、衝突判定も一斉にできるけど、
後者だとライブラリ側が(おそらく裏で_秒単位でポーリングしてて)『ボタン押されたよ!』って判断するから、
用いる時間の粒度が、自分が定めたいゲーム内時間じゃなくなってしまうという・・
イベントドリブンを用いる手前、1フレごとにupdateイベント起こすなんて二度手間はやりたくないし・・
(Unity3Dはupdateとイベント併用型らしいけど、どうやってるんだろ)
0140名前は開発中のものです。
2014/09/08(月) 21:18:20.61ID:tYyDmrPQWindowsとか普通のアプリでアニメーションしたいならWM_TIMERとか別スレッドのタイマーで処理してから
描画のWM_PAINTを間接的に呼び出してるわけだし
描画のイベントを約16msで起こして内部で状態更新すれば60フレームのゲームだ
0141名前は開発中のものです。
2014/09/09(火) 01:28:32.21ID:iF9Myub/ダブルバッファってのもなんか、全ての描画リソースを2倍持つって結構勿体無いなとか思うんだけど
ネトゲでよく200fpsとか表示されててなんじゃこりゃとか思ったことあるけどゲーム内処理ループの事だよね?
0142名前は開発中のものです。
2014/09/09(火) 03:36:37.22ID:C1Zjzm8i受信しているウィンドウメッセージを処理するようにするようにする方法が一つある
(DxLibで言えばProcessMessage関数みたいなもんだと思いねぇ)
0143名前は開発中のものです。
2014/09/09(火) 14:01:53.66ID:3oFzTnHF結局のところ、Δ(←前回Updateから今回Updateが呼ばれるまでにかかったリアル時間)を使って
移動距離[ゲーム内距離] = Δ[リアル時間] ÷ 単位時間[リアル時間/ゲーム内時間] × 速度[ゲーム内距離/ゲーム内時間]
で、処理することになる。
ちなみに、Updateの中でもキー操作拾えるから慣れてるほうでいい
ただGUI部品はイベントでやるのがラク
0144名前は開発中のものです。
2014/09/09(火) 20:43:35.21ID:8XdiQ/JL0145名前は開発中のものです。
2014/09/09(火) 23:05:52.44ID:iF9Myub/0146名前は開発中のものです。
2014/09/10(水) 07:18:00.15ID:CE6mrTSg円運動とか放物線とかバネの伸縮とか
最近の物理の教科書には載ってないのかね?
0147名前は開発中のものです。
2014/09/10(水) 08:04:28.67ID:+NofARIs前フレームの座標と今フレームの座標は線形動作じゃないのか
それが積み重なって円や放射状になるわけで
0148名前は開発中のものです。
2014/09/10(水) 08:16:26.68ID:qlf1nlfh人間が扱いやすいから、近似的に線形代数で計算するだけだろ。
0149名前は開発中のものです。
2014/09/10(水) 08:52:17.08ID:pn1h5JmMこれに対して非線形動作は単位時間毎に別の速度で動く。
前者は直線的な、後者は曲線的な動作になる傾向がある。
0150名前は開発中のものです。
2014/09/10(水) 09:37:06.65ID:qlf1nlfhカオス理論 - Wikipedia
カオス理論は、力学系の一部に見られる、予測できない複雑な様子を示す現象を扱う理論である。ここで言う予測できないとは、決してランダムということではない。
その振る舞いは決定論的法則に従うものの、積分法による解が得られないため、その未来の振る舞いを知るには数値解析を用いざるを得ない。
複雑系 - Wikipedia
複雑系とは、相互に関連する複数の要因が合わさって全体としてなんらかの性質を見せる系であって、
しかしその全体としての挙動は個々の要因や部分からは明らかでないようなものをいう。
複雑系は決して珍しいシステムというわけではなく、実際に人間にとって興味深く有用な多くの系が複雑系である。
系の複雑性を研究するモデルとしての複雑系には、蟻の巣、人間経済・社会、気象現象、神経系、細胞、人間を含む生物などや現代的なエネルギーインフラや通信インフラなどが挙げられる。
複雑系は、単純な要素に分解して法則や原理に落とし込む還元主義の方法論では理解できない。
生物を分解してしまうと死んでしまい「生物(生きている物)」として理解できないように、複雑系は分解してしまうと本質が抜け落ちてしまうものだからである。
したがって、複雑系の分野を貫く基本スタンスとして「複雑な現象を複雑なまま理解しようとする姿勢」を挙げることができる。
複雑な現象を複雑なまま理解しようとする学問、手法は「複雑系の科学」などと呼ばれることが多いが、その源流に眼を向けると、
アリストテレスの「全体とは、部分の総和以上のなにかである」といった言い回しにまで遡ることができる。
0151名前は開発中のものです。
2014/09/10(水) 09:50:08.57ID:+NofARIs■ このスレッドは過去ログ倉庫に格納されています