トップページgamedev
1001コメント353KB

C/C++ゲーム製作総合スレッド Part4

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2013/08/12(月) NY:AN:NY.ANID:RPqvnGkC
ゲーム製作におけるC/C++全般に関するスレです。

元スレ
DXライブラリ 総合スレッド その12
http://toro.2ch.net/test/read.cgi/gamedev/1330000532/

前スレ
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/
0692名前は開発中のものです。2013/11/10(日) 19:50:19.66ID:YibCAKGF
>>691

好きにつかえば?
0693名前は開発中のものです。2013/11/10(日) 19:55:37.45ID:6BMJKGP6
だね
0694名前は開発中のものです。2013/11/10(日) 20:22:31.51ID:bgKauzyA
データの複製を2つ用意して、計3つ(A、B、C)のデータを
2つのスレッドで構造体のポインタをスワップする方式とか構想したことあるなぁ

Aを描画スレッドが使って、Cをルーチンスレッドが更新、
AとCのスレッド同期待ちを防ぐためにBがあるんだけどメモリ消費3倍の割りに
得るものがほとんどないんだよねw

A ←→ B ←→ C
0695名前は開発中のものです。2013/11/10(日) 20:43:45.76ID:AQnkKNT/
描画コマンドをリストに貯めてそいつをダブルバッファとしておけばいいんじゃないの?
DirectX11のマルチスレッド対応も実際には描画してないし
0696名前は開発中のものです。2013/11/10(日) 22:37:11.50ID:Y52keycr
垂直同期って具体的にどうやるの?
データから頂点の座標取得したりする描画スレッドとそれ以外のメッセージ処理や更新判定処理スレッドの
二つがあるとして

メインループの中で

更新
判定
描画

ってやってるんだけどちょちょいのちょいで出来るようにならない?
一応オブジェクト指向に則って疎結合を意識してるつもりな設計
0697名前は開発中のものです。2013/11/10(日) 22:37:57.03ID:Y52keycr
あ、ごめん、5行目からは現状の話ね
0698名前は開発中のものです。2013/11/10(日) 23:25:00.60ID:BZWoGG+b
OpenGLやDirectX使わないと垂直同期ってとれないんじゃないかな?
0699名前は開発中のものです。2013/11/11(月) 00:58:53.66ID:wJB5S1Qk
ちゃんとした垂直同期はDXGIじゃなかったか?
なんちゃって垂直同期は16ms待てばいい
0700名前は開発中のものです。2013/11/11(月) 01:43:24.19ID:5EPocdwq
DXGIってDirectX10以降か。
それ以前と以降では仕組みが違うんかな。
0701名前は開発中のものです。2013/11/11(月) 12:48:03.31ID:Fts6Gxoy
普通にD3D9以前でもできたっぺ
基本フルスクリーンモードでなきゃなんちゃってだけど
0702名前は開発中のものです。2013/11/11(月) 16:02:02.14ID:QJvegRhH
DirectX9 シェーダプログラミングブックを手にいれたんだけど、ネット見てるとアプリケーションウィザードってのが使えないらしい

