■過去ログ置き場に戻る■ 1- 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

【C++】 DirectX初心者質問スレ Part6 【C++】
1 名前:デフォルトの名無しさん :2005/09/20(火) 15:46:48
※回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する香具師 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。

前スレ
【C++】 DirectX初心者質問スレ Part5 【C++】
http://pc8.2ch.net/test/read.cgi/tech/1122031254/

2 名前:デフォルトの名無しさん :2005/09/20(火) 15:47:19
はい、どうぞ

3 名前:デフォルトの名無しさん :2005/09/20(火) 18:25:55
1乙。
しかしこのスレってテンプレが少ないなぁ


4 名前:デフォルトの名無しさん :2005/09/20(火) 18:38:21
とっくに既出だろうし、スレの趣旨に反しちゃうかもしれないけど、
単にゲーム作りたいからって言うんなら、DXライブラリ使わして
もらった方が良いよ。唯一の欠点は普通にゲーム作るくらいなら
簡単すぎるくらいに出来ちゃうんで、DirectXの勉強がおろそかに
なること・・・Cは結局みんなライブラリなんだよと自分に言い訳
すればこれもオッケってことで・・・

http://homepage2.nifty.com/natupaji/DxLib/

5 名前:デフォルトの名無しさん :2005/09/20(火) 18:43:10
>>4
>   3Dグラフィック機能
>   なし(ただし2D描画に3Dグラフィック機能使用)




6 名前:デフォルトの名無しさん :2005/09/20(火) 18:57:20
DirectXってなに?

7 名前:デフォルトの名無しさん :2005/09/20(火) 19:55:47
動画のコーデック

8 名前:デフォルトの名無しさん :2005/09/20(火) 20:44:58
3D使える国産ライブラリって無いね

9 名前:デフォルトの名無しさん :2005/09/20(火) 20:45:51
>>6
マルチメディアソリューション
ゲームに特化して拡張したのがXNA

10 名前:デフォルトの名無しさん :2005/09/20(火) 21:11:58
質問です。XP、.NET です。

DirectPlay8 に関して、

IDirectPlay8Peer* pDPlayPeer;
hr = pDPlayPeer->Initialize((PVOID)this, &myMessageHandler, 0);

通信メッセージが届いたときに呼び出されるコールバック関数を myMessageHandler に設定しています。
通信方法は TCP を指定しています。

通信相手が SendTo() を複数回実行し、複数のメッセージが届いたとき、
このコールバック関数が複数回呼ばれることになりますが、
呼び出される順番は、メッセージを送った順序と等しいことは保障されるでしょうか。
逆順で実行される、もしくは並列で処理されることがあるでしょうか?


11 名前:デフォルトの名無しさん :2005/09/20(火) 21:23:30
Direct3D9なんですけど
意図的にデバイスをロストさせるって出来ますか?

12 名前:デフォルトの名無しさん :2005/09/20(火) 21:28:23
>>10
Sendのヘルプ読め。重要なのはこのあたり。
DPNSEND_GUARANTEED
DPNSEND_NONSEQUENCIAL

DirectPlayの特徴なのだが、たとえマルチスレッドであろうと、
一人のプレイヤーに関するメッセージが並列実行されることがないようにスケジューリングされている。
DPNSEND_NONSEQUENCIALを指定した場合は、届いた順に処理されるが、
それでも同時に処理されることはない。

それとDirectPlayはマルチスレッドで頭使わなきゃならんのだけど、
DirectPlay8ThreadPoolを使えばマルチスレッドで処理する必要がなくなり、
CRITICAL_SECTIONとかも使わなくて済むようになるよ。すご〜く楽。
DirectPlayで簡単なプログラム作るならマジお勧め。

>>11
意図的にって、例えばフルスクリーン状態でALT+TABで画面切り替えとか、そんな話?

13 名前:デフォルトの名無しさん :2005/09/20(火) 21:31:25
device=NULL

14 名前:10 :2005/09/20(火) 21:32:12
>>12
詳しい説明ありがとうございます!
知らないキーワードが多いので、順に調べて見ます。

15 名前:デフォルトの名無しさん :2005/09/20(火) 22:07:43
>>12
そうです。
ALT+TABでロストするんですか。
ちょっと試してみます。

16 名前:デフォルトの名無しさん :2005/09/20(火) 22:09:37
>>13
確かにデバイスロストだなw

17 名前:デフォルトの名無しさん :2005/09/21(水) 18:46:39
lost doutei

18 名前:デフォルトの名無しさん :2005/09/21(水) 18:50:21
>>17
static const bool doutei = true;

19 名前:デフォルトの名無しさん :2005/09/21(水) 19:31:31
static const ワロス

