1 名前:名前は開発中のものです。 mailto:sage [2012/10/24(水) 03:01:09.64 ID:oI68Vzqz] ゲーム製作におけるC/C++全般に関するスレです。 元スレ DXライブラリ 総合スレッド その12 toro.2ch.net/test/read.cgi/gamedev/1330000532/ C/C++ゲーム製作総合スレッド Part1 toro.2ch.net/test/read.cgi/gamedev/1337516528/
121 名前:名前は開発中のものです。 [2012/11/06(火) 19:53:02.05 ID:eNz//o3J] なんで距離求めて x,yに分解するんだ
122 名前:名前は開発中のものです。 mailto:sage [2012/11/06(火) 23:19:03.48 ID:STH5OQ9t] 点Aを(0,0)とした点B(bx-ax,by-ay)があった時 点Aを座標軸ごとθ度回転させた時に、θ方向を基準とした点Bの座標が>>116 ...?? gyazo.com/069649312522d587ceeb9f9fef62682b gyazo.com/e1e11d10fd9465401c7b8dc04899e31b Angleはどこに代入すれば・・・
123 名前:名前は開発中のものです。 mailto:sage [2012/11/07(水) 00:15:23.58 ID:VREKKmj9] 画像の通り。 (cosθ, -sinθ)(sinθ, cosθ)と(x, y)の行列の積。回転行列。 >Angleはどこに代入すれば・・・ sin()やcos()に何渡すんだよw
124 名前:名前は開発中のものです。 mailto:sage [2012/11/07(水) 00:34:19.50 ID:VBlYDNDl] そもそも>108の日本語がワケワカメで何がやりたいのかさっぱりわからん
125 名前:名前は開発中のものです。 mailto:sage [2012/11/07(水) 02:11:54.93 ID:amzJWZHs] >116の書いた x'=(xb-xa)cos(-Angle)-(yb-ya)sin(-Angle) y'=(xb-xa)sin(-Angle)+(yb-ya)cos(-Angle) これが正解だろ
126 名前:名前は開発中のものです。 mailto:sage [2012/11/07(水) 05:25:09.69 ID:Wwvr1glG] >>124 全くだな。一生ROMってろレベルだ
127 名前:名前は開発中のものです。 mailto:sage [2012/11/07(水) 06:13:29.64 ID:F1nCS+Bd] >>120 この方法で解決しました! ありがとうございました。
128 名前:名前は開発中のものです。 mailto:sage [2012/11/07(水) 09:00:37.96 ID:Xletgf7N] 相対座標求めたいだけだったのかよw
129 名前:名前は開発中のものです。 mailto:sage [2012/11/07(水) 09:02:49.31 ID:Mr7fX9Z7] >>128 回転が加わると育ちが悪いせいかどうも遠回りな計算しか・・・
130 名前:名前は開発中のものです。 mailto:sage [2012/11/07(水) 09:03:26.42 ID:Mr7fX9Z7] >>109-128 ありがとう
131 名前:名前は開発中のものです。 [2012/11/08(木) 06:32:08.18 ID:ELEjlKZe] 見下しているつもりのバカの滑稽さがなかなか楽しかった
132 名前:名前は開発中のものです。 mailto:sage [2012/11/08(木) 10:09:58.85 ID:8AHptFMp] なんだかんだ言って教えてくれる人がたくさんいるツンデレ空間w
133 名前:名前は開発中のものです。 [2012/11/08(木) 11:16:16.68 ID:ELEjlKZe] >>1332 教えている奴の大半がまともにコード読めないアスペか 池沼だったけどな まあマシンスペック上がってるしこんなんでもいいのか
134 名前:名前は開発中のものです。 mailto:sage [2012/11/08(木) 12:15:49.62 ID:8AHptFMp] ( ´∀`)σ)∀`) >>133
135 名前:名前は開発中のものです。 mailto:sage [2012/11/08(木) 13:14:42.55 ID:zP8ZUOET] sqrtはx86の拡張命令セットにあるはずだからそんなにリソース食わないと思う 10年前のコンパイラ使ってるとかなら話は別だが
136 名前:名前は開発中のものです。 mailto:sage [2012/11/08(木) 20:35:57.54 ID:1/7WKa2O] カンスト時のオーバーフロー対策として範囲チェック付きのintのラッパークラス作って 多方面でintの代わりに使うのって悪手なのかな? チェックしないワケにはいかないから毎回毎回チェック用の関数に通してたけど そんなことするくらいならラップしたほうがいいよね?
137 名前:名前は開発中のものです。 mailto:sage [2012/11/08(木) 20:45:48.77 ID:Z+cFsqvj] >>136 それ演算子オーバーロードして計算する度にチェックしたりすんの? 結構なオーバーヘッドになりそうな気がするが… 一回ベンチマーク取ってみた方がいいと思うけど あとはオーバーフローする可能性のあるところだけ使うとか
138 名前:名前は開発中のものです。 mailto:sage [2012/11/08(木) 21:01:40.06 ID:1/7WKa2O] >>137 もちろん単純な計算とかはintと同じような振る舞いができるようにしようと思ったんだけど 思いつきだったから他所の各種フォーマットのこととか考えると一気にめんどくさくなってくるね・・・
139 名前:名前は開発中のものです。 mailto:sage [2012/11/08(木) 21:36:07.56 ID:G2+9xcvR] 多倍長整数クラスみたいなのは自作しないのが鉄則だと思う
140 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 16:35:38.97 ID:X+TCzH6/] ググッてみたが連絡必須な作者ばっかりだな
141 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 19:50:15.35 ID:VSrh+osv] 「任意倍長整数 std::vector」でググッた? しかし、ゲームではスコアぐらいしか使い道が無いような・・・
142 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 20:23:54.88 ID:r5dUZ16H] intがダメならlongを使えばいいじゃない 現実的な時間でカンスト出来なきゃおkでしょ
143 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 22:04:54.38 ID:VSrh+osv] それを言うならlong longじゃね? longとintじゃ、サイズ一緒だし。
144 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 22:08:31.43 ID:VSrh+osv] C#やVBとC++じゃ、データサイズ違うしな
145 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 22:20:24.27 ID:iHmFaNL/] さーせんintが16bitと勘違いしてた
146 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 22:34:04.03 ID:Dzz1dA77] 少し質問です。 最近のFPSゲームなどはどんな言語、環境、ソフトを使って開発しているのでしょうか?
147 名前:デジタルハリウッド偏差値45 mailto:sage [2012/11/09(金) 22:36:07.04 ID:8DN5+ede] >>146 Unity
148 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 22:42:50.09 ID:Dzz1dA77] >>147 ゲームエンジンが主流ですか、Unityなら言語はC++でしょうか? DXライブラリというものも耳にしますが、あれは何なのですか?
149 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/09(金) 22:44:39.99 ID:8DN5+ede] >>148 わかりません Unityやってます はいjavasciptでUnityを使います シューティングゲームみたいなのを作っています
150 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 22:48:57.56 ID:lyg7gPNA] >>145 >さーせんintが16bitと勘違いしてた 16bit機なら間違ってない。
151 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 22:51:56.08 ID:pwxZtJFc] PCのFPSなら、作品数で多いのはudk またはunreal engineかと。やったことあるならロゴはみたことあるよね。 それかc++とdirectXで内製するかかな? dxlibは公式みればわかるけど、directXのラッパーで扱いやすくしてるらしい。2dがメイン? 3Dは一応dxlibでもあるらしいよ。使えるか使うほどのものかは自分で調べてね。 公開されてるゲームエンジンならtorque3dとか、ogre3d(c#とかあるけどどれだけ利用されてるかはしらないな。
152 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/09(金) 23:03:02.76 ID:8DN5+ede] >>148 あ、javascirptやってればいいと思います 僕は学校でunityのjavascirptを使ってunityゲームつくってます あ、そうなんですか FPSはあれがすきです ゴーデンアイです 日本のゲームしかわかりません
153 名前:名前は開発中のものです。 mailto:sage [2012/11/09(金) 23:17:07.62 ID:Dzz1dA77] >>149 >>151 おぉレスありがとうございます、早速いろいろと調べてみます ちなみに好きなFPSはAVAです
154 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/09(金) 23:22:45.88 ID:8DN5+ede] >>153 AVAですか でもAVAってネトゲですよ 運営のGAMEONは韓国資本です 搾取されてる感じなのでネトゲはあんまり好きじゃないです
155 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 00:06:42.01 ID:ZRDvwXZX] (^q^)FPSが大好きです、どうやって作ればいいですか?
156 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 00:09:07.07 ID:/iHA2cHX] >>155 まず服を脱ぎます
157 名前:名前は開発中のものです。 mailto:age [2012/11/10(土) 00:26:49.89 ID:C6N3xOd/] C++製の同人ゲーでオススメは?
158 名前:名前は開発中のものです。 [2012/11/10(土) 00:51:56.35 ID:c/VcRE9w] CかC++かとかわからんやろ〜
159 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 01:42:45.45 ID:jSSOLfjK] >>157 どうやって判断すんだw
160 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 01:51:18.61 ID:uDOWmTU2] readmeや自サイトに書かれてることは少なくないけどね
161 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 08:04:43.07 ID:vuCkQhFB] DXライブラリ使ってれば大抵C++
162 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 08:58:28.72 ID:WCv+J7TM] 同人ゲームならコミケ行って開発者に聞くのが早くね?
163 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 09:08:47.06 ID:vuCkQhFB] バイナリエディタでexeを開いて「C++」で検索すると、「Visual C++ Runtime Library」という文字列が出てきた VC++製のプログラム全部に含まれるみたいだからこれで判別できるな
164 名前:デジタルハリウッド@偏差値45 [2012/11/10(土) 09:41:21.35 ID:LnFUWnqt] >>155 Unityがいいですよ DirectXっていうのは時代遅れです C++も時代遅れです Javascriptがブームです Unity Game Jamっていうサークルがあるのでよかったらきてください FPS作ってる人もいます
165 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 09:44:50.76 ID:JDLvE6hN] UnityみたいなゲームエンジンもJavascriptで作れる時代なのか・・・ GooogleのV8もJavascriptで書かれてるのかな そのうちJavascriptでOS書いたりデバイスドライバ書いたりできるようになるかな?
166 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 10:17:43.51 ID:hp96843s] >>165 なんか勘違いしてるっぽい
167 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 11:19:24.13 ID:JDLvE6hN] まさか時代遅れのC++やさらに古いC言語で書かれてたりしないですよね?
168 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 11:20:29.38 ID:7J8tbM/I] 俺はjavascriptで身長伸びて彼女できて宝くじが当たったよ
169 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/10(土) 11:23:04.28 ID:LnFUWnqt] 僕はUnityとjavascript使ってゲーム作ってるよ C++とか時代遅れだよ javascriptの時代だよ
170 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 11:24:43.50 ID:GU+cQ84R] 高度な釣り
171 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 11:39:58.87 ID:ugQSrMUN] 高度ではないだろ
172 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 12:39:11.62 ID:HViNGugV] どこからが釣りなの? >ゲーム製作におけるC/C++全般に関するスレです。 まさかこれ?
173 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/10(土) 12:42:27.01 ID:LnFUWnqt] ???
174 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 12:47:00.70 ID:L5/NCAoO] 馬鹿と無知としったかはほっておけ。スルースキルは2chのスキルの中で最も重要
175 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 12:51:39.87 ID:HViNGugV] >>174 もともと釣りじゃなかったのか、了解した
176 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/10(土) 12:58:26.41 ID:LnFUWnqt] C++のnewってどういう意味でしょうか?
177 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 13:01:59.44 ID:7J8tbM/I] newはjavascriptにもあるだろ
178 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 21:44:09.79 ID:kdgWH7qz] javascriptwwwww ブラクラゲームかwwwww
179 名前:デジタルハリウッド@偏差値45 mailto:sage [2012/11/10(土) 22:20:18.38 ID:LnFUWnqt] 何がおかしいんですか?
180 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 22:39:49.87 ID:zPoeI4Ci] 初心者でも今時JavaとJavascriptは混同しねーよwww
181 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 22:51:17.47 ID:0f/wz9cV] 誰かブラクラゲームに突っ込んでやれよw
182 名前:名前は開発中のものです。 mailto:sage [2012/11/10(土) 22:57:47.64 ID:zPoeI4Ci] 余計なJavaScriptはウザいからそういう皮肉かと思った
183 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 09:12:21.25 ID:9N5q0Xsj] 話題ないみたいだからちょっと質問 透明色含んだビルボード表示するときにvectorに突っ込んで表示順ソートしてるんだけどなんか遅そうな気がする もっと効率的にソートする方法ないかな もしくはzバッファ切った方がいいの?
184 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 09:30:12.70 ID:8Q0utp4J] >>183 何個ソートしてんの?
185 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 10:33:03.40 ID:9N5q0Xsj] >>184 3Dシューティングぽいので弾を全部ソートしてるから最大で300くらいかな? 敵増やすと増えるからちょっとあいまいだけど
186 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 10:37:25.65 ID:4wR9uF6j] たった300なら何も問題ない ただ、vectorにはポインタを詰め込むべき vectorはlistと違ってソート時にメモリを直接置換するから、構造体のサイズがそのままネックになる ポインタを詰めれば毎フレーム10000以上の要素をソートしても60fps余裕だよ
187 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 11:35:18.71 ID:A9vKBFCi] vectorの中身をポインタにして比較関数の中でポインタの先参照して比較って感じでいいのかな?
188 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 14:36:53.02 ID:7uL1yheX] でも「毎フレーム全ソート」って本当に必要? 弾が作られた時にだけ適所にインサートすればいんじゃない?
189 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 15:38:57.87 ID:4wR9uF6j] ソート方法によるけど、STLのマージソートは未ソートの要素が多いほど時間が掛かって、 ソート済の場合ほとんど処理を食わないから毎フレームソート処理してても大して問題ないはず それに>>185 は3D空間のオブジェクトのソートをしてるというから、カメラがちょっと動いただけでもソートの必要が出る ソート関数にかけること自体がソートする必要があるかの判定になってると言ってもいい
190 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 16:39:59.60 ID:eWkVVOn6] >>183 ですが とりあえずstlのソートでも十分速いと言うことなので安心した 勉強になりました
191 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 21:04:01.78 ID:cEtJDQKT] 横。 vectorにポインタを格納するとして、本体はどこに置くの? もちろん状況次第だとは思うけど、別のvectorとか?
192 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 21:19:11.80 ID:a9WU8SHc] ヒープ
193 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 21:43:47.14 ID:HVfjUt4J] newしろ
194 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 21:56:20.66 ID:Oj4WY+EN] 固定で別の配列にするのが普通だと思う
195 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 22:23:30.25 ID:4pvX9vHm] なら実データをvectorに入れればいいじゃん
196 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 22:35:19.83 ID:R7nFxA7+] シーンの最初と最後に生成、破棄するならauto_ptr使って ポインタだけvectorで管理するのもありなんじゃないかと 思ったんだがどうだろうか
197 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 22:43:12.39 ID:HVfjUt4J] とりあえずauto_ptrとかいうゴミを捨てるんだ
198 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 22:57:50.27 ID:R7nFxA7+] よく考えたらauto_ptr使って元のポインタだけ管理しようとしたら newしてる関数抜けた瞬間deleteされるからダメかw
199 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 22:58:45.26 ID:BrAT+Ts5] もうauto_ptr時代遅れなん?
200 名前:名前は開発中のものです。 [2012/11/13(火) 23:01:15.07 ID:KobHHPjK] 気にせず使ってください^^
201 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 23:01:32.88 ID:k2b3NisB] auto_ptrってなんですか? どうしてunique_ptrを使わないんですか?
202 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 23:02:03.36 ID:R7nFxA7+] c++11でdeprecated指定だって en.m.wikipedia.org/wiki/Auto_ptr なんかunique_ptrが代わりになるのかな?
203 名前:名前は開発中のものです。 mailto:sage [2012/11/13(火) 23:07:03.03 ID:k2b3NisB] スコープを抜けるときに自動で閉じるファイルポインタとか 例外いつ投げても閉じてくれるので便利ですね? std::unique_ptr<FILE, decltype(&fclose)> fp(fopen("filename", "r"), fclose);
204 名前:191 mailto:sage [2012/11/14(水) 00:25:26.13 ID:CmmzPOW9] >>192-194 最初から数が分かってるか、途中で増えるか等に応じて、 普通の配列、配列の動的確保、vectorあたりを使い分けるって感じかな?
205 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 07:47:57.43 ID:f09Uuje+] vectorで実体まとめるとバッファのリサイズ発生した時にアドレス変わるんじゃない?
206 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 08:50:51.27 ID:Za6Nl7tI] そんなの当たり前じゃん。
207 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 08:58:13.52 ID:f09Uuje+] vectorで実体管理してソートのためにポインタのvector使ったら リサイズ発生した時点で参照変わるからちゃんと動かなくなるよね 最初に確保した分より増えないなら大丈夫だろうけど これ発生したら原因特定めんどくさそう
208 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 09:06:59.91 ID:CmmzPOW9] あー、それもそうか。失敬
209 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 15:05:59.50 ID:Za6Nl7tI] >>207 っていうか「Vectorで実体管理」がそもそも意味不明。 ポインタで管理してるならそれだけでいいじゃん。
210 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 16:31:57.71 ID:OuQGweox] 確かにvectorにポインタいれときゃそれでdelete出来るな 自分でちゃんとdeleteするならそれで十分か
211 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 17:44:55.77 ID:3cThVkCw] newしたポインタはとりあえずstd::unique_ptrかstd::shared_ptrに入れるべき deleteなんて自分で書いたら負けだぞ デストラクタもハンドル管理クラスみたいなの以外では自分で書いたら負け
212 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 18:27:52.20 ID:lHOdfYqK] それは一般レベルの場合な 我々のように国家機密レベルでやってる場合は違う
213 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 18:36:32.02 ID:5BbMRJco] 何に負けるんだよ 見えない敵と戦う労力こそが一番の無駄
214 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:00:59.45 ID:3cThVkCw] 見えない敵というとメモリリークですね まあ、お遊びプログラムならすぐに終了されるので リークしても問題ないのかもしれませんが
215 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:09:24.21 ID:3BI2eEEx] shared_ptrはvectorに入れても大丈夫なのか vector<shared_ptr<クラス>>でやっときゃ勝手に消えてくれそうだな
216 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:15:38.28 ID:CmmzPOW9] >>211 十行くらいのブロックで、かつ外に出すつもりもないならnew/deleteで書いちゃうなあ
217 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:28:19.33 ID:BbQiy07V] リークするのはお前の脳みそだけにしておけ
218 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:32:08.10 ID:FHk4zIEt] うんまぁお前らも一番実感してると思うけど、自分のルールの一貫性を保つことが一番大事だからな もちろん柔軟に対応するのも大事だし柔軟に対応できるような構造にしておくことはもっと大事だが
219 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:38:37.20 ID:3BI2eEEx] >>216 ブロックの外に出さないならローカル変数の方がよくない? 可変長だと無理かもしれんけど
220 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:40:11.42 ID:3cThVkCw] 生ポインタの場合 A* a = nullptr; B* b = nullptr; try { a = new A(); b = new B(); doSomething(a, b); }catch(...){ if (a) { delete a; } if (b) { delete b; } throw; } delete a; delete b; std::unique_ptrを使う場合 std::unique_ptr<A> a(new A()); std::unique_ptr<B> b(new B()); doSomething(a.get(), b.get()); なぜわざわざ生ポインタを使おうとするのか、理解できない
221 名前:名前は開発中のものです。 mailto:sage [2012/11/14(水) 19:52:16.75 ID:3BI2eEEx] 生ポとは関係ないんだけど、例外処理ってしてる? tryは遅いらしいと何かでみたから基本投げっぱなしスープレックスなんだけど 実際どうなん?