これのかわりになるものってありますか?
ちなみにPCはWindows7でDirectX11です。
0703名前は開発中のものです。2013/11/11(月) 16:51:39.02ID:nqfJmzHs
Windows8.1でDirectXが11.2に進化
CPUやメモリへの負荷がさらに軽減され、
超高解像度の大画面などの表示もこれまで以上に快適になりました
0704名前は開発中のものです。2013/11/11(月) 16:52:56.35ID:ccAyXS0p
ほんとかよ(´・ω・`)
0705名前は開発中のものです。2013/11/11(月) 18:51:40.86ID:9nBr9W7M
Windowsが8にしんかした
0706名前は開発中のものです。2013/11/11(月) 20:46:10.17ID:Pi4WQJr5
>>702
もしかして VisualStudioのAppWizardの事言ってる?
0707名前は開発中のものです。2013/11/11(月) 21:05:44.05ID:2v1wLOCn
Directx9の時だったかあったかも
最後の方のDirectX9のサンプルを持ってればその中にEmptyProjectってのが代わりにあった
これをそのまま毎回コピペして読み込めばたぶん一緒
最近のVisualStudioなら最初にテンプレートのエクスポートすればコピペしなくて済みそうだ
0708名前は開発中のものです。2013/11/11(月) 21:29:01.28ID:YrCkgvSp
>>707
確かにEmptyProjectってのはありました

テンプレートのエクスポートってのをちょっと詳しく教えてください
0709名前は開発中のものです。2013/11/11(月) 21:34:01.50ID:8+GX9h85
そもそも必要性がないから無くなったのに、それで何がしたいんだ?
0710名前は開発中のものです。2013/11/11(月) 21:36:39.52ID:Pi4WQJr5
VisualStudioのAppWizardの事なら無償のExpress版と有償版で扱い違うから、
テンプレート書き換えの際に注意な。
あと基本的に自己責任
0711名前は開発中のものです。2013/11/11(月) 21:37:03.59ID:YrCkgvSp
>>709
DirectX9 シェーダープログラミングブックではその機能を使って進めてるから、ない場合はどうすればいいのかなと疑問に思っただけ
0712名前は開発中のものです。2013/11/11(月) 21:38:00.99ID:Pi4WQJr5
>>709
大体シェーダプログラミングってお題でなんでAppWizard必要なのかってのは
俺もずっと引っ掛かってた
0713名前は開発中のものです。2013/11/11(月) 21:40:36.26ID:Pi4WQJr5
>>711
そのお題で言うなら、要点はhlsl書く部分なので、
いつも通りのDirectXコード書いた上で、追加するイメージだよ
0714名前は開発中のものです。2013/11/11(月) 22:26:29.70ID:YrCkgvSp
>>713
なるほどわかりました

丁寧な回答ありがとうございました!
0715名前は開発中のものです。2013/11/11(月) 22:32:50.04ID:PnsUbhmi
DXlibずっと使ってたからわかんないんだけど
3dゲームでモデルファイル読み込むときって自分でバイナリ展開して頂点一個づつメモリ確保しておくの?
それともdorectxにそういう型があるの?
0716名前は開発中のものです。2013/11/11(月) 22:55:28.71ID:d6CPjZRD
>>708
EmptyProjectでもなんでもいいんだけど読み込んでビルドして問題ないようなら
メニューから→ファイル→テンプレートのエクスポートしておくと
新規作成で同じプロジェクトが量産できる
0717名前は開発中のものです。2013/11/11(月) 23:00:12.51ID:YrCkgvSp
>>716
そうなんですか?
めちゃくちゃ便利ですねww
今度使ってみます
0718名前は開発中のものです。2013/11/11(月) 23:01:07.66ID:8+GX9h85
頂点リストをメッシュに持たせて、フレームで束ねるだけ。
シェーダでは使いやすい構造を自分で定義して使う。
0719名前は開発中のものです。2013/11/11(月) 23:09:49.33ID:Pi4WQJr5
>>715
一応D3DXMESH型って言ういわゆる xフォーマットって呼ばれる形式はあるよ。
あるが、都合によっては遠回りだった色々あるので、VertexBufferやIndexBufferに詰めて、カスタムFVFで頂点情報指定して、
自分でDrawしたりする、
でその際、hlslのVertexShaderでは頂点の表示用移動計算したり、PixelShaderではラスタライズする際の色の計算したりする。
そんな感じ。

俺はDirectXとOpenGLの両方でキャラクタコントロール処理書いてるけど、どっちも基本的な考え方と処理方法の方針は同じ。
0720名前は開発中のものです。2013/11/11(月) 23:12:39.08ID:Pi4WQJr5
ちなみに必須じゃないけど、一度上に書いたような処理について深く掘り下げて理解しておくと、
例えばAndroidアプリ作るような場合にもほぼそのまま同じ考え方を持っていけるので楽しい。
0721名前は開発中のものです。2013/11/20(水) 16:41:23.19ID:mZCOUmnU
ちょい質問なんだけど、RPGとかのマップチップって例えば100×100のマップで既に
4byte(int) * 100 * 100 = 40Kbyte をメモリ上に展開しちゃうことになると思うんだけど、
そんなにメモリ使っちゃってOKなんかな?
charで節約したりした方がいいのん?
0722名前は開発中のものです。2013/11/20(水) 17:02:58.00ID:8xStlzdM
40kを気にするほどかつかつな環境で作ってるなら自分で工夫しないと。

それはそれとして、普通8bitで収まる情報量なら聞くまでもなくわざわざ4byteで持たないと思うけど。
0723名前は開発中のものです。2013/11/20(水) 18:10:09.38ID:Llt9nZp6
どうしても足りないときはVRAMの画面外使ったりしてたなw
将来的にも、640KBもあれば充分だw
0724名前は開発中のものです。2013/11/20(水) 18:21:35.83ID:a0jyWJdj
  (*゚ω゚ ) 不安ならメモリ増設すればいいじゃないか
  つi'"':
   `、:_i'
0725名前は開発中のものです。2013/11/20(水) 18:28:50.19ID:IgNTutIb
今時数十kbyteのメモリーの心配って、どんな環境よ?
0726名前は開発中のものです。2013/11/20(水) 18:37:24.78ID:AhomBF6+
>>724
お前天才だな
0727名前は開発中のものです。2013/11/21(木) 01:41:01.40ID:a974XkAr
よし、16KB拡張RAM挿すか!
0728名前は開発中のものです。2013/11/21(木) 21:30:35.93ID:gO/u8tbY
>>722
ありがとう。レイヤに分けるとけっこう嵩みそうだったから気になったの
0729名前は開発中のものです。2013/11/22(金) 11:42:42.36ID:L4YYaWZ6
マップエディタによっては8bitじゃ収まらないものもあるよ
0730名前は開発中のものです。2013/11/22(金) 11:45:55.04ID:el2jZgnT
クラス使ってると構造体を使う必要性が感じられないんだがいいんだろうか
0731名前は開発中のものです。2013/11/22(金) 12:16:45.45ID:d//1m//p
クラスだとmemcpyが使えないからなぁ……
0732名前は開発中のものです。2013/11/22(金) 12:18:32.72ID:D9r/jCCl
c++でのclassとstructは実体がほぼ同じだし
classばっかり使ってても別に問題ないと思うよ

使い分け指針は人によって違ってくるんじゃないかな
俺は、PODでメンバ関数をほとんど持たないものはstructにして
それ以外はclassにしてる
0733名前は開発中のものです。2013/11/22(金) 12:19:54.66ID:el2jZgnT
thx
アイテムとかはクラスにするか
0734名前は開発中のものです。2013/11/22(金) 12:27:03.21ID:C5tdgqMt
>>731
構造体だって、メンバに仮想関数がいる時点でアウト。
クラスと構造体の違いは、デフォルトの属性だけだ。
0735名前は開発中のものです。2013/11/22(金) 12:47:03.52ID:m4o+8FyI
ファイルアクセスにはよく使う。
0736名前は開発中のものです。2013/11/22(金) 13:10:34.70ID:f0yNZwTQ
ファイルアクセスって構造体できるの?
配列でやってるが

セーブデータ類は一旦構造体にまとめてるな
0737名前は開発中のものです。2013/11/22(金) 13:14:01.85ID:f0yNZwTQ
それともファイル入出力時に書く魔法の呪文の一部のあれか
0738名前は開発中のものです。2013/11/22(金) 15:23:15.47ID:0yYw/Mnl
「グローバル変数は使わない方がいい」と言うので勉強しなおしてるんですが、ずっと頭を悩ませてます。
例えば、いままで下のようにプログラミングしてました。

int loopflg = 1 ;
main() {


}
0739名前は開発中のものです。2013/11/22(金) 15:25:57.09ID:0yYw/Mnl
あ、すみません途中送信しちゃいました。
int loopflg = 1;
main (){
while( loopflg) {
//色々処理
}
}

こうしてると、プログラムのどこでもloopflgをオフにすればプログラムを終了させたりする事ができてたのですが、
これをグローバル変数でなくするとしたら、いちいちポインタをloopflgを使うであろう全関数に渡さなくてはいけないって事になるのでしょうか?
0740名前は開発中のものです。2013/11/22(金) 15:29:21.26ID:WFSnBMBO
普通はメッセージを投げる
0741名前は開発中のものです。2013/11/22(金) 16:04:33.07ID:lwGBy8D8
俺は、コピーの時に内容をまるまるコピーしても大丈夫なものをstruct
ダメなモノをclassで定義してるな
0742名前は開発中のものです。2013/11/22(金) 16:27:28.59ID:FoltViiy
趣味レベルのたかだか数千行クラスの糞コードなんか
グローバル変数使いまくりでもmain関数一本でも力技でねじ伏せられるから
何の問題もないよ
0743名前は開発中のものです。2013/11/22(金) 17:10:07.07ID:mwriLfsE
ポインタを渡して書き換えさせるのなら、結局グローバル変数と同じ危険性があるじゃないか……
何でグローバル変数の濫用がいけないのか、その理由について調べた方が良いよ
0744名前は開発中のものです。2013/11/22(金) 17:13:59.69ID:hYC6pvwJ
>>742
それでいいって考え方のまま定着すると、当然本人が糞しか知らない人間になるけどな。
それでいいならご自由に。
0745名前は開発中のものです。2013/11/22(金) 17:28:53.76ID:dd6zd2ga
グローバル変数はどこからでもアクセスできるから危険なのであってポインタは渡せなければアクセス出来ないから
グローバル変数よりかは安全
0746名前は開発中のものです。2013/11/22(金) 18:38:56.79ID:D9r/jCCl
どこからでも変更できる事が利点として働いているなら
グローバル変数のままで良いんじゃないかな
0747名前は開発中のものです。2013/11/23(土) 02:22:34.08ID:pCp+KEqg
AクラスをBクラスで使いたくて、
BクラスでAクラスのヘッダーをincludeしてから、
A* a;
って宣言したんだけど、「 構文エラー : ';' が '*' の前にありません。」って怒られる。
宣言を削除したらエラーは解消されるんだけど。誰か助けてー。
0748名前は開発中のものです。2013/11/23(土) 06:37:52.23ID:mkjLONm4
循環参照になってんじゃない?
もしそうならBヘッダ内でのinclude Aを消して、class A;ってだけ書けばいけると思う
Bヘッダ内でAのポインタ以外も使ってるとこの方法でも駄目だから、
その場合は循環参照をなくすかヘッダ内はポインタのみの使用にしないとだめ
0749名前は開発中のものです。2013/11/23(土) 07:11:39.19ID:5dPh0gWJ
>>747
Aクラスの宣言の終わりの } の後ろにつけるべき
セミコロンが抜けていると思われる

 class A {
  ...
 } ; ←コレ