20 名前:デフォルトの名無しさん :2005/09/21(水) 19:57:55
1127198808.dat:19: `ワロス' undeclared (first use in this thread)

21 名前:デフォルトの名無しさん :2005/09/21(水) 20:57:46
assert(doutei);

22 名前:デフォルトの名無しさん :2005/09/21(水) 22:39:32
class HUMAN {
protected:
char *gene;
public:
char *experience
}
class MAN : public HUMAN {
public:
HRESULT InsertTo(HUMAN);
}
extern HUMAN kanojo;
int main() {
MAN myself;
myself->InsertTo(kanojo);
return 0;
}

error LNK2001: 外部シンボル ""class HUMAN kanojo" (?kanojo@@3PADA)" は未解決です。
fatal error LNK1120: 外部参照 1 が未解決です。

23 名前:デフォルトの名無しさん :2005/09/21(水) 22:47:03
× myself->InsertTo(kanojo);
○ myself.InsertTo(kanojo);

24 名前:デフォルトの名無しさん :2005/09/21(水) 23:04:23
>>22
myselfはMANを更に継承してprivateメンバにconst bool doutei = true;を持ったクラスにした方がよさげ

25 名前:デフォルトの名無しさん :2005/09/21(水) 23:10:58
こうか。
class MAN : public HUMAN {
private:
bool doutei;
public:
HRESULT InsertTo(HUMAN);
};
class MOOTOKO : public MAN {
private:
const bool doutei = true;
};

26 名前:24 :2005/09/21(水) 23:36:22
>>25
何やってんの?w
寒いよw

27 名前:24 :2005/09/22(木) 00:32:34
>>25
何やってんの?w
暑いよw

28 名前:24 :2005/09/22(木) 03:25:30
>>25
何やってんの?w
ナウいよw

29 名前:24 :2005/09/22(木) 07:08:47
>>25
何やってんの?w
弾幕薄いよw

30 名前:デフォルトの名無しさん :2005/09/22(木) 18:45:30
今までID3DXSprite::Drawを使って
回転&拡大の2D処理してたんだけど、
この前SDKをOct,2005にバージョンアップしたんです。

そしたら、Drawメソッドの仕様が変わってて
回転角とスケーリングが消えてたんですが
もうSpriteでこれらの処理をするのは不可能なんでしょうか?

31 名前:デフォルトの名無しさん :2005/09/22(木) 18:58:48
というかD3DXSpriteの仕様変更に悩まされるなんて
何年前から同じことやってんだ。DirectX8のときからずっとじゃん。
いい加減あきらめて自前で車輪発明しろよ


32 名前:デフォルトの名無しさん :2005/09/22(木) 19:19:16
ID3DXSprite::SetTransform あたりじゃねーの

33 名前:デフォルトの名無しさん :2005/09/22(木) 19:31:04
回答ありがとうございました。
要するに自前で行列計算をしないといけないってことですね。
調べてやってみたいと思います。

34 名前:デフォルトの名無しさん :2005/09/22(木) 19:34:23
行列は自分で計算しなくてもCPUがやってくれるだろ?

35 名前:デフォルトの名無しさん :2005/09/22(木) 20:31:56
>>34
そうみたいですね。SetTransformを勘違いしていたみたいです。

表示位置や座標系の違いのせいか、位置の調整などはうまくいってませんが
なんとか画像の表示まではできました。ありがとうございました。



36 名前:デフォルトの名無しさん :2005/09/22(木) 22:15:54
>>31
すれたいすれたい

37 名前:デフォルトの名無しさん :2005/09/23(金) 05:45:12
256色全画面にするにはどうすればいいでしょうか?
BackBufferFormatにD3DFMT_P8を設定するだけだと思っていたら
うまくいかなくて悩んでいます
D3DFMT_UNKNOWNにすれば全画面にはなりました

38 名前:デフォルトの名無しさん :2005/09/23(金) 06:02:28
16bit なり 32bit でデバイス作って、
16bit なり 32bit のテクスチャだけど、256色しか使ってない

って方法ぐらいしか残ってない気がするけど。


もしくは DirectDraw 使うか。

39 名前:デフォルトの名無しさん :2005/09/23(金) 11:29:33
どうやらDirect3D9のサポートするバックバッファフォーマットは
A2R10G10B10
A8R8G8B8
X8R8G8B8
A1R5G5B5
X1R5G5B5
R5G6B5
のみのようだ。
つうかアダプタがサポートするフォーマットを列挙して判断しろ。

40 名前:デフォルトの名無しさん :2005/09/23(金) 16:31:03
いまどき256色モードなんて超ありえない。何その中途半端な数字。

41 名前:デフォルトの名無しさん :2005/09/23(金) 17:58:59
そもそも9でなくても、Direct3Dでは256色モード使えないし。
(昔あったRampドライバだけは例外だが)

42 名前:デフォルトの名無しさん :2005/09/23(金) 21:29:10
DirectPlayのP2Pでホストに最初に送られるDPN_MSGID_CREATE_PLAYERメッセージは
ホスト自身が発したもので間違いないですか?

43 名前:デフォルトの名無しさん :2005/09/23(金) 21:52:50
DirectInputでPS2コントローラの振動をやろうと思ったのですが、うまく振動してくれません。
どうもIDirectInputEffect::Startが失敗しているようなのですが、エラー値が
DIERR_NOTEXCLUSIVEACQUIREDを返しています。
しかし、IDirectInputDevice8::SetCooperativeLevelでDISCL_EXCLUSIVEは設定しています。
DirectXのサンプルでは振動するのを確認しましたが、私にはサンプルソースと比べておかしい所の見当がつきませんでした。
どなたかご教授お願い致します。

44 名前:デフォルトの名無しさん :2005/09/23(金) 22:26:32
Acquire()が抜けてるとかだったりして。

45 名前:43 :2005/09/23(金) 23:26:05
>>44
Acquire()は書いてありました。

46 名前:デフォルトの名無しさん :2005/09/24(土) 01:25:25
ささいなミスかもしれんしなあ、該当部分のソースうpってくれんと分からんかも

47 名前:デフォルトの名無しさん :2005/09/24(土) 11:10:20
質問です。ttp://saw.minidns.net/software/index.html#soft08
上記のサイトから取れるTalesWeaverロードコントローラのソースコードから
DirectXのフックを勉強してるんですがどうも挙動が良く分かりません。

このライブラリはdsound.dllというファイル名でゲームクライアントEXEのカレントディレクトリに置く事から
システムディレクトリのdsoundより先にロードされてラッパとして動作するのはわかるんですが

hinst = LoadLibrary("DDRAW.DLL");
pddcreate = (DirectDrawCreateEx_Type)GetProcAddress(hinst, "DirectDrawCreateEx");
(*pddcreate)(NULL, (void **)&lpdd, IID_IDirectDraw7, NULL);

↑みたいにDirectDrawもロードしてDirectDrawオブジェクトを作ってるんですが、これってまずくないですか?
ゲームクライアント自体もDirectDrawオブジェクトを作ってるから二重に作っちゃった事になってると思うんですが
もしかしてDirectDrawオブジェクトは何個も作ってOKなんですか?

48 名前:デフォルトの名無しさん :2005/09/24(土) 15:43:09
>>47は動いたもん勝ちって世界じゃないのか

49 名前:デフォルトの名無しさん :2005/09/24(土) 18:04:08
>>47
そんなもん作者に聞けこのチーターめっ

50 名前:デフォルトの名無しさん :2005/09/24(土) 18:45:40
チーターがそういう扱い受けるっていうことは
プロプライエタリな奴が多いの?

51 名前:デフォルトの名無しさん :2005/09/24(土) 18:49:00
オープンソースは、プログラマーの権利を放棄させるために扇動されているものです。
フリーソフトは、アホのプログラマーがダンピングした物です。

52 名前:デフォルトの名無しさん :2005/09/24(土) 19:11:59
プロプライエタリが何かわからない俺がきました

53 名前:デフォルトの名無しさん :2005/09/24(土) 19:13:39
>>50
ぐーぐるで調べてみたけどプロプライエタリとチート関係なくね?
プロプライエタリって言ってみたかっただけとか?
http://www.atmarkit.co.jp/aig/04biz/proprietary.html

54 名前:デフォルトの名無しさん :2005/09/24(土) 19:28:38
>>47
なんでDirectDrawオブジェクトを何個も作ってはいけないと思うのかね?
ヘルプにはそんなことどこにも書いてないと思うが。
複数を併用するとパフォーマンスが落ちるという話はあったと思うが。

あと、そのソースは見てないが、デバイスを取得しているのは
VTBLを書き換えるためじゃないの?
VTBLを書き換えたら用無しだから解放しちゃっていいかと。

55 名前:47 :2005/09/24(土) 19:29:41
>>48
やっぱそうなんですかね…ぶっ壊れてもいいやーくらいのノリなのかな。
もうちょっとDirectXの資料覗いてみます。

>>49
残念ながら作者さんの更新は1年前に止まってるみたいです。
あと私はこのゲームに触った事もありませんし興味もありません。


56 名前:43 :2005/09/24(土) 21:38:44
プロジェクトごとうpしました。24kbほどです。
http://up.isp.2ch.net/up/8a0a00b5e7b6.zip
宜しくお願い致します。

57 名前:デフォルトの名無しさん :2005/09/24(土) 22:04:42
繋がらない

58 名前:デフォルトの名無しさん :2005/09/24(土) 22:18:20
>>56
http://gamdev.org/up/

まともなロダにうpしてくれ

59 名前:43 :2005/09/24(土) 22:35:59
申し訳ありませんでした。
http://gamdev.org/up/ にうpしました。
3414です。

60 名前:デフォルトの名無しさん :2005/09/24(土) 22:56:20
ジョイスティックがないから試せないな。
ビルドすると562行で演算子の優先順位を明確にしろとかWarningが出るけどこれは関係ないんだよな?

61 名前:デフォルトの名無しさん :2005/09/24(土) 22:57:16
BlueInput.cppの562行な

62 名前:43 :2005/09/24(土) 23:03:29
>>60
此方でそのWarningは確認できませんでしたが、()で優先順位を明確にしても
やはり振動しませんでした。
(iを1と書き間違えていたのは秘密です)

63 名前:デフォルトの名無しさん :2005/09/24(土) 23:19:24
BluInput.cppの253行のEnumDevicesのdwFlagを
DIEDFL_FORCEFEEDBACK | DIEDFL_ATTACHEDONLY
にしても駄目かなぁ?
自分で試せないと問題点探すの面倒くさいなw

64 名前:デフォルトの名無しさん :2005/09/24(土) 23:24:52
OnInitDialogの時点ではWindowは表示されてないから、
振動を開始させようと思ってもできないんだよ。

65 名前:43 :2005/09/24(土) 23:26:44
>>63
それは以前にも試したことがあったのですが、駄目でした。

66 名前:43 :2005/09/24(土) 23:34:38
>>64
ありがとうございます。
コントローラのデータ取得時にIDirectInputEffect::Startを実行したら振動してくれました。
なるほど、Windowが表示されてからでないと駄目だったんですね。
ご協力下さった皆様、ありがとうございました。

67 名前:デフォルトの名無しさん :2005/09/24(土) 23:37:10
MFC触ったことないからわけわかめorz

68 名前:47 :2005/09/25(日) 00:18:59
>>54
遅レスですがヘルプにも確かにそういった記述はありませんでしたね。
ありがとうございました。

69 名前:デフォルトの名無しさん :2005/09/25(日) 03:09:03
すいません、あるゲームをやろうとした所
GetDeviceCaps D3DADAPTER_DEFAULT D3DDEVTYPE_HAL
というメッセージが発生するのですが、これはdirectxと何か関係が
あるんですかね?

70 名前:デフォルトの名無しさん :2005/09/25(日) 03:14:30
あなたオナニーのしすぎです
地獄行く

という天からのメッセージです

71 名前:デフォルトの名無しさん :2005/09/25(日) 18:08:10
今更DirectDrawの質問です。
ウィンドウモードでバックバッファを作成してフリップでどうこう
ダブルバッファリングさせたいのですが、
dwFlagsにDDSD_BACKBUFFERCOUNTを、または
dwCapsにDDSCAPS_FLIPを指定するとCreateSurfaceでエラーが発生します。
なぜか分かりません。ウィンドウモードでバッファを複数もつことはできないのでしょうか?
誰か奇跡的に知っている方がいらっしゃれば教えてください。

72 名前:デフォルトの名無しさん :2005/09/25(日) 18:19:43
ウィンドウモードでFlipは使えない。

73 名前:デフォルトの名無しさん :2005/09/25(日) 18:48:44
奇跡も何も>>72の通り。ウィンドウモードはBltのみ

74 名前:デフォルトの名無しさん :2005/09/25(日) 19:26:25
D3D だと FLIP って指定できなかったっけ?
内部的には blt だろうけど

75 名前:71 :2005/09/25(日) 19:30:30
>>72-73
ありがdございます。
すっきりしたけど、
ぶっちゃけた話、ちらつきのない2Dシューティングゲームを
ウィンドウモードで作りたいのですが、バックバッファがないと
辛いと思うのですが、どうしたらいいでしょうか?
ttp://www.vector.co.jp/games/soft/win95/game/se209883.html
これDirectX使ってるみたいなんですが、ウィンドウモードに切り替えられて
バリバリ動きます。こんなゲーム作りたいでつ。

76 名前:デフォルトの名無しさん :2005/09/25(日) 19:33:31
自分で用意すればいいだけじゃねーの。

77 名前:デフォルトの名無しさん :2005/09/25(日) 19:39:41
>>75
http://pc8.2ch.net/test/read.cgi/tech/1125850096/496-
これと同じじゃないかな。

78 名前:71 :2005/09/25(日) 19:52:40
>>77
いや、ちょっと違う気がするんですが
メモリデバイスコンテキストを複数用意して切り替えるのと
DirectDrawでいうバックバッファを用意して切り替えるは
同じなんでしょうか?
だとしたらWinAPIだけでアクションゲームくらい
作れる希ガス。どうなんでしょう?

79 名前:デフォルトの名無しさん :2005/09/25(日) 19:58:07
VRAMを使うかどうかの違いじゃね。

80 名前:デフォルトの名無しさん :2005/09/25(日) 20:02:20
>>71
バックバッファってのは概念であって、
DirectXの特定機能を指しているのではない。
ウィンドウモードの場合はフリップ可能フラグは立てないで
普通のサーフェスとしてバックバッファを作る。
でもってプライマリにBltで転送する。

プライマリサーフェス作っちゃうと部分的に他のウィンドウに
隠れているときにウィンドウ掴むと綺麗にならないので
自分はデバイスコンテキスト経由で普通に Window 更新してる。

81 名前:71 :2005/09/25(日) 20:08:55
>>79-80
ありがd。とても参考になりますた。
いっぺんAPIだけでゲーム作ってみます。

82 名前:77 :2005/09/25(日) 20:17:35
レス内容どころかスレタイもろくに読まないでレスして
WindowモードでのDirectDrawの使い方を調べてたなんて今更とても言えない。
結局良くわからなかったけど何か解決してるようなので良かった。

83 名前:71 :2005/09/25(日) 20:23:19
>>77
な、なんd(ry

84 名前:デフォルトの名無しさん :2005/09/25(日) 20:41:34
>>71
ここで微妙にDirectDrawのbltについての話題が出てるけど参考になるかは全くわからん。
http://pc.2ch.net/tech/kako/985/985540361.html

85 名前:デフォルトの名無しさん :2005/09/25(日) 20:42:18
ウインドウモードでちらつきを抑えるのに、
画面の更新を実リフレッシュレートにそろえようとして
余計にちらついているのを見かけるけど、
たとえば60Hzの垂直同期だったら、50FPS程度にわざと落とした方が、
走査線に引っかかりにくくなりちらつきにくくなる。

86 名前:デフォルトの名無しさん :2005/09/25(日) 21:55:18
>>71
SDKのサンプルやドキュメントくらい見ろよ。
DirectDrawのウィンドウモードはフルスクリーンとは組み方が違う。
バックバッファはプライマリサーフェスとは別のサーフェスとして作る。
画面の更新はプライマリサーフェスの適切な位置にBltで行う。
(画面全体がプライマリサーフェスなので、ちゃんとウィンドウの位置を
狙ってBltする必要あり)
また、ウィンドウモードではClipperの使用が必須。

87 名前:デフォルトの名無しさん :2005/09/26(月) 10:01:30
>シューティングゲーム製作での、弾丸の連続発射アルゴリズム

C言語からやり直せ。

88 名前:デフォルトの名無しさん :2005/09/26(月) 11:47:15
あれは即座にフラッシュされない頂点バッファを使い回しているせいだと思うが。

89 名前:デフォルトの名無しさん :2005/09/26(月) 12:24:37
いや、どう見てもC言語レベルのミスだが。
DirectXには全く関係ない。

90 名前:デフォルトの名無しさん :2005/09/26(月) 12:30:51
DirectXでjpegファイルを読み込む方法を教えてください。

91 名前:デフォルトの名無しさん :2005/09/26(月) 13:03:26
>>89
なんかすごい頓珍漢な回答が一件付いてるけど…。

92 名前:デフォルトの名無しさん :2005/09/26(月) 13:14:13
>>91
彼は気にしなくていいと思う。
妖精か何かじゃないのかな。

93 名前:デフォルトの名無しさん :2005/09/26(月) 13:16:05
BBX別館になってるわねw
向こうのS/N比を下げないためにこっちでヲチするのはあり…かしらね。

94 名前:デフォルトの名無しさん :2005/09/26(月) 13:25:21
>>90
OleLoadPicture

95 名前:デフォルトの名無しさん :2005/09/26(月) 13:35:50
GPUでjpegのデコードを行うことは出来ますか?

96 名前:デフォルトの名無しさん :2005/09/26(月) 13:39:22
君が祈ればきっとできるさっ!

97 名前:デフォルトの名無しさん :2005/09/26(月) 13:42:49
なんか、初心者のスレと言うより、自分の脳味噌を使ったり、自分で調べるのが面倒な人のスレだな。

98 名前:デフォルトの名無しさん :2005/09/26(月) 15:36:52
童貞捨てるのが面倒くさいです。
誰か変わりに捨ててくれませんか。

99 名前:デフォルトの名無しさん :2005/09/26(月) 16:26:30
DirectXがインストールされている場所はどうやって調べるんですか?
DirectX診断ツールを見てもわかりませんでした
DirectX診断ツールのDirectXファイルタブにあるファイル名で
コンピュータ内を検索しても見つかりませんでした

100 名前:デフォルトの名無しさん :2005/09/26(月) 16:48:09
擦れ違いです

101 名前:デフォルトの名無しさん :2005/09/26(月) 16:54:12
何のことか、さっぱりだーよ・・

102 名前:デフォルトの名無しさん :2005/09/26(月) 19:27:43
駄目だ、どうしても分かりませぬ 情報が無さ過ぎて泣きそう
VisualStudio.NETを持ってるのですが、DirectX9 SDKをインストールしても、
プロジェクトの新規作成でDirectXのサンプルが作れません・・・
つまり「テンプレート」欄に、×マークのアイコンが出てこないのですが、
VS.NETとDirectXの関連付け?をどうやるのかさっぱりです。
どうか教えてください。もう何日こんなしょっぱなでさまよっているんだろう。。。

103 名前:デフォルトの名無しさん :2005/09/26(月) 19:28:41
それってDirectX9 2004Summerまでの機能じゃなかったっけ

104 名前:デフォルトの名無しさん :2005/09/26(月) 19:56:14
DX SDKのインストールフォルダは、環境変数の DXSDK_DIR に設定されているはずだよ。

105 名前:デフォルトの名無しさん :2005/09/26(月) 21:40:55
>>102
Wizardのことを言っているのなら、それは無くなった。
サンプルブラウザから適当なサンプルをインストールして、
それを土台にすれば良い。


106 名前:デフォルトの名無しさん :2005/09/27(火) 07:04:57
これからDirectXSDKの導入を行おうとしている物ですが、
以下について質問させてください。

1.DirectXSDKのインストールに伴い、システムDLL等の上書きが発生するか?
  開発専用マシンの用意が出来ない為、
  日常利用している環境をできれば壊したくないと思っています。

2.複数のバージョンのDirectXSDKを導入することは可能か?
  1.が発生しなければ、ビルド時の参照先ライブラリを変える事で、
  可能かと思っています。

DirectX開発専用のマシンの構築が出来ない為、上記が気になっています。
サーチした限りでは、このような環境で開発しているような方を見かけなかったので、
ご存知の方いらっしゃいましたら、教えていただけないでしょうか?

107 名前:デフォルトの名無しさん :2005/09/27(火) 07:39:29
>>106
1.普通に上書きされる。
昔と違ってDirectX入れたから不安定になることは稀。

2.複数のSDKはインストール可能。
ランタイムは最新バージョンのを入れる。

108 名前:デフォルトの名無しさん :2005/09/27(火) 07:56:15
>>107
有難うございます。
最後に追加でもう一点だけ聞かせてください。

システムDLLの上書きが行われるということですが、
現在の環境(DirectX9.0cランタイム導入済みWinXP)に、
8.1SDKと9.0SDK(December2004)の導入を予定しているのですが、
こちらのようなケースで問題は発生しないのでしょうか?

最初に環境と導入予定を書いておけばよかったですね。すみませんです。

109 名前:デフォルトの名無しさん :2005/09/27(火) 08:04:12
>>108
その場合だと9.0cが一番新しいから、
8.1と9.0は「ランタイム以外」を適当なフォルダにインストールすればOK。

おいらは仕事で使っているのでいろんなバージョンのSDKが入ってる。
9.0c(ランタイム込み)、9.0、7.0a、5.0

110 名前:デフォルトの名無しさん :2005/09/27(火) 08:11:43
>>109
早速のレス有難う御座いました。
心配していた所が晴れました。これから早速導入してみます。
こちらも仕事なんですが、急にDirectX環境用意してくれと言う割に、
マシン貸し出しも無く、どうしようか悩んでいたので助かりました。


111 名前:デフォルトの名無しさん :2005/09/27(火) 08:31:09
デュアルブート。

112 名前:デフォルトの名無しさん :2005/09/27(火) 10:47:26
(・∀・∀・)

113 名前:デフォルトの名無しさん :2005/09/27(火) 11:11:38
デバッグの度に再起動するの?メンドくない?

114 名前:デフォルトの名無しさん :2005/09/27(火) 12:15:52
うちのC++.NETはデバッグの度に3割くらいの確率でOSごとフリーズする

115 名前:デフォルトの名無しさん :2005/09/27(火) 12:36:26
COMについて勉強中です

D3D_COM_HOGE* temp_com_pointer = com_pointer_a;
com_pointer_a = com_pointer_b;
//ここでなんらかの処理
com_pointer_a = temp_com_pointer;

大雑把に言うと以上のような処理をしたいのですが、こういう場合もやはり、逐一

D3D_COM_HOGE* temp_com_pointer = com_pointer_a;
temp_com_pointer->AddRef();

com_pointer_a->Release();
com_pointer_a = com_pointer_b;
com_pointer_a->AddRef();
//ここでなんらかの処理
com_pointer_a->Release();
com_pointer_a = temp_com_pointer;
com_pointer_a->AddRef();
temp_com_pointer->Release();
temp_com_pointer = NULL;

と、するべきなのでしょうか?

116 名前:デフォルトの名無しさん :2005/09/27(火) 12:40:38
スレ違い。

117 名前:115 :2005/09/27(火) 12:43:20
いえもちろんDirectXでのCOMの話なのですが…

118 名前:デフォルトの名無しさん :2005/09/27(火) 12:45:27
116はVB厨

119 名前:デフォルトの名無しさん :2005/09/27(火) 12:48:00
(・∀・)ニヤニヤ

120 名前:マイク ◆yrBrqfF1Ew :2005/09/27(火) 19:38:11
関係無いがすねるの法則というのはツンデレというもののことか?

121 名前:デフォルトの名無しさん :2005/09/27(火) 20:06:45
スネルの法則は
「光線の入射角 d1、屈折角 d2、入射側の屈折率 n1、出射側の屈折率 n2とすると、n1 * sin(d1) == n2 * sin(d2)」
のことだ。つまりツンデレのことだな。

122 名前:デフォルトの名無しさん :2005/09/27(火) 23:01:32
>>117
詭弁だな。

とりあえず CComPtr でも使えば?

123 名前:デフォルトの名無しさん :2005/09/27(火) 23:11:58
>>122
参照カウント増減のタイミングを聞いてるので
その解では不完全。

124 名前:デフォルトの名無しさん :2005/09/27(火) 23:46:55
>>115
生のCOMポインタを扱うなら、そういう操作は必要だろうね。
提示したソースの場合、 com_pointer_bを代入した際に、
Release呼ばなくていいのか?とか
参照カウント増減の順序とかちと気持ち悪いね。
まぁ参考にでっち上げたソースなんだろうけど。

ただ、その操作の煩雑さからバグを引き起こす可能性があるから、
CComPtrなんかのラッパークラスを利用した方がいいと思う。
CComPtrのソース見りゃ分かるけど、その手の操作は隠蔽される。

そういやCOMのスレって無いんだねぇ。
出来れば皆関わりたくないと言う意思の現れか?

125 名前:デフォルトの名無しさん :2005/09/27(火) 23:54:03
>>124
COMは検索しにくいのが難点だな。
技術を布教しようと思ったらネーミングにも気をつけないと、とオモタ。

最近まであったCOMスレ
ttp://makimo.to/2ch/pc8_tech/1044/1044457085.html


126 名前:115 :2005/09/28(水) 00:25:58
皆さんレスありがとうございます

> com_pointer_bを代入した際に、
> Release呼ばなくていいのか?とか

shared_ptrの様なものだと認識してたのですが、
auto_ptrみたいに、当該ポインタは一つじゃないと駄目なんでしょうか。

というか皆さんの口ぶりから察すると、DirectXをやるのにCOMを学ぶ必要はないんでしょうか?
出来れば俺もこんなものやりたくないのですが。

>>125
激しく同意でとても困ってます。.netとかも。

127 名前:デフォルトの名無しさん :2005/09/28(水) 01:05:31
>>126
オマイの使ってるDirectXのバージョンはいくつだ。

128 名前:デフォルトの名無しさん :2005/09/28(水) 01:12:55
DirectXのCOMなんて
AddRefとReleaseだけ知ってればことは済むよ。

_COM_SMARTPTR_TYPEDEF( IDirect3DStateBlock9, IID_IDirect3DStateBlock9 );
IDirect3DStateBlock9Ptr pStateBlock;
pD3DDevice->BeginStateBlock();
・・・
pD3DDevice->EndStateBlock( &pStateBlock );

ちなみにこのコードはリークを起こす。
皆さん知ってましたか?

129 名前:デフォルトの名無しさん :2005/09/28(水) 01:14:40
すいません抜けがありました。
正しくはこう。

_COM_SMARTPTR_TYPEDEF( IDirect3DStateBlock9, IID_IDirect3DStateBlock9 ); 
IDirect3DStateBlock9Ptr pStateBlock; 
pD3DDevice->CreateStateBlock( D3DSBT_ALL, &pStateBlock );
pD3DDevice->BeginStateBlock(); 
・・・ 
pD3DDevice->EndStateBlock( &pStateBlock ); 

130 名前:デフォルトの名無しさん :2005/09/28(水) 01:23:48
DirectShowを使うときはCOMを意識したが、
Direct3DではCOMって何?状態。

131 名前:デフォルトの名無しさん :2005/09/28(水) 06:12:25
まぁ、何でもネット上の情報で済まそうとするのが間違いだな。
COMの本なら結構出版されてる。

132 名前:デフォルトの名無しさん :2005/09/28(水) 07:57:17
今月のcマガの特集で紹介されているけど、、スレイプニルの構造がCOMっぽいけど。
C++再考のハンドルクラスの話と同じのような希ガス。

133 名前:デフォルトの名無しさん :2005/09/28(水) 08:10:15
DirectXとCOMは別の技術ということを>>115がわかっていないんじゃまいか?

134 名前:デフォルトの名無しさん :2005/09/28(水) 08:42:40
わかってなきゃ、この台詞は出まい

> というか皆さんの口ぶりから察すると、DirectXをやるのにCOMを学ぶ必要はないんでしょうか?
> 出来れば俺もこんなものやりたくないのですが。

135 名前:デフォルトの名無しさん :2005/09/28(水) 08:48:59
117 名前:115 [sage] 投稿日:2005/09/27(火) 12:43:20
いえもちろんDirectXでのCOMの話なのですが…

136 名前:デフォルトの名無しさん :2005/09/28(水) 10:00:09
とうとう自治厨まで出てきたか

137 名前:デフォルトの名無しさん :2005/09/29(木) 21:34:13
>>129の意味がわかりません。

138 名前:デフォルトの名無しさん :2005/09/30(金) 10:13:18
DirectXの初期化中のデバイスオブジェクトの作成に失敗します
なぜですか?

  // デバイスオブジェクトを生成
  // 必ず失敗
  if (FAILED(m_pD3D->CreateDevice(
    D3DADAPTER_DEFAULT,                // プライマリディスプレイアダプタ
    D3DDEVTYPE_REF,                   // 描画をソフトウェアで行う
    hWnd,                            // フォーカスウィンドウ
    D3DCREATE_SOFTWARE_VERTEXPROCESSING, // 頂点処理をソフトウェアで行う
    &m_D3DPresentParameters,              // 生成するデバイスのプレゼンテーションパラメータ
    &m_pD3DDevice                     // 生成されたデバイスへのポインタ
  ))) {
    // 生成失敗
    return E_FAIL;
  }

139 名前:デフォルトの名無しさん :2005/09/30(金) 10:30:38
プレゼントパラメータ(m_D3DPresentParameters)の設定も書かないと分からん。

140 名前:デフォルトの名無しさん :2005/09/30(金) 10:35:26
まとめてどっかにうpした方がいいかな

  // プレゼンテーションパラメータを設定
  {
    D3DDISPLAYMODE d3ddm; // ここにディスプレイモードを格納

    // ディスプレイモードを取得
    m_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);

    // プレゼンテーションパラメータをゼロクリア
    ZeroMemory(&m_D3DPresentParameters, sizeof(D3DPRESENT_PARAMETERS));

    // プレゼンテーションパラメータを設定
    m_D3DPresentParameters.BackBufferCount = 1;
    m_D3DPresentParameters.Windowed = true;
    m_D3DPresentParameters.BackBufferFormat = d3ddm.Format;
    m_D3DPresentParameters.EnableAutoDepthStencil = true;
    m_D3DPresentParameters.AutoDepthStencilFormat = D3DFMT_D16;
  }

141 名前:デフォルトの名無しさん :2005/09/30(金) 10:43:52
設定が少なすぎるんじゃない?
漏れのソースから適当に見繕ってみたので、以下を適当に挿入してみると動くかも知れない。

m_D3DPresentParameters.Flags= D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
m_D3DPresentParameters.SwapEffect = D3DSWAPEFFECT_DISCARD;
m_D3DPresentParameters.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
m_D3DPresentParameters.BackBufferWidth = 640;
m_D3DPresentParameters.BackBufferHeight = 480;
m_D3DPresentParameters.MultiSampleType = D3DMULTISAMPLE_NONE;

142 名前:デフォルトの名無しさん :2005/09/30(金) 10:49:34
動いたよ。・゚・(ノД`)・゚・。ありがとう

