【C++】 DirectX初心者質問スレ Part4【C++】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/05/08(日) 01:53:41これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する香具師 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
前スレ
【C++】 DirectX初心者質問スレ Part3【C++】
http://pc8.2ch.net/test/read.cgi/tech/1108987183/
0116115
2005/05/18(水) 11:44:250117デフォルトの名無しさん
2005/05/18(水) 12:21:550118デフォルトの名無しさん
2005/05/18(水) 12:25:550119デフォルトの名無しさん
2005/05/18(水) 12:28:47どこがおかしくてどうやったら解決したか
を書け。
0120デフォルトの名無しさん
2005/05/18(水) 13:56:46>>103
0121デフォルトの名無しさん
2005/05/18(水) 16:20:35せめてDirectXのバージョンくらい書こうぜ。
8以降ならResetするときにD3DPRESENT_PARAMETERSを変更するだけでOK。
0122デフォルトの名無しさん
2005/05/18(水) 18:22:210123デフォルトの名無しさん
2005/05/18(水) 18:54:01うまくいかなかったらデバイスもリソースも全部作り直したほうが楽かもね
0124デフォルトの名無しさん
2005/05/18(水) 19:57:060125デフォルトの名無しさん
2005/05/18(水) 22:31:44やっぱクラスにまとめるんですか?
Xファイルにパラメータみたいなものも書き込めるんでしょうか?
0126デフォルトの名無しさん
2005/05/19(木) 00:03:58自分でテンプレートを定義すればいくらでも入る。
XFileはただのコンテナに過ぎない。
0127115
2005/05/19(木) 00:44:460128デフォルトの名無しさん
2005/05/19(木) 02:37:04xファイルにユーザーデータな話でぐぐれ
0129デフォルトの名無しさん
2005/05/20(金) 15:54:330130デフォルトの名無しさん
2005/05/20(金) 17:59:020131デフォルトの名無しさん
2005/05/20(金) 18:06:040132デフォルトの名無しさん
2005/05/20(金) 21:08:390133デフォルトの名無しさん
2005/05/20(金) 23:24:13クライアントサーバ型チャットプログラムを作っています
通信相手が接続したらDPN_MSGID_メッセージを
別ソースへ記述してあるメッセージハンドラが受け取って
.NETWindowsフォームアプリケーションのForm1の
リッチテキストボックスコントロールのrichtxtに
"接続しました”系のメッセージを表示するには
どうすればよいでしょうか?
switch(dwMessageType)
{
case DPN_MSGID_CREATE_PLAYER
ここをお願いします
return DPN_OK;
}
0134デフォルトの名無しさん
2005/05/21(土) 05:07:41DirectPlayがどうとか前半の話は全然関係ないやん。
0135デフォルトの名無しさん
2005/05/22(日) 01:43:120136デフォルトの名無しさん
2005/05/22(日) 01:47:480137135
2005/05/22(日) 02:13:28ランドスケープでぐぐると造園等のまったく関係の無い情報ばかりでてきますのでもう少し絞り込むためのキーワードみたいなものを教えていただけないでしょうか?
0138デフォルトの名無しさん
2005/05/22(日) 02:34:42一つ先のフレームでの自キャラの位置を想定して、
「自キャラの膝あたりから地面方向に飛ばしたレイ」と「自キャラの真下の地面のポリゴン」
との当たり判定(直線と面との当たり判定は、intersectなんちゃらとかいう関数がDXにあったと思う)をして、
レイと地面の交差位置が自キャラの膝下の長さより長ければ浮いてるって事だからその分だけ下降させ、
短ければ潜ってるってことだからその分上昇させる事で「接地」させられる。
というふうに自分はやってみた。
0139デフォルトの名無しさん
2005/05/22(日) 07:10:060140デフォルトの名無しさん
2005/05/22(日) 07:42:070141デフォルトの名無しさん
2005/05/22(日) 12:55:01長さにするか迷ってるのですが、よく使われる設定
とかってあるんですか?
0142デフォルトの名無しさん
2005/05/22(日) 13:31:110143デフォルトの名無しさん
2005/05/22(日) 14:26:02デバイスをリセットする際、その直前にいくつかのメモリを明示的に解放しないと
いけないと本に書いてありましたが、CreateVertexBuffer メソッドで取得した
LPDIRECT3DVERTEX9 も解放する必要があるのでしょうか。
もし解放するなら、どのように解放するのでしょう。
LPDIRECT3DVERTEX9 には Release メソッドが無いし、
FreePrivateData メソッドもなにか違う気がするのですが…
実は CreateVertexBuffer で D3DPOOL_MANAGED を指定しておけば
何も問題は無かったりしますか?
0144デフォルトの名無しさん
2005/05/22(日) 15:36:34文学部出身だから、プログラムが全然分からない。
早くSEになりたいので、まずプログラムをマスターしたいんですけど、
まず何を勉強したらいいですか?
0145デフォルトの名無しさん
2005/05/22(日) 15:42:11SEになりたいならプログラムの知識はいらない。
0146デフォルトの名無しさん
2005/05/22(日) 15:43:270147デフォルトの名無しさん
2005/05/22(日) 20:19:560148デフォルトの名無しさん
2005/05/22(日) 20:26:130149デフォルトの名無しさん
2005/05/22(日) 21:20:46IUnknownから継承してるので、Releaseメソッドはある。
MANAGEDリソースはReset時に復活できるようメモリに
コピーされている。マニュアル嫁。
0150デフォルトの名無しさん
2005/05/23(月) 02:37:17こーゆー人知り合いにもいるけど苦労するよ。
人生失敗したと後悔すると思うから考え直したほうがいい。
しかし何でDirectXのスレに書いてるんだ?
0151デフォルトの名無しさん
2005/05/23(月) 04:07:410152デフォルトの名無しさん
2005/05/23(月) 09:04:19尤も、スレタイも読めないようじゃ、人間としての素養を疑わざるを得ないけど。
0153デフォルトの名無しさん
2005/05/23(月) 09:15:520154デフォルトの名無しさん
2005/05/23(月) 10:01:330155デフォルトの名無しさん
2005/05/23(月) 10:08:220156デフォルトの名無しさん
2005/05/23(月) 10:20:540157143
2005/05/23(月) 11:20:25ああ、Release って IUnknown にくっついていたのね。。。。。
解決しました。どうもありがとう
てことは、本とかでよく使われるマクロ
#define RELEASE (x) {if(x)(x)->Release();(x)=NULL;}
も、
inline void RELEASE(IUnknown* x) {
if( *x) {
(*x)->Release();
(*x) = NULL;
}
}
というふうに型チェックつきにできるのかな?
0158デフォルトの名無しさん
2005/05/23(月) 11:32:250159857
2005/05/23(月) 11:35:47どなたか助力をお願いいたします。
環境:Win XP pro SP1 dirextX9b SDKをインストールしています
http://v.isp.2ch.net/up/acc437db5dfb.jpg
0160デフォルトの名無しさん
2005/05/23(月) 12:12:29template <class T>
inline void safe_release(T*& p)
{
if (p) {
p->Release();
p = 0;
}
}
ってやってた
0161デフォルトの名無しさん
2005/05/23(月) 13:52:21HDDの空きがない、ファイルが壊れている
0162デフォルトの名無しさん
2005/05/23(月) 16:06:39容量は6G空いております、ファイルは
ttp://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=9226a611-62fe-4f61-aba1-914185249413
の物を使っています。MD5等が載っていないので
正常だと断定できませんが、ファイルサイズも同じですし正常だと思います。
0163デフォルトの名無しさん
2005/05/23(月) 16:22:41「エラーが出ます」だけじゃ若ラン。
「どんな」エラーが出ているのかを述べよ。
0164159
2005/05/23(月) 16:27:22http://v.isp.2ch.net/up/acc437db5dfb.jpg
0165159
2005/05/23(月) 16:31:20DirectX9c をインストールすると下のようなエラーがでます。
ttp://v.isp.2ch.net/up/acc437db5dfb.jpg
環境はxp pro sp1 DirectX sdk9bをインストしています
0166デフォルトの名無しさん
2005/05/23(月) 16:32:580167デフォルトの名無しさん
2005/05/23(月) 18:00:46WindowsUpdateからDirectXランタイムを入れてみたら?
0168デフォルトの名無しさん
2005/05/24(火) 21:55:05ビルドは通るんですが、実行時にIDirectDraw7のインターフェースが取得できなくて終わってしまいます。
0169デフォルトの名無しさん
2005/05/24(火) 21:56:470170デフォルトの名無しさん
2005/05/24(火) 22:33:48「Direct3Dの取得に失敗しました。以下の方法で解決できる場合があります。
・DirectX がインストールされていない場合はDirectXをインストールしてから実行してください。
・ほかにソフトが起動している場合は、それらを全て終了させてください。
・Windowsを再起動してから実行してみてください。
・サポートWEBに、このエラーについての情報がないかどうか確認してみてください」
ってしておけばPC初心者にも優しいかな?
0171168
2005/05/24(火) 22:49:270172デフォルトの名無しさん
2005/05/24(火) 22:55:05Direct7 がインストールされてなかったりして。
0173デフォルトの名無しさん
2005/05/24(火) 23:21:04実はDirector7 だったりして。
0174168
2005/05/24(火) 23:28:23解決前:
LPDIRECTDRAW7 pDD;
DirectDrawCreateEx( , pDD.....);
解決後:
DirectDrawCreateEx( , &pDD....);
でした。しかし、なぜ&が必要かが未熟者でイマイチ理解してない。
LPDIRECTDRAW7型自体ポインタですよね?それとも構造体なのかな?
0175デフォルトの名無しさん
2005/05/24(火) 23:43:040176デフォルトの名無しさん
2005/05/24(火) 23:51:06void f0( int* a )
{
a = new int;
}
void f1( int** a )
{
*a = new int;
}
int main()
{
int* a0 = NULL;
f0( a0 );
int* a1 = NULL;
f1( &a1 );
}
0178デフォルトの名無しさん
2005/05/25(水) 21:16:54Resetに失敗する……なんでだろ?
0179178
2005/05/25(水) 22:11:220180デフォルトの名無しさん
2005/05/25(水) 22:30:010181デフォルトの名無しさん
2005/05/26(木) 09:39:35DirectInputのサンプルにマウスの項目がある。
0182デフォルトの名無しさん
2005/05/26(木) 10:18:160183デフォルトの名無しさん
2005/05/26(木) 14:33:51サンプルのMouseは移動量を調べることができるだけですよね?
クライアントウィンドウ内の座標を調べたいのですが
>>182
今回のプロジェクトのルールでWin32APIを使っちゃいけないんです
0184デフォルトの名無しさん
2005/05/26(木) 16:10:46( ゚ Д゚) ガシャ
( つ O. __
と_)_) (__()、;.o:。
゚*・:.。
0185デフォルトの名無しさん
2005/05/26(木) 16:30:110186デフォルトの名無しさん
2005/05/26(木) 17:09:390187デフォルトの名無しさん
2005/05/26(木) 18:40:18ウインドウの表示すらしないとは、凄まじいプロジェクトですね。
0188デフォルトの名無しさん
2005/05/26(木) 18:49:13何で使っちゃいけないことになったのかは知らんがすさまじいプロジェクトだな
0189デフォルトの名無しさん
2005/05/26(木) 20:26:340190デフォルトの名無しさん
2005/05/26(木) 21:54:54一応奥の立方体が小さくは表示されているんですが。
Zバッファも設定してるんですが、それだけじゃダメなんでしょうか?
0191190
2005/05/26(木) 22:46:35Nearクリップ値を0にしていたのがまずかったようです。
0192デフォルトの名無しさん
2005/05/27(金) 03:05:11i810EのオンボードVGAのPCで動くように作ろうとしたのですが
そのPCで実行するとCreateDevceを呼んだ時に
「問題が発生したため、xx.exeを終了します。〜」
のメッセージが出て終わってしまいます。
DirectX診断ツールのDirect3Dのテストをやってみても問題はありませんでしたし
普段動作確認に使ってるPC(FX5200)ではちゃんと実行できるのでプログラムの問題ではないと思うのですが
何が原因なのでしょうか?
0193デフォルトの名無しさん
2005/05/27(金) 06:39:490194デフォルトの名無しさん
2005/05/27(金) 11:35:20マルチサンプリングして、その差の平均を取る方法がベターでしょうか。
0195T
2005/05/27(金) 21:59:41shipFrame->SetVelocity(sceneFrame,D3DVAL(0),D3DVAL(0),D3DVAL(0),FALSE);
//宇宙船を右移動
if(KeyBuffer['6']&0xf0){// 6キーが押されていたら・・・
shipFrame->SetVelocity(sceneFrame,
D3DVAL(0.1),D3DVAL(0.0),D3DVAL(0.0),FALSE);
}
//宇宙船を左移動
if(KeyBuffer['4']&0xf0){// 4キーが押されていたら・・・
shipFrame->SetVelocity(sceneFrame,
D3DVAL(-0.1),D3DVAL(0.0),D3DVAL(0.0),FALSE);
}
//宇宙船を上移動
if(KeyBuffer['8']&0xf0){// 8キーが押されていたら・・・
shipFrame->SetVelocity(sceneFrame,
D3DVAL(0.0),D3DVAL(0.1),D3DVAL(0.0),FALSE);
}
//宇宙船を下移動
if(KeyBuffer['2']&0xf0){// 2キーが押されていたら・・・
shipFrame->SetVelocity(sceneFrame,
D3DVAL(0.0),D3DVAL(-0.1),D3DVAL(0.0),FALSE);
}
のプログラムをSetPositionとSetOrientationを使用したプログラムに変更したいの
ですが、どうしたらいいのか教えてください。
よろしくお願いします。
0196デフォルトの名無しさん
2005/05/27(金) 22:12:38ここまでわかっててなんでわかんないの?
アドバイスのしようがない。
0197デフォルトの名無しさん
2005/05/27(金) 23:10:18MSDNでじっくりドキュメントを見れば良いじゃん
0198デフォルトの名無しさん
2005/05/27(金) 23:11:03描画されている内容も一緒に伸縮してしまいます。
描画内容はサイズ固定で、足りない分はスクロールバーで制御するようにしたいのですが、
よくわかりません。
プレゼンテーションパラメーターでWeight、Heightを800,800として、
幅1のポリラインを描画してWindowをリサイズすると、描画される線の太さはどうやらWindow幅/800のようです。
なにかしらのフィルタリングもされているようです。
SetViewport()は関係なさそうでしたが、
リサイズにあわせて何かのパラメーターも変更されてると思うので、
それがわかれば制御できるとは思うのですが…
どなたかご教授くださいませ。
当方DirectX8、VC++6、MFCにて作っております。
0199T
2005/05/27(金) 23:31:07わからないから教えてほしいのですが。
どこをどう変えればいいのですか?
0200192
2005/05/28(土) 03:39:32の問題は解決したのですが
CreateDevceを呼ぶとVRAMが足りないと言われます
Zバッファを使わない
バックバッファのサイズとフォーマット以外で
初期化の時点でVRAMを節約するにはどうしたらいいんでしょうか?
0201デフォルトの名無しさん
2005/05/28(土) 04:25:25頼らずに全部自前で作るのが普通ですか?
D3DXにない関数を作ってると、混ざってごちゃごちゃに
なってしまいそうな感じがするんですが
0202デフォルトの名無しさん
2005/05/28(土) 07:43:10俺は作り直してる。
0203デフォルトの名無しさん
2005/05/28(土) 10:45:02ウィンドウのリサイズしたらプレゼンテーションパラメーターも作り直し、
更にその前にリソースを開放して構築しなす必要がある、
なんて聞いたことがあるけどよくしらない。
0204デフォルトの名無しさん
2005/05/28(土) 10:57:45サンプル丸写しで各関数が何をやっているか考えずに使うから、
その程度のことすら分からない状態になる。
0205デフォルトの名無しさん
2005/05/28(土) 11:13:30それがどこで、どうなってるから、そうなってるのか、
分からないから聞いてるのに。
0206デフォルトの名無しさん
2005/05/28(土) 11:40:50SDK見れ
0207デフォルトの名無しさん
2005/05/28(土) 11:47:07>>1見れ
0208デフォルトの名無しさん
2005/05/28(土) 11:53:29何がしたいのかよく分からない。
教える気がないなら邪魔なだけだから書き込むなよ。
0209デフォルトの名無しさん
2005/05/28(土) 12:03:50怖いから、具体的には回答しないんだよ。
0210デフォルトの名無しさん
2005/05/28(土) 12:55:09ここでちょっと書いただけで理解きでるとは思えないんだが…
自演乙
0211デフォルトの名無しさん
2005/05/28(土) 13:03:02教えない・教えられないなら黙ってろ。他の全ての人にとって邪魔だ。
0212デフォルトの名無しさん
2005/05/28(土) 13:15:25自己解決したならどう自己解決したか書きましょう。
都合良すぎです。
0213デフォルトの名無しさん
2005/05/28(土) 13:44:530214200
2005/05/28(土) 13:45:18プログラムが原因と言われたので
初期化までの部分を一から書き直したたら
強制終了しなくなっただけで
明確な原因はわかってないのです
0215デフォルトの名無しさん
2005/05/28(土) 14:33:17■ このスレッドは過去ログ倉庫に格納されています