C/C++ゲーム製作総合スレッド Part5
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2014/01/16(木) 00:00:31.27ID:w6WW3hAo元スレ
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/
0762名前は開発中のものです。
2014/05/14(水) 00:50:31.19ID:qOCHvgWhつ>>663
ついでにnamespaceにぶち込んでもいいのよ
0763名前は開発中のものです。
2014/05/14(水) 00:53:50.93ID:qOCHvgWhgccでもいつの間にかpragma once使えたりするんだよな
あれ、サッサと標準仕様に盛り込めばいいのになと思うよ
0764名前は開発中のものです。
2014/05/14(水) 01:34:53.87ID:Bv7wzu+p0765名前は開発中のものです。
2014/05/14(水) 02:44:20.77ID:SkdpMvQeIDEによるかもしれん
0766名前は開発中のものです。
2014/05/14(水) 03:12:47.17ID:YePF79fhpragma once は処理系次第で最適化されてるからね。
複数のプラットフォームを想定するなら
安全策をとって両方記述するのがオススメ。
pragma once があれば効率的に処理してくれるかもしれないし、
もしpragma once を理解できない処理系でも
inlude guardは必ず処理してくれるからね。
0767名前は開発中のものです。
2014/05/14(水) 10:10:49.06ID:2wCAVOdx両方記述?寝言は寝て言えw
0768名前は開発中のものです。
2014/05/14(水) 10:25:37.80ID:vvdSHZVH自動生成したヘッダには#pragma onceと#ifndef-define-endifが
コンパイラバージョンによって自動で切り替わるように書かれてたと記憶している
その辺から考えても、両方書くのは無駄じゃない
0769名前は開発中のものです。
2014/05/14(水) 12:46:41.03ID:1doe1mvxtemplate argument 4 is invalidっていうエラーが出ます
具体的には
map<アイテムID(enum型),アイテムパラメータ(struct型)> aaaaa;
って感じです。
パラメータっていうのはその名の通りアイテムを装備するとstructのメンバの
addHPとかaddMPっていう変数の分だけ上昇する感じで、
使い方はプレイヤーはアイテムIDだけ持っておけば、あとは必要な時々で値だけ取得できるかなという感じです。
0770名前は開発中のものです。
2014/05/14(水) 13:13:18.32ID:CAIv9eLRstruct itemParam{int p1; int p2;};
itemParam param;
map<itemID, itemParam> m;
m.insert(make_pair(itemID::ID1, param));
こんな感じで動かない?
0771名前は開発中のものです。
2014/05/14(水) 13:15:39.85ID:Ocn3g8OS比較関数がないって怒られてるんじゃね
一つ目の型を enum型じゃなくて int に変更するわけにはいかないの?
0772名前は開発中のものです。
2014/05/14(水) 14:08:33.50ID:Ke2wFa7k>>733みたいな感じで配列で十分な気がするんだけど
0773名前は開発中のものです。
2014/05/14(水) 15:29:04.69ID:Ocn3g8OS0〜 イベントアイテム
10000〜 武器
20000〜 鎧
みたいに
0774名前は開発中のものです。
2014/05/14(水) 16:29:43.89ID:YPHrxvGY0775名前は開発中のものです。
2014/05/14(水) 21:01:01.54ID:qOCHvgWhそれ、>>770で動きますよ
>>772-774
仮に、実行時に追加削除更新等なし、静的、参照専用、の情報の集合
という前提条件であればstd::map(赤黒木)を使う合理性はあまりないかな
>>773のようにキー番号が連続してないのでれば、ハッシュマップの類の
ほうが向いてますね
http://research.preferred.jp/2011/07/stllike-containers/
補足:記事中のLoki::AssocVectorとほぼ同じものとしてboost::flat_map
もあります。でも、>>774の言う通り、結局vectorでおkにもできますね
ま、完成しない(動かない)事に比べればどれ選んでも瑣末な違いなので
(特に昨今のPCなら)好きなの選べばいいかと思います。身も蓋もないね
0776名前は開発中のものです。
2014/05/14(水) 23:37:56.68ID:XQ3tGmyBenumの最初を0と明示するだけで変わるんです?
0777名前は開発中のものです。
2014/05/15(木) 13:17:04.58ID:vi3A9MFw0778名前は開発中のものです。
2014/05/15(木) 17:35:02.68ID:CM4Haxt/コンパイラのバージョンとかで古いのだと駄目なのかな
0779名前は開発中のものです。
2014/05/15(木) 19:15:22.94ID:D0s76qwM0780名前は開発中のものです。
2014/05/16(金) 15:57:03.11ID:RLWXI/UA0781名前は開発中のものです。
2014/05/16(金) 23:45:36.07ID:bSd/X954ありますよ
navigation mesh pathfinding algorithm game waypoint graph search
など適当なキーワードでググるといいです。動画によるアルゴリズムの
解説も出てきますね。書籍ならAI Game Programming Wisdom 4 が
個人的にオススメです
0782名前は開発中のものです。
2014/05/17(土) 09:32:46.40ID:a+6vW56Rサンプルコードみても理解するのに時間がかかるわ
0783名前は開発中のものです。
2014/05/17(土) 10:01:46.81ID:ATk/Gp35最近の若者は読まないのか
0784名前は開発中のものです。
2014/05/17(土) 11:06:25.43ID:7UqYAydx英語が読めないのは脳が半分無いのと同じ。
それだけのこと。
0785名前は開発中のものです。
2014/05/17(土) 12:01:48.26ID:G1g9tldj0786名前は開発中のものです。
2014/05/17(土) 12:34:45.87ID:/WeYTHrmプログラムは勉強したところでコード書けないのが大半らしいな
元々作文が下手とかそういう次元ではなく理解できないとか
0787名前は開発中のものです。
2014/05/17(土) 12:40:03.20ID:o9p3b0z70788名前は開発中のものです。
2014/05/17(土) 13:44:47.33ID:7UqYAydx半年遅れで付いていく人間は残念ながら奴隷で終わるよw
英語ができて最先端に追従する奴、ときには自分が最先端を発信する奴に
「あ、こいつバカだなww」と思われながら生きる惨めな三流人生が待っている。
それで良ければ英語なんて学ぶ必要はない。
まぁ、普通は(普通の知性の持ち主は、という意味)
修士課程で英語の論文を死ぬほど読んで
「喋れないけど読める」という妙な英語力を身につけられるんだけどねw
0789名前は開発中のものです。
2014/05/17(土) 14:19:53.26ID:ZLhv9Phh0790名前は開発中のものです。
2014/05/17(土) 14:53:46.32ID:k3uAdR/A0791名前は開発中のものです。
2014/05/17(土) 17:55:58.84ID:ZLhv9Phh具体的に何をやってみてどこでつまずいてるのか話せば答えやすくなるかと
0792名前は開発中のものです。
2014/05/17(土) 18:02:04.88ID:G1g9tldjこれじゃあかんのか
0793名前は開発中のものです。
2014/05/18(日) 17:48:20.69ID:bAjzsQ9M0794名前は開発中のものです。
2014/05/18(日) 21:18:36.16ID:uYYY8hgNhttp://marupeke296.com/COL_2D_No8_QuadTree.html
これを3ビット毎にすれば出来ると思うんだがどうだろ
0795名前は開発中のものです。
2014/05/19(月) 04:39:02.31ID:XNC2jE/Yhttp://bituse.info/game/shot/11
for(int i=0;i<ENEMY_NUM;++i){
enemy[i]=new ENEMY(data[i].type,data[i].stype,data[i].m_pattern,data[i].s_pattern,data[i].in_time,data[i].stop_time,data[i].shot_time,data[i].out_time,data[i].x,data[i].y,data[i].speed,data[i].hp,data[i].item);
}
↑この文の enemy[i]=new ENEMYのイコールのところでオペランドと一致する演算子なんてねぇよって怒られます
原因として考えられるものってなんでしょうか?
for(int i=0;i<ENEMY_NUM;++i){
enemy = new ENEMY[i](省略);
}
だったらいけるみたいなんですけど、違いがよくわからないです・・・
0796名前は開発中のものです。
2014/05/19(月) 05:31:35.17ID:FdnDAUlP0797名前は開発中のものです。
2014/05/19(月) 10:00:14.39ID:hjxHIKHc正:ENEMY *enemy[ ENEMY_NUM ];
誤:ENEMY *enemy;
サイトを見ると省かれてるみたいだけど
敵を複数出すようにした時点で enemy を配列に変更しないといけない
0798名前は開発中のものです。
2014/05/19(月) 11:05:51.60ID:CSMuM09V無駄に読みにくいわ
0799795
2014/05/19(月) 11:33:54.01ID:XNC2jE/Yご指摘の通り、enemyを配列にしたら無事にコンパイルできました。
ちょっと私にはわかりにくいサイトだったようなので別のところで勉強してみます・・・
0800795
2014/05/19(月) 11:34:28.24ID:XNC2jE/Yご指摘ありがとうございました。
0801名前は開発中のものです。
2014/05/23(金) 00:32:00.04ID:61iiZtPGC++で作ったリアルタイムなネットワークゲームのオンラインサーバって
どういう環境で動いてんだべ?
ソシャゲならPHPでhttpでいいかもしんねけども、
ネトゲって実行ファイル動かし続けてんのかね
0802名前は開発中のものです。
2014/05/23(金) 00:34:30.27ID:BlMjMm70お前から感じるそのしったか臭は一体何なんだ?
0803名前は開発中のものです。
2014/05/23(金) 01:25:45.01ID:61iiZtPGそんなこと言っても知りたいってのは本当なんだけど
ていうかソシャゲってphpでhttp返してるって聞いたんだが違うのか
ソース3種類ぐらい別のところから聞いたからそうだと信じてたけど
0804名前は開発中のものです。
2014/05/24(土) 14:46:49.15ID:+A5Yp2pd0805名前は開発中のものです。
2014/05/24(土) 14:48:01.39ID:+A5Yp2pdスマートポインタ談義がすっぽり消えたなw
0806名前は開発中のものです。
2014/05/25(日) 20:49:24.73ID:oeSfMRxmC++で作ったゲームサーバーの話は聞かない
普通はPHPとかPerlで作ったHTTPサーバ
他にはUnity for Android製ゲームのサーバをD言語+vibe.dで書いたっていう例くらい
C++のHTTPサーバは国産のこれしか聞いた事無いし商用された話は見たこと無いなw
http://www.treefrogframework.org/ja/
0807名前は開発中のものです。
2014/05/25(日) 21:01:21.64ID:vsrsxORJ0808名前は開発中のものです。
2014/05/25(日) 21:10:04.84ID:NTyQi6H8速度優先だし。
>>806 は国産とか意味不明のこと言ってるし。ソーシャルゲームのことだろ。
0809名前は開発中のものです。
2014/05/26(月) 10:23:40.85ID:GZglaTlb↑w
0810名前は開発中のものです。
2014/05/26(月) 12:15:10.70ID:Pmy7lrM10811名前は開発中のものです。
2014/05/26(月) 23:19:43.69ID:NgiDAGf80812名前は開発中のものです。
2014/05/27(火) 00:18:29.37ID:E4+xEgMz卒論のためのプログラムをPerlで書いたんだよ。
「もしかして俺はアカデミズムの世界で生きられるほど賢くないのかもしれない」
そんな現実に気がつくころ、Perlも衰退を迎えてさ。
なんだか恥ずかしい青春の甘酸っぱい言語だよ。
0813名前は開発中のものです。
2014/05/27(火) 00:28:35.75ID:Cg0Gppa4一行一行、いちいち、ハテナ?と思わせる文章だな。
それが書けるのは>>806とお前くらいだよ。
0814名前は開発中のものです。
2014/05/27(火) 22:23:08.63ID:EKtsf5FUそれはさておき、サーバとクライアントとで同じ結果を出したいってときに、
Haxeを使ったってニュースなら見たことあるなあ
最終的に何言語になったかまでは覚えてないけど
0815名前は開発中のものです。
2014/05/30(金) 20:38:48.50ID:Z7hh6f//0816名前は開発中のものです。
2014/05/30(金) 22:00:59.71ID:3BKqOVuNwebブラウザ用の言語として生き残ってく予感しかしないんだが
0817名前は開発中のものです。
2014/05/31(土) 10:36:34.27ID:q6hYVMUhとうとうネットワークグラフ型に対応したstate machineを導入した。
状態遷移表を作ってみて、当初想定していた状態遷移仕様の複雑さに驚いた!
Game programming gemsの1巻を参考に実装したけど、
一定フレーム(もしくは時間)後に、自動的に遷移させるってどうやるのがいいんだろ。
0818名前は開発中のものです。
2014/05/31(土) 12:27:57.64ID:ROUPLRVK0819名前は開発中のものです。
2014/05/31(土) 13:53:36.95ID:q6hYVMUhレスthx
昔ドラゴンセイバーっていうゲームがあって、
射撃ボタンを押さずに放置すれば、溜め撃ちのエネルギーがたまって、十分にエネルギーがたまった状態で射撃ボタンを押すと、溜め撃ち弾発射っていう仕様があった。
この溜め撃ちを、有限状態機械的に表現すると、
・状態としては:「溜め撃ち不可能」「エネルギー溜め中」「溜め撃ち発射OK」「溜め撃ち発射中」
・入力としては:「射撃ボタン押し中」「射撃ボタン押さずに放置」
となって、
・「溜め撃ち不可能」状態で、「射撃ボタン押さずに放置」を入力すると、「ネルギー溜め中」状態になり、
・「ネルギー溜め中」状態で、さらに「射撃ボタン押さずに放置」を入力すると、そのまま「ネルギー溜め中」状態を維持して、
・「溜め撃ち発射OK」状態で、「射撃ボタン押し中」を入力すると、「溜め撃ち発射中」状態になる。
と適当に考えているんだけど、
問題は「ネルギー溜め中」状態から、「溜め撃ち発射OK」状態に遷移させるのはどうすればいいんだろう?
別途、「射撃ボタン押さずに放置(一定時間経過済み)」っていうFSM入力を新規に用意して、より上の層でタイマー管理して、入力を切り替えるのが良いのかな。
FSMとタイマーを融合させるいい方法はないかなあ。
遷移条件に最小連続入力回数を付け加えた上で、FSM入力の種類を増やして、連続入力回数もFSM入力させて、連続入力回数が、最小回数を上回っている場合だけ遷移させるとか・・・?
もしくは、そもそも上のFSMの定義がよろしくないのか・・・
0820名前は開発中のものです。
2014/05/31(土) 14:23:37.46ID:ROUPLRVKチャージ時間をパラメータとして持たせて不可から溜め中に遷移した時に初期化、ため中に放置で更新、一定値以上ならイベント起こしてOKの状態にする
みたいな感じじゃないとキツイ気がする
0821名前は開発中のものです。
2014/05/31(土) 14:26:46.71ID:TW8rxzzK0822名前は開発中のものです。
2014/06/07(土) 13:54:05.28ID:TPPcHjY+そうするとシングルトンや画面間で共有する変数とか無いってことだよね?
画面切り替わるたびに毎回HDDにセーブしてロードしてるの?
オブジェクト指向っていうとそうなりそうなんだけど
0823名前は開発中のものです。
2014/06/07(土) 14:11:15.61ID:Ug9B4jbc見た目=下部構造なんだな。
そのことを疑いもしない。
65越えるとようやく会話が成立するのだが。
0824名前は開発中のものです。
2014/06/07(土) 14:23:50.69ID:RywayQ4c0825名前は開発中のものです。
2014/06/07(土) 14:32:06.59ID:Hn3ULKCPもっとも会話自体する気無いように見えるけども
>>822
2行目の認識がちょっとずれてる気がする
シングルトンはオブジェクト指向プログラミングにおけるテクニックの一つだから
オブジェクト指向だとシングルトンが無い、なんてことにはならないと思う
共有したいデータは、複数の画面を管理するような寿命の長いインスタンスに入れておいて
各画面が都度アクセスするように作るかな、俺なら
プログラムって基本的に階層構造になってることが多いから、その上位階層で
下位階層で共有するデータを保持しておく、という感じで
0826名前は開発中のものです。
2014/06/07(土) 15:36:17.23ID:E1S3y9cEそれいちいち下位階層(各画面)のクラスに、共有データ保持クラスインスタンスへの参照メンバ変数を追加して、
さらにそれに参照を通すめのメンバ関数追加して、
場合によっては、そのメンバ関数を呼ぶタイミングに気を遣ったりと、面倒くさくない?
俺ならてっとり早くグローバル変数で解決だわw
しかし上記の様な構造が複数存在し得て、抽象化が迫られてるんだったら、
>>825の方法を取るかな
0827名前は開発中のものです。
2014/06/07(土) 16:19:22.33ID:TPPcHjY+これって俺に対して言ってるの?タイミング的にそうなんだろうけど
何言ってるのかさっぱりわからんこれが偏差値の壁か
0828名前は開発中のものです。
2014/06/07(土) 16:23:38.29ID:E1S3y9cEまだまだずっと先の話なんじゃないか
かなわないよなwww
0829名前は開発中のものです。
2014/06/07(土) 16:23:59.67ID:TPPcHjY+やっぱりメモリ上に保存するなら、共有したい階層の上で持つしかないよね
シングルトンはその最上位で必要以上の範囲で共有するから使うなって言われるのかな
0830名前は開発中のものです。
2014/06/07(土) 16:50:22.18ID:Hn3ULKCP「シングルトンを使うな」っていう人は
「グローバル変数は使うな」と言われる理由をよく理解しないで
さらにそれをシングルトンパターンまで勝手に拡大解釈してる人だと思って良いんじゃないかな
つまり聞き流しておk
0831名前は開発中のものです。
2014/06/07(土) 16:57:58.25ID:ZCBLR1T3そうなると、あえて使おうとも思わなくなる。
0832名前は開発中のものです。
2014/06/08(日) 06:13:59.13ID:SH3wdx83グローバル変数的な使い方は副次的な物
って解釈なんだけど
0833名前は開発中のものです。
2014/06/08(日) 09:00:11.27ID:CyDAhGQT0834名前は開発中のものです。
2014/06/08(日) 12:45:52.40ID:pvmKPe4Bあとはサウンド系だと思ってるけど
0835名前は開発中のものです。
2014/06/08(日) 12:47:12.67ID:5L4ensoLあとは自分の作ったクラスを他人が使う時にオブジェクトがひとつなのを意識させない、とか
その場合はモノステートの方がいいかもしれんが
0836名前は開発中のものです。
2014/06/08(日) 13:19:54.87ID:5L4ensoLそれをシングルトンと呼べるかどうかはわからんが
0837名前は開発中のものです。
2014/06/08(日) 13:50:50.16ID:+WMv8FJD3D空間じゃないからわざわざレイ飛ばすより画像のインスタンス見て回ったほうが早いと思ったんだけど
UIリストへの挿入時にソートするべきなのか?
なんか正解というのがピンと来ない
0838名前は開発中のものです。
2014/06/08(日) 14:02:34.45ID:pt28O8XW0839名前は開発中のものです。
2014/06/08(日) 14:07:29.29ID:tkJLCxRy画像のインスタンスを見るというのも意味不明。
0840名前は開発中のものです。
2014/06/08(日) 15:23:55.84ID:yGlWShIZ無駄過ぎて鼻水吹き出しそうな話だけど
画像のインスタンスって言ってんのはスプライトの事かな
0841名前は開発中のものです。
2014/06/08(日) 19:22:29.67ID:8RotVtW9画面を経由する必要があるほど不定形でぐにゃぐにゃしたUIなんだろうか
もしどうしてもやる場合は
俺ならオフスクリーンバッファにどのUIがトップかを書くかな
0842名前は開発中のものです。
2014/06/08(日) 22:43:04.22ID:vGgKRzGnと思ったけど、vramアクセスはパフォーマンス悪そうだな
0843名前は開発中のものです。
2014/06/09(月) 13:50:23.16ID:z2Jj9BRGスレチだったらごめん・・・
0844名前は開発中のものです。
2014/06/09(月) 15:07:01.85ID:F4+Sq4Or0845名前は開発中のものです。
2014/06/09(月) 15:12:29.18ID:HlN0nBf5物凄いレアケースでハードウェア絡みかもしれんが
もう一度コードを見直しが先決かねえ
0846名前は開発中のものです。
2014/06/09(月) 18:40:16.51ID:EHfKfPgC色構造体のバイトオーダー間違ってないか
0847名前は開発中のものです。
2014/06/09(月) 22:51:10.63ID:OtG7NFYQLIGHTINGやTEXTUREのEnable/Disableの切り替え忘れとかがありがちかなぁ
0848名前は開発中のものです。
2014/06/09(月) 23:44:28.20ID:hvcdW5Tu詳細に教えてなんて言わないんで、解説してくれているサイトを教えて下さい。
情報が少なすぎるのか、調べ方が悪すぎるかのどちらかで、アホな初心者にはできません。
0849名前は開発中のものです。
2014/06/09(月) 23:45:24.91ID:6mNjaANtvec3 out = in * texture2D(shadow, uv).rrr;
みたいにする。
0850名前は開発中のものです。
2014/06/09(月) 23:53:17.10ID:Cpf1syLL「exlipse DXLib」の検索ワードだけでゴロゴロ出てきたんだが?
0851名前は開発中のものです。
2014/06/10(火) 00:12:02.20ID:U4gTkVOfageてしまった。
それは以前にやったのですが、よく理解できませんでした。
ttp://moge32.jugem.jp/?eid=136
検索2位(1位は繋がらない)ここに書いてあることは直接Eclipseのことを書いてないように思うのですが、
これが必要最低限の情報だったりするんですか?
0852名前は開発中のものです。
2014/06/10(火) 00:57:17.61ID:SZhDftiM何か重くて表示されなかっただけでね。
キャッシュからも表示できたし。
0853名前は開発中のものです。
2014/06/10(火) 07:35:08.91ID:iWwQEe0Dライブラリのパスを参照設定するだけじゃないの?
他に、何かすることがあるの?
0854名前は開発中のものです。
2014/06/10(火) 10:32:37.64ID:+XEl/HM20855名前は開発中のものです。
2014/06/10(火) 10:47:00.49ID:WVu4972rきっとインストール権限ない環境かハードディスク残量の問題なんだろうね
0856名前は開発中のものです。
2014/06/10(火) 15:15:51.09ID:YWMLszVd0857名前は開発中のものです。
2014/06/10(火) 19:07:12.75ID:O01gD3CA棄教できなければ.NET framework神に詫びながら死ね。
0858名前は開発中のものです。
2014/06/10(火) 21:45:01.86ID:8Lf3BwfT0859名前は開発中のものです。
2014/06/11(水) 09:08:28.52ID:0bKjwM6R0860名前は開発中のものです。
2014/06/11(水) 09:16:03.77ID:WKLN/gkVでしたら、お好きな環境を選択されればよろしいとおもいますよ?
0861名前は開発中のものです。
2014/06/11(水) 09:21:09.41ID:0bKjwM6ROpenGLでいいでしょ
マルチプラットフォーム対象にするときどうすんの?
■ このスレッドは過去ログ倉庫に格納されています