143 名前:デフォルトの名無しさん :2005/09/30(金) 13:31:19
>>140
つーことはお前、ヘルプのチュートリアルもみてないのか。
死ね。死にまくれ。

144 名前:デフォルトの名無しさん :2005/09/30(金) 13:34:38
ゆとり教育
学校の先生に「教科書の19ページを見なさい」と言われないと見ない
誰かに「ヘルプの○○を見なさい」と言われないと見ない

145 名前:デフォルトの名無しさん :2005/09/30(金) 16:49:21
VC++&DirectXでアクションゲーム作ってます。
アニメーションのXファイルを読み込むことはできたのでフィールドを走り回るプログラムはできました。
そこでDirectInputからキーボード入力があったらこのアニメーションXファイルを切り替えて攻撃用のアニメーションXファイルやガード用のアニメーションXファイルに切り替えるにはどうすればいいのでしょうか?

if(key[DIK_Z] & 128)
   InitThing(&Thing[0],"keru.x",&D3DXVECTOR3(Thing[0].vecPosition.x,Thing[0].vecPosition.y,5));
   sleep(10);
   InitThing(&Thing[0],"aruku.x",&D3DXVECTOR3(Thing[0].vecPosition.x,Thing[0].vecPosition.y,5));

とか、ない頭振り絞って考えたんですがちゃんと攻撃のアニメーションをして歩くアニメーションに戻ってくれません。
InitThingはD3DXLoadMeshHierarchyFromXでアニメーションメッシュを読み込んで作成する関数です。
DirectXにくじけそうです。よろしくおねがいします