これがないから、次に書いた「A* a」の「A」が変数名と取られて
変数宣言文なのにセミコロンで終わってねーよ、って怒ってるんだと思う
0750名前は開発中のものです。2013/11/23(土) 09:07:58.39ID:pCp+KEqg
ありがとうございます!
セミコロンは入っていたので、他の変数で循環参照になってないか見てみます。
includeしないでclassを宣言するって方法も調べた時に見つけたのですが、
そうするとAのメソッドや変数を使う時に困らないですか?
0751名前は開発中のものです。2013/11/23(土) 09:15:59.31ID:qAUswyg9
それはヘッダーファイルにincludeしないだけでcppファイルでincludeする
基本的にcppファイルをincludeすることはないからな
0752名前は開発中のものです。2013/11/23(土) 09:29:25.53ID:pCp+KEqg
コンパイル通った!
ありがとうございます。
cppとhどっちにincludeするかでどう違うかは勉強しないと。
どっちみちincludeしたソースを展開するから一緒の意味かと思ってました。
0753名前は開発中のものです。2013/11/23(土) 09:36:08.07ID:quMDFUnR
includeは単にその場所にファイルの中に書かれてる文字列をぶちまけるだけ
0754名前は開発中のものです。2013/11/23(土) 15:00:40.23ID:pCp+KEqg
未解決の外部シンボルが解決できないー。
ちゃんとincludeしてるのに。
0755名前は開発中のものです。2013/11/23(土) 15:52:53.74ID:eDIontM4
>>754
外部シンボルの解決はリンカの範疇の話だから、includeの話じゃない
たまたま include先で pragma してたらリンクされるけど、本質的にリンカの話。
ビルド時にリンクしてないんじゃないの?
0756名前は開発中のものです。2013/11/24(日) 00:58:34.12ID:nXfPoBTR
>>754
ヘッダーに宣言があってもリンク時に定義(本体)が見つからなければそらエラーになるさ

ライブラリをリンクし忘れる以外でも
関数の本体を書くのを忘れた、とか
書いていてもcppがプロジェクトに入ってなくてコンパイルされていないとかでも起こる
0757名前は開発中のものです。2013/11/24(日) 05:16:53.08ID:8WCzf0hr
そのとおりでした。
Aクラスはコンストラクタ2つ宣言してて1つしか定義していませんでした。。。
Aクラスの親クラスは2つ定義していたから勘違いしててずっと気づかなかった。
ありがとうございました!
0758名前は開発中のものです。2013/11/24(日) 16:28:43.61ID:Hldh+di0
なんかちょっと前に同じ質問見た気がする
0759名前は開発中のものです。2013/11/28(木) 08:11:12.57ID:CZM1vdUb
スティックでのカメラ回転作ってみたんだけど縦回転のときキモイ動きしやがる
0760名前は開発中のものです。2013/11/28(木) 09:37:30.27ID:7WgsJNsl
詳しく教えろ
0761名前は開発中のものです。2013/11/28(木) 09:51:07.57ID:al6vnunW
レスだけ見ると多分本人の計算ミス
0762名前は開発中のものです。2013/11/28(木) 10:19:38.67ID:X9Kxk+W2
z-up右手系やろうとして平行移動がキモくなったことならある
0763名前は開発中のものです。2013/11/28(木) 10:44:05.67ID:xZXVZMiY
横回転(左)はこれで
cam.dirX += cam.speed;
cam.posX = cam.range * sinf(cam.dirX * PI / 180.0f);
cam.posZ = cam.range * cosf(cam.dirX * PI / 180.0f);
縦回転(上)はこれなんだが
cam.dirY += cam.speed;
cam.posY = cam.range * sinf(cam.dirY * PI / 180.0f);
cam.posZ = cam.range * cosf(cam.dirY * PI / 180.0f);