146 名前:デフォルトの名無しさん :2005/09/30(金) 17:42:03
>>145
ゲーム作成云々のサイトか本を一冊読んだほうが良いと思うよ。
それだと、他のキャラクターはどうするつもり?

147 名前:デフォルトの名無しさん :2005/09/30(金) 18:16:28
>>143
ダイナミックヘルプなら死ぬほど見たのにそんな言い方ないだろう

148 名前:デフォルトの名無しさん :2005/09/30(金) 18:34:53
>>147
死ぬほど見てたら俺と同じくらい詳しいと思うけどな。

149 名前:デフォルトの名無しさん :2005/09/30(金) 19:44:26
死ぬ=法的情報やDirectX Graphicsの新機能からずっと読んでいたのですが、プログラミングガイドの固定機能パイプラインのあたりで眠ってしまいました。
という意味です

150 名前:デフォルトの名無しさん :2005/09/30(金) 19:46:15
俺一生死ねない

151 名前:デフォルトの名無しさん :2005/09/30(金) 21:30:55
DirectSoundの環境リバーブ(I3DL2REVERB)が重いです。
ずっと重いわけではなく、時々リバーブの音を鳴らしている間は問題ないのですが、
リバーブの音を出さずに数十秒放置すると、突然CPU使用率が急激に上昇します。
SetPresetやSetQualityの値を各種試しましたが原因がつかめません。
エコーとコーラスは問題ありませんでした。心当たりがある方はおられませんか?

152 名前:デフォルトの名無しさん :2005/09/30(金) 21:43:07
もう軽く半日くらい悩んでてブチ切れ超えて涙出てきた。

typedef HRESULT (WINAPI *DI8Create_Type)(HINSTANCE, DWORD, REFIID, LPVOID *, LPUNKNOWN);

HRESULT ret;
HINSTANCE Dinput;
DI8Create_Type pDICreate;
LPDIRECTINPUT lpDI8;

Dinput = LoadLibrary("dinput.dll");
pDICreate = (DI8Create_Type)GetProcAddress(Dinput,"DirectInput8Create");
ret = (*pDICreate)(GetModuleHandle(NULL),DIRECTINPUT_VERSION,IID_IDirectInput8A,(void **)&lpDI8,NULL);

なんでここでretにDIERR_OUTOFMEMORYが帰ってくるのお!?

あるアプリのDirect3DラッパDLL内DLLMain直後で
環境はWinXP・VC++.net2003です

153 名前:デフォルトの名無しさん :2005/09/30(金) 21:49:53
DirectInput8Createはdinput8.dllじゃないの?

154 名前:デフォルトの名無しさん :2005/09/30(金) 21:52:13
あああああああああああああああああああああ!!!

155 名前:デフォルトの名無しさん :2005/09/30(金) 21:52:46
>>153
ビンゴです_| ̄|○ありがとうございました
自分のアホさに泣けてくる…