縦回転するときだけX軸にぐにゃっと動きながら回転するんだよなぁ、多分>>761の通りミスかも
出先だから詳しくなくてすまん、あとdirは角度
0764名前は開発中のものです。2013/11/28(木) 11:02:27.16ID:LQeMJPRO
>>763
そういうときはsinをcos変えてみるべ
0765名前は開発中のものです。2013/11/28(木) 11:03:24.11ID:LQeMJPRO
sinとcosを入れ替えて試すって意味です
0766名前は開発中のものです。2013/11/28(木) 11:33:55.99ID:Px6CCwOG
軸をどうとっているかは知らないが、Yがプラスマイナス逆になってないか?
0767名前は開発中のものです。2013/11/28(木) 11:46:55.19ID:uKSbr4aj
原点がどこか、座標の正方向がどっちなのかって
結構バラバラだったりするしなあ。
0768名前は開発中のものです。2013/11/28(木) 14:45:26.84ID:WY2yxhUI
posZ = range * cosf(dirX * PI / 180.0f);
posZ = range * cosf(dirY * PI / 180.0f);
バグのもと
上の式から逆算してdirX計算してるならxが動くのもあたりまえ(dirX=dirY、斜めに回転)
初期状態で全部変わるから行列から計算しなきゃ出ないと思うよ
3Dアクションのソース見れば幸せになれる
0769名前は開発中のものです。2013/11/28(木) 14:55:56.16ID:xZXVZMiY
同時に処理してるんじゃなくそれぞれのキーを押してる間だけなのよ…
視点はプレイヤー固定なのでsinとcosをちょっと弄ってみるかなぁありがとう
0770名前は開発中のものです。2013/11/28(木) 15:15:08.32ID:WY2yxhUI
行列をおすすめするけどなぁ…
直接式書くなら三角関数の数はxzは2つyは1つだと思う
0771名前は開発中のものです。2013/11/28(木) 15:40:16.54ID:l3wVILCr
ここDxlibスレじゃないや
アクションのソースとか言っちゃった恥ずかし
一応初期値(1,0,0)でY軸回転αZ軸回転βなら
x=L*cosα*cosβ
y=L*cosα*sinβ
z=L*sinα
間違ってる可能性もあるし参考程度にどうぞ
0772名前は開発中のものです。2013/11/30(土) 12:10:58.88ID:lvaUOwa3
原野

栗山

千葉

小村