156 名前:デフォルトの名無しさん :2005/09/30(金) 22:00:18
たった半日かよ・・・

157 名前:デフォルトの名無しさん :2005/09/30(金) 22:06:25
>>152←こういう馬鹿な奴ほどさぁw
わざわざ妙な組み方してハマってるよなw
サンプルにある奴のコピーの方が他の奴がみたときわかり易いだろうに・・・
動かないときだって原因が特定しやすいし・・・
ホント、身の程をわきまえろって思うよ。

158 名前:デフォルトの名無しさん :2005/09/30(金) 22:07:05
意外におもわれがちだけど
学生の半日ってケッコー貴重なんすよ・・・

159 名前:デフォルトの名無しさん :2005/09/30(金) 22:08:41
>>157
 ざ
 ン
 か
 ン

こうですか!?わかりません!!

>>158
学生はニートに次いで2番目にヒマな人間だろ

160 名前:デフォルトの名無しさん :2005/10/01(土) 01:57:54
>>158
学生の半日<<<<<<<<<<<<<<<<<<<<<<<<<<本職の30分

戯れ言は寝て家。

161 名前:デフォルトの名無しさん :2005/10/01(土) 02:57:01
>>160
無職の半年<<<<<<<<<<<<<<<学生の半日<<<<<<<<<<<本職の30分

戯れ言は寝て家。

162 名前:デフォルトの名無しさん :2005/10/01(土) 03:10:48
みんな時間の使い方が素晴らしくて涙が溢れそうです。

163 名前:デフォルトの名無しさん :2005/10/01(土) 05:28:05
ここは心が温まるスレですね

164 名前:デフォルトの名無しさん :2005/10/01(土) 06:26:21
>>160-161
寝て言うのは戯言では無く寝言だ!

165 名前:デフォルトの名無しさん :2005/10/01(土) 10:51:33
輝ける青春まっただ中にある学生の時間>惰性で毎日を送る社会人の時間
じゃないのか

そこまで言わなくても、歳共に時間が過ぎるのが速くなるなぁ

166 名前:デフォルトの名無しさん :2005/10/01(土) 11:16:07
将来に不安を持つ若者とつまらない学生生活を過ごしてきた年輩が集うスレはここですか?

何歳になろうと時間の価値に変化なんてねーよ
変化してんのはお前らの感性と時間の使い方だ

167 名前:デフォルトの名無しさん :2005/10/01(土) 12:31:48
時間の価値って何?
何か基準があるの?
人それぞれ時間の価値は違うんじゃないの?
なら時間とともに変化するんじゃないの?

168 名前:デフォルトの名無しさん :2005/10/01(土) 12:35:22
半日が貴重かどうかは人それぞれだが、

>もう軽く半日くらい悩んでてブチ切れ超えて涙出てきた。
半日で涙流してブチ切れ超えるのは、忍耐が無いとしか思えない。

169 名前:デフォルトの名無しさん :2005/10/01(土) 12:53:55
たった1つのバグを、半日考えても潰せなかったら凄く焦ってこない?
…もしかしてこのまま一生ここから進めないんじゃ…みたいに。
そりゃ Dual Paraboloid Mapping を半日考えただけで涙流す人は忍耐なさ過ぎだけどw

170 名前:デフォルトの名無しさん :2005/10/01(土) 12:57:27
>>169
同意。>>152が泣きそうって言ったのも分かる気がする
今更かもしらんけどDLL内でGetHandleModule(NULL)で
DirectInput8Createしてもエラー返るんじゃね?ヘルプにそんな記述あった


171 名前:デフォルトの名無しさん :2005/10/01(土) 12:58:50
大げさに書いた方が食いつきが良いだろうって下らない考え、その程度の話だろ
本当にお前ら、こういう誰でも参加できるレベルの低い話ばかり盛り上げるな

172 名前:デフォルトの名無しさん :2005/10/01(土) 12:58:50
GetModuleHandleだバカかオレは

173 名前:171 :2005/10/01(土) 13:00:03
おっとすまん、170はそれなりに建設的な

174 名前:デフォルトの名無しさん :2005/10/01(土) 13:03:30
仕事とか、課題とか期限付きならわからんでもないが、
おそらくそうじゃないんでしょ?

大体、半日程度で、なんでもできると思ってる方がどうかしてる。
それに、一生進めないなんてありえない。

半日悩んだけど、スキンメッシュが扱えねー!とか
半日悩んだけど、シェーダーが扱えねー!とか。

175 名前:マイク ◆yrBrqfF1Ew :2005/10/01(土) 13:11:10
仕事で必死にゲーム作って心も体も一杯一杯なのって人生終わってるな(▽

176 名前:デフォルトの名無しさん :2005/10/01(土) 13:20:31
納豆

177 名前:デフォルトの名無しさん :2005/10/01(土) 13:22:35
オレはサンプルにあるやり方でやらないでわざわざ変なやり方してハマッてる状態みて
「あー、こいつ馬鹿なんだw ブッ叩いてやろう」
って思った。
んで、自分、泣きそうになってんのに、まだくだらないやり方にこだわってるのw
「あー、こいつゲーム作れる器無いねw ブッ叩いてやろう ついでにウザイから沈めちゃえw」
って思った。

実際、こいつってゲーム完成させたことないと思うw

178 名前:デフォルトの名無しさん :2005/10/01(土) 13:25:23
なんかもまいら楽しそうだな

179 名前:デフォルトの名無しさん :2005/10/01(土) 13:27:16
こいつって誰だ
お前は誰と話をしているつもりなんだ

180 名前:デフォルトの名無しさん :2005/10/01(土) 13:30:23
>>179
撒き餌じゃね?

181 名前:デフォルトの名無しさん :2005/10/01(土) 13:48:48
>>179
はぁ?流れでわかんないの?
小学校からやり直してこいよw

182 名前:デフォルトの名無しさん :2005/10/01(土) 13:49:22
>>167
時間は時間だ。時間以外のものとその価値を比べることなんて厳密には出来ないだろう。
人それぞれの時間の価値が違うのも時間と共に変化してるのも
その人の主観的な価値観であって時間そのものの価値ではない。

若い頃の10分も今の10分もどっちも同じ10分でしかない。
ただ若い頃と今ではその10分の使い方が違うだけ。

183 名前:デフォルトの名無しさん :2005/10/01(土) 13:52:39
4.余計な雑談は不要ですよ

184 名前:デフォルトの名無しさん :2005/10/01(土) 13:53:19
>>181
自分が流れの中心に居ると思い込んでいる奴キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

185 名前:デフォルトの名無しさん :2005/10/01(土) 13:56:34
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。

186 名前:デフォルトの名無しさん :2005/10/01(土) 14:00:42
>>184
はぁ?だからいつまでたってもゲームが作れないんだぞお前はw
俺が言ってるのは国語だよ。国語。これまでのレス読んでわからねーのかよ低脳。
誰も話題の中心がどうだとかそんな話してないよ。馬鹿?つーか、馬鹿。
そうやって全然話の本質をとらえないで逸らすことばっかり考えてるから
プログラムもそうやって頓珍漢なもん組み始めるんだよバーカ。
お前は一生DirectInput弄って誰ももってないデバイスサポートしてろチンカス(笑)

187 名前:デフォルトの名無しさん :2005/10/01(土) 14:06:01
DirectInputじゃないとXPで不具合でるんじゃなかったかな
XPはIDの設定が出来ないとかで

188 名前:デフォルトの名無しさん :2005/10/01(土) 14:09:29
ID無い板って大変だな

189 名前:デフォルトの名無しさん :2005/10/01(土) 14:12:58
そんなあなたにゲーム製作技術板
DirectXでもゲームプログラミングでも具体的な話をしたい人はこちらへどうぞ

Direct 3D
http://pc8.2ch.net/test/read.cgi/gamedev/1005293179/
ゲームプログラミング相談室【Part6】
http://pc8.2ch.net/test/read.cgi/gamedev/1078503950/

190 名前:デフォルトの名無しさん :2005/10/01(土) 15:52:34
>>177
DLLの実行時動的リンクはそれなりに意味があるよ。

191 名前:デフォルトの名無しさん :2005/10/01(土) 15:54:36
>>177
152のことを言ってるんだろうが、あのコードを見てゲーム作ろうと
しているとか勘違いしているお前の方が痛いぞ。
分かる奴はあれだけ見れば、何しようとしているのか想像つく。

>>152
わざわざC言語で書いてるみたいだけど、#includeよりも前に
#define CINTERFACEって書いておくと、C++からでもCOMを
Cのインターフェースで扱えるよ。

192 名前:デフォルトの名無しさん :2005/10/01(土) 16:08:30
>>190
どんな?
泣いて半日無駄にする以上の価値があるわけね。

>>191
>あのコードを見てゲーム作ろうとしているとか勘違いしているお前の方が痛いぞ
じゃあ、なにしてんの?

つか、結論から書けよ。
>>190 「意味があるよ」じゃなくて、ちゃんとどういう理由があるのか一言で説明できるだろ。
馬鹿だろ。マジで死ね。なにもったいつけてんだ?
どうせくっだらねぇ理由だから意味ありげなレスで止めてんだろ。死ね。

>>191
お前も何してるのか書けよ。
>>152はゲームを作ろうとしてるんじゃなくて、これこれこういう理由でこういうコードになってんだよ。
って説明書けよ。クズが。

193 名前:デフォルトの名無しさん :2005/10/01(土) 16:11:19
(・∀・)ニヤニヤ

194 名前:デフォルトの名無しさん :2005/10/01(土) 16:17:55
わかったからいい加減にゲームを完成させろ

195 名前:デフォルトの名無しさん :2005/10/01(土) 16:44:41
俺様の最強ゲームライブラリは
・DirectX9がインストールされてなければ、原因と取るべき対処の方法を、PC初心者にも分かりやすい日本語で教えてくれる予定です。
・DirectXとOpenGLを切り替えできます。将来的には、完全ソフトウェア描画にも対応する予定です。
・超絶凄いゲームが、今後次々とインターネット上で有志によってリリースされてゆく予定です。

196 名前:デフォルトの名無しさん :2005/10/01(土) 17:09:01
最強ゲームライブラリにしちゃ志が低いな。
追加しておけ↓
つ・ロイヤリティがボコスコ入ってきて、寝てるだけももうチンコビンビンです。
つ・流通は初心会が管理し、ROMカセットのみの販売となります。

うはなにをするくぁwセdrftgyふじこlp;@:「

197 名前:デフォルトの名無しさん :2005/10/01(土) 17:09:50
本当の意味でゲームを作る前に、初期化とか環境設定で殺されるなんて。
ってことで、誰か賢い人が作ったライブラリを使った方がお勧め。

198 名前:デフォルトの名無しさん :2005/10/01(土) 17:53:16
>>192 に同情。一言で説明できるのに勿体ぶって説明せずに寸止めする香具師大杉。

199 名前:デフォルトの名無しさん :2005/10/01(土) 17:54:46
オレも>>192に同情!

200 名前:デフォルトの名無しさん :2005/10/01(土) 17:56:19
ほんと馬鹿な香具師多すぎ、私も>>192に同情します。

201 名前:デフォルトの名無しさん :2005/10/01(土) 18:03:58
同情するより仕事くれ

202 名前:デフォルトの名無しさん :2005/10/01(土) 21:24:20
わざわざDLLいじるのは>>195をやるためだって

203 名前:デフォルトの名無しさん :2005/10/01(土) 22:41:21
>>202
ゲームを作るコードじゃないらしいよ。

204 名前:デフォルトの名無しさん :2005/10/02(日) 07:39:38
c:\Program Files\Microsoft Platform SDK\Include\WinNT.h(222) : error C2146: 構文エラー : ';' が、識別子 'PVOID64' の前に必要です。
c:\Program Files\Microsoft Platform SDK\Include\WinNT.h(222) : error C2501: 'PVOID64' : 識別名を宣言するのに、型が指定されていません。
c:\Program Files\Microsoft Platform SDK\Include\WinNT.h(5940) : error C2146: 構文エラー : ';' が、識別子 'Buffer' の前に必要です。
c:\Program Files\Microsoft Platform SDK\Include\WinNT.h(5940) : error C2501: '_FILE_SEGMENT_ELEMENT::PVOID64' : 識別名を宣言するのに、型が指定されていません。
c:\Program Files\Microsoft Platform SDK\Include\WinNT.h(5940) : error C2501: '_FILE_SEGMENT_ELEMENT::Buffer' : 識別名を宣言するのに、型が指定されていません。

とか言うエラーが5個ぐらい発生しているのだが、
どうやったら直る?

205 名前:201 :2005/10/02(日) 07:56:03
因みに、言語はC++、何も編集しない状態でこうなる。

206 名前:デフォルトの名無しさん :2005/10/02(日) 09:28:42
WIN64関係の識別子が定義されてないんだろうねぇ

207 名前:デフォルトの名無しさん :2005/10/02(日) 10:11:54
ねぇ

208 名前:デフォルトの名無しさん :2005/10/02(日) 12:57:23
その前にインクルードしてる自作のヘッダーファイルに;や}がない罠じゃね?

209 名前:デフォルトの名無しさん :2005/10/02(日) 19:38:18
謹製のインクルードファイル。

210 名前:デフォルトの名無しさん :2005/10/03(月) 01:26:18
自作3Dモデルを動かしたくてDirectXプログラミングを始めたのですが、

ttp://www.twin-tail.jp/
ttp://www.roy.hi-ho.ne.jp/pastel/home/index.html

上記サイトを参考にXファイルの表示方法は分かったのですが、
そのXファイルの表示位置の変更(つまりは表示キャラの移動)
については触れられてませんでした。
(サンプルプログラムでは全て画面中央に表示されるようになってました)

どうすれば表示モデルの移動ができるのでしょうか?

211 名前:デフォルトの名無しさん :2005/10/03(月) 01:40:53
>>210
とりあえず、SDKのヘルプは読んだ?

212 名前:デフォルトの名無しさん :2005/10/03(月) 01:44:05
特にDirect3D のチュートリアルのところ。

213 名前:デフォルトの名無しさん :2005/10/03(月) 02:06:57
>>211-212
メッシュの使い方の項でしょうか。行列の項も一応読んですが、
勉強が足りてないせいか特にヒントは得られませんでした…

214 名前:デフォルトの名無しさん :2005/10/03(月) 06:34:26
>>213
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/DirectX9_c/directx/graphics/programmingguide/tutorialsandsamplesandtoolsandtips/tutorials/3/step1.asp
ほんとだw
最強によくわかんねーなコレw
これは回転する例だけだけど、平行移動・スケーリング(拡大・縮小)・回転とできてな。
描画位置をどうにかするには平行移動をすればいいわけよ。
その辺は自分で探してみてくれ。
要はSetTransformに設定された場所にモデルが描画されるわけよ。

215 名前:デフォルトの名無しさん :2005/10/03(月) 07:27:55
>>210
D3DXMatrixTranslationとかだけど、行列演算が移動になるってこと分かってないようだし、
まずは初心者向けの本を読んだ方がいいって。

216 名前:デフォルトの名無しさん :2005/10/03(月) 07:41:52
ところがどっこい、書いてない入門書のほうが多いわけですよ
買うときは気をつけなー