西塚
0773名前は開発中のものです。2013/11/30(土) 21:01:47.61ID:WaV6+DQM
座標関連はうまくいくと気持ち良いな
時間かかったけどカメラの角度にあわせてキャラを動かすのって結構理解してないと出来ないよな・・・
0774名前は開発中のものです。2013/12/01(日) 02:05:33.15ID:oOKmIZTk
角度に合わせて移動ならスクリーン変換して終わりじゃない?
カメラと一緒に移動させるのは面倒だった気がする
こっち向ける+カメラ位置が動くと移動+カメラ角度が動くと移動
0775名前は開発中のものです。2013/12/01(日) 07:20:38.32ID:+WHSwaPK
普通、キャラに移動に合わせてカメラを動かすものじゃないのか?
0776名前は開発中のものです。2013/12/01(日) 09:55:24.92ID:jbLYHAr/
プレイヤーの移動ループにcamera.posX+=10.0f;とかでカメラの移動を仕込むの?
0777名前は開発中のものです。2013/12/01(日) 13:48:16.95ID:+WHSwaPK
キャラクターの位置だけわかっていれば十分。
あとは想定している角度と距離でカメラを動かすだけ。
0778名前は開発中のものです。2013/12/01(日) 14:07:02.97ID:oOKmIZTk
>>777
追従ターゲットとは別にステータスとか視界回り固定しなきゃいけないのを3D使うときにいる
そこから「こっち向ける」を消せば角度コンパスになるし
ねじりだけ追従ターゲットにすれば飛行機操縦でダメージ受けたときの揺れを表現できたり
0779名前は開発中のものです。2013/12/01(日) 15:41:38.59ID:+WHSwaPK
2Dと3Dオブジェクトを同じカメラでやろうとするのが間抜けなんだよ。
一つのシーンを描画するのに、カメラを一つしか作れないという固定観念に捕らわれているやつを見ると、
なんでこんなに頭が固いんだろうとしか思えない。

スクリーンの特定の位置に固定するのなら、それがやりやすい座標が使えるカメラを用意すればいいだけ。
カメラは描画するものに応じて切り替えろ。

3D空間上のワールド座標を使用する平面オブジェクトなら、
頂点シェーダでワールド変換をかけた後に、平面を引き延ばせば余計な逆変換もいらない。

簡単にできることを、なんで遠回りで無駄な方法でやろうとするのかさっぱり理解できない。
0780名前は開発中のものです。2013/12/01(日) 15:46:57.06ID:jbLYHAr/
あーあ変なやつきちゃった
0781名前は開発中のものです。2013/12/01(日) 17:06:03.08ID:qiVwV83p
>>779
例が悪くてすまんね
最初は追従する属性を持ったオブジェクトとして3D衝突判定用カメラで管理したいから実装したんだ
例はそれを2D用に移植しただけ

それともオブジェクトの下に移動用カメラがあるなら設計の違いだね
その実装にかかる労力が違う
0782名前は開発中のものです。2013/12/01(日) 17:23:57.22ID:7Qx01R/M
>3D衝突判定用カメラ
カメラで衝突判定?
0783名前は開発中のものです。2013/12/01(日) 18:00:54.04ID:OLw0mnPy
カメラぶん投げるじゃん?
何かに当たるじゃん?
そこは通行不可じゃん?
0784名前は開発中のものです。2013/12/01(日) 18:05:36.28ID:0yRdePyz
あれか、ドライブレコーダーってやつ
0785名前は開発中のものです。2013/12/02(月) 11:55:14.28ID:jHZt/44N
3dの衝突判定ってどうすんの?
岩みたいな地形をキャラクターに歩かせたり、
車で凹凸によるジャンプとかしたいんだけど
0786名前は開発中のものです。2013/12/02(月) 12:20:05.98ID:jaAk+efU
物理学もしっかり勉強せい
0787名前は開発中のものです。2013/12/02(月) 13:09:52.50ID:1PlO4ycl
>>786
判定よ判定
true or falseで知りたい
0788名前は開発中のものです。2013/12/02(月) 13:52:33.76ID:EmIrbEhh
yes
0789名前は開発中のものです。2013/12/02(月) 14:26:37.50ID:gdGFdJWe
>>787
1.Bulletの衝突検出は物理部分抜きの単体で使えるからそれを使う
2.ODEの衝突検出が、OPCODEっつー単体のライブラリとして使えるからそれを使う。
3.DirectXMathにプリミティブの衝突判定がいくつかあるからそれを使う。
4.「ゲームプログラミングのためのリアルタイム衝突判定」って本があるからそれを読んで自分で作る。

好きな道を選ぶといい。やりたいことにもよるけど、大抵下に行くほど茨の道。
0790名前は開発中のものです。2013/12/02(月) 17:07:26.41ID:KYoWWiEK
>>787
その true or false で結果を得られる判定の為に、物理と代数幾何が必要って事。
0791名前は開発中のものです。2013/12/02(月) 17:24:57.04ID:5lIjXhCp
すり抜けの対処入れるとキッツイわ
0792名前は開発中のものです。2013/12/02(月) 17:44:53.07ID:G29AI0ve
すり抜けなんてねぇ
前フレームと現フレームを線でつないで適度な太さのカプセルと判定させる
ゲーム判定なんてそんなもん
■ このスレッドは過去ログ倉庫に格納されています