217 名前:デフォルトの名無しさん :2005/10/03(月) 08:25:17
>>213
3DCGの原理を勉強したほうがいいんでないの?
とりあえず2ch的な推奨本なら多分こんな奴。
http://www.amazon.co.jp/exec/obidos/ASIN/4939007375/qid=1128295398/sr=8-3/ref=sr_8_xs_ap_i3_xgl14/250-9773565-7639426

線形代数を学んだ大学生向けだと思うけど、気合の入った理系高校生なら読めるかも。

218 名前:デフォルトの名無しさん :2005/10/03(月) 08:46:47
>>213
基本を知らないと時間ばかりが過ぎていくぞ。
急がば回れってやつだ。

219 名前:デフォルトの名無しさん :2005/10/03(月) 14:14:46
チュートリアルを実際に動作させてみて、適当にいじくり回していけば基本は習得出来るはず。
逆に読むだけなのは身に付かないから時間の無駄。

220 名前:デフォルトの名無しさん :2005/10/03(月) 14:27:15
DirectX7のヘルプは読み応えがある
理路整然としていて理解しやすい

221 名前:デフォルトの名無しさん :2005/10/03(月) 16:48:55
つうかMSってヘルプが他とくらべものにならないぐらい充実してるんだよな。
例えばMSXMLとXercesでは全然違うぜ。
MSがシェアとってるのは案外こういうとこからきてるのかも。

222 名前:デフォルトの名無しさん :2005/10/03(月) 17:42:22
質問です。XP、.NET です。

メモリにロードした画像データを表示する必要があるため、
D3DXCreateTextureFromFileInMemory を使おうと思いました。

HRESULT D3DXCreateTextureFromFileInMemory(LPDIRECT3DDEVICE8 pDevice,
 LPCVOID pSrcData,
 UINT SrcData,
 LPDIRECT3DTEXTURE9* ppTexture);

pSrcData には、画像ファイルをそのままメモリにロードしたもののアドレスを渡せばいいのでしょうか?
具体的には、例えば png ファイルの場合は

(続く)

223 名前:222 :2005/10/03(月) 17:42:58
fp = fopen("〜.png", "rb");

// ファイルの大きさを取得
fseek(fp, 0, SEEK_END);
long bytes = ftell(fp);
fseek(fp, 0, SEEK_SET);

// 領域を確保し、データをロード
void* Pic = malloc(bytes);
fread(Pic, 1, bytes, fp);

LPDIRECT3DTEXTURE9 pTexture;
D3DXCreateTextureFromFileInMemory(pDevice, Pic, bytes, &pTexture);

と言った風に行っています。

エラーはでないのですが、画像が表示されません。(スプライトを生成してテクスチャを表示しています)
もちろん他の部分に間違いがある可能性もありますので、上記コード内に間違いがあるかどうかは現状では不明です。

よろしくお願いします。


224 名前:デフォルトの名無しさん :2005/10/03(月) 17:53:16
>>223
D3DXCreateTextureFromFileでファイルから読み込んだ場合はちゃんと表示されるのか?

225 名前:222 :2005/10/03(月) 17:59:11
>>224
表示されないじゃん…orz
以前にテストは行ったのですが、
他の方法 (DirectX を使わない)で表示させていた部分のコメントアウトが一部抜けてて、
それで表示されていると勘違いしていました。
出直してきます。ありがとうございました。

226 名前:デフォルトの名無しさん :2005/10/03(月) 20:39:39
超初心者な質問ですみません。
DirectDrawで2Dゲーム作る利点を軽く教えてください
お願いします。

227 名前:デフォルトの名無しさん :2005/10/03(月) 20:51:55
無い

228 名前:デフォルトの名無しさん :2005/10/03(月) 21:20:58
質問です。こいつら何やってるんですか?
http://pc8.2ch.net/test/read.cgi/tech/1096649788/734-

229 名前:デフォルトの名無しさん :2005/10/03(月) 21:23:47
>>228
スレ違い

230 名前:226 :2005/10/03(月) 21:28:46
>>227
これってマジレスですか?

231 名前:デフォルトの名無しさん :2005/10/03(月) 21:32:40
マジれす

232 名前:226 :2005/10/03(月) 23:49:55
じゃあ2Dシューティングゲームか何かは
どうしてDirectX7とかを使ってるんですか?

233 名前:デフォルトの名無しさん :2005/10/04(火) 00:03:28
自前の最適化された拡大縮小回転ルーチンや矩形転送ルーチンに
最大限に意義を持たせるためだと想像します。


234 名前:デフォルトの名無しさん :2005/10/04(火) 00:09:33
わざわざDirectDrawで作るのは
Direct3Dがハードウェアサポート受けてないような低スペックハードで
動かせるようにするためだろうけれど今時そんなハード見つけるほうが大変だろ。

低スペックで動くからDirectDrawスゲーってわけじゃなくて、
回転拡縮とかやり始めたら作るのめんどくさい&速度遅いしで色々と時間の無駄。
とうとう最後の砦とも言うべきかエロゲもDirect3D使い始めたようだしなあ

235 名前:デフォルトの名無しさん :2005/10/04(火) 07:10:26
>>226
Direct3Dの機能が特に必要ない場合は、DirectDrawの方が
2Dゲームは作りやすい。

あと、Direct3Dを使う場合でも、Windows98を動作対象に入れる場合は、
DirectX7を使うこともある。

236 名前:デフォルトの名無しさん :2005/10/04(火) 07:40:27
シューティングは256色で高速に動かしたいからじゃね
古い機種だと16ビット色ですら動作が遅くなる

237 名前:デフォルトの名無しさん :2005/10/04(火) 08:30:47
・アルファチャネル要らなくてカラーキーで満足できる
・ドット絵のジャギー感が欲しい(フェチ)
・浮動小数点演算に抵抗がある(ランバ・ラルのようなオールドタイプ


238 名前:デフォルトの名無しさん :2005/10/04(火) 10:43:35
>>235
3Dアクセラレータが使えないから激遅ってのも重要な点だな。

239 名前:デフォルトの名無しさん :2005/10/04(火) 13:36:33
回転とか拡大縮小をしないなら、激遅ってほどでもないんでない
むしろDDraw有利だと思ってたくらいで

240 名前:デフォルトの名無しさん :2005/10/04(火) 13:43:25
あれ・・・
ひょっとして Direct3D 使って作ったアプリて
Windows98 に対応できないんですか・・・?

241 名前:デフォルトの名無しさん :2005/10/04(火) 15:43:36
>>240
対応できるよ。最新のDirectXでもWin98はサポートされている。

Win98は初期状態でDX7が入っていて追加のインストールが必要ないから
主なターゲット層がサラリーマン等の場合はDX7を使ったりするということ。

242 名前:240 :2005/10/04(火) 16:09:12
>>241
なるほど、ありがとうございます。


243 名前:デフォルトの名無しさん :2005/10/04(火) 19:13:41
つまりライバルはマインスイーパーやソリティア


244 名前:デフォルトの名無しさん :2005/10/04(火) 19:18:02
WinGって、APIに吸収されたんでそ?

245 名前:デフォルトの名無しさん :2005/10/04(火) 19:55:52
bio100%のやつ?

246 名前:デフォルトの名無しさん :2005/10/04(火) 20:05:30
>>244 そう

>>245 それはWinGL 別名MS横流(ry

247 名前:デフォルトの名無しさん :2005/10/04(火) 23:46:25
あるMSの技術者がその昔、バイファムの声優をやっていたことは意外に知られていない。

248 名前:デフォルトの名無しさん :2005/10/04(火) 23:57:43
いいなあ
ロリティック銀河漂流
してみたいなあ
ピースボードで我慢するか

249 名前:デフォルトの名無しさん :2005/10/05(水) 01:47:08
>ハルなんとかさん
http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=47&vew=410
そりゃ、おめーのプログラム見てみるしかねぇよw

250 名前:デフォルトの名無しさん :2005/10/05(水) 09:14:53
こんな所で愚痴るなんて陰険な上に無能だな


■過去ログ置き場に戻る■ 1- 次250 最新50
DAT2HTML 0.33f Converted.