- 1 名前:名前は開発中のものです。 [04/05/05 12:33 ID:dP7V/vQq]
- DirectXについては基本このスレで話していこうとものです。
基礎的な質問+高度な質問も簡潔かつ簡単に答えることをモットーにして頂き このスレの回転を早めて常にアクティブなスレにしたいと思っております。 このスレに質問等を書かれる方はまず最初に自分でしっかりと調べたのちに聞かれることをお願いします。 質問に対する答えも簡潔に出来る限りわかりやすくお願い致します。
- 201 名前:名前は開発中のものです。 [04/07/14 15:38 ID:6+nKd7SH]
- 文字が炎で浮かびあがるみたいなのを再現したいのですが
どうすればいいですかね?
- 202 名前:名前は開発中のものです。 mailto:sage [04/07/14 15:47 ID:7a2ZlvXB]
- >>172
ここで聞くよりネットで探したほうが遥かに早い。 古くはDirectDrawやGDI、 最近のならDirect3DやらShaderやらソースは転がりまくりだ。
- 203 名前:名前は開発中のものです。 mailto:sage [04/07/14 16:35 ID:Wq2xcMIa]
- セルオートマトン
- 204 名前:名前は開発中のものです。 mailto:sage [04/07/14 16:37 ID:cSqrSSKt]
- ライフゲーム
- 205 名前:名前は開発中のものです。 [04/07/14 17:39 ID:8+MeTEKK]
- 本もってる人しか分からない質問でスマソ。
「DirectX9vol.2 3Dゲームプログラミング C#によるキャラクタの歩行アルゴリズム」 って本なんですが。 サンプル(リスト5.5)をC++に直して実行したんですげど、 キャラクタが一歩進んで逆モードになったとたんに上半身の姿勢が傾いて その後はそのまま歩行するんですが、これって仕様ですか? 真っ直ぐの姿勢のまま歩行させたいんだけど、何時間も迷ってます。 お助けを・・・。
- 206 名前:名前は開発中のものです。 mailto:sage [04/07/14 18:13 ID:L7fgGGCl]
- サンプルそのまま動かしてみて
違う動作なら自分のバグだろう
- 207 名前:名前は開発中のものです。 [04/07/14 19:57 ID:8+MeTEKK]
- >サンプルそのまま動かしてみて
実は動作させる環境が無いんです(win98のk6-2 350mhz vc++5.0)
- 208 名前:189 mailto:sage [04/07/14 21:02 ID:rbPUkRjn]
- tinyのサンプル見て何がなんだか分からなかったけど、
サンプルのコードの一部をコピってぐぐってみたらそれらしいHPがでてきました。 頂点シェーダーっていうのをぜんぜん知らなかったよ。 これからまた勉強します。 ありがとうございました。
- 209 名前:名前は開発中のものです。 mailto:sage [04/07/14 21:17 ID:uOZXkB+P]
- >>205
仕様かどうかはソース見ればわかるでしょ。
- 210 名前:名前は開発中のものです。 [04/07/14 23:14 ID:+gnIx0lG]
- ここも某BBXも、完全に厨房王国と化してしまったな。
- 211 名前:名前は開発中のものです。 mailto:sage [04/07/14 23:17 ID:AbhzswCG]
- 夏到来だぜ
- 212 名前:名前は開発中のものです。 mailto:sage [04/07/14 23:17 ID:Wq2xcMIa]
- 夢を見る210
- 213 名前:名前は開発中のものです。 [04/07/14 23:33 ID:3SlC6+or]
- >>189
VERTEX構造体に、ブレンド値(ウェイト=行列補間値 = wM+(1-w)M )を入れるんだよ。 D3DのドキュメントのGeometry Blendingを読め。
- 214 名前:213 [04/07/14 23:36 ID:3SlC6+or]
- 補足:
ブレンドする行列をそれぞれM1,M2とすると、ある頂点のウェイトw [0,1]によって頂点を変換する行列M'を求める。 M' = wM1+(1-w)M2
- 215 名前:197 mailto:sage [04/07/14 23:41 ID:YAk9BLuw]
- >>198-199
おお、設定できるのか。 見逃してました。マジでありがとん
- 216 名前:名前は開発中のものです。 mailto:sage [04/07/14 23:56 ID:o3zClHdn]
- >>213
行列を補間しちゃうの?
- 217 名前:名前は開発中のものです。 [04/07/15 00:02 ID:a0RqXKRX]
- >>214は大嘘な。
- 218 名前:名前は開発中のものです。 [04/07/15 00:16 ID:5qtxwqQC]
- パーティクルって何?
- 219 名前:214 [04/07/15 00:20 ID:74XWLGbU]
- >>216
そうだよ。 SetTransform() で、WORLD1に、M1, WORLD2にM2を設定する。 あと、全ての頂点にブレンド値wを設定。 バーテックス・ブレンディングの変換行列はこうなる。 M' = wM1+(1-w)M2 これは線形補間。 >>217 素人さんは書き込み遠慮願えますか?
- 220 名前:名前は開発中のものです。 mailto:sage [04/07/15 00:20 ID:RZa6M6YU]
- >>218
粒子
- 221 名前:名前は開発中のものです。 [04/07/15 00:36 ID:5qtxwqQC]
- 炎で文字を表現していのですがどうすればできますかね?
- 222 名前:名前は開発中のものです。 mailto:sage [04/07/15 00:39 ID:me8K4ngQ]
- つまんね
- 223 名前:名前は開発中のものです。 mailto:sage [04/07/15 00:44 ID:J2QoNYbd]
- >>219
マジで行列を補間すると思っちゃってるの? >D3DのドキュメントのGeometry Blendingを読め。 アンタこそよく読んだほうがいいよ。
- 224 名前:名前は開発中のものです。 mailto:sage [04/07/15 00:48 ID:s7S1auKv]
- >>219
それは拡大縮小のやり方? 頂点すべてにwをかけて、 wを変化させることで拡大縮小を行うという意味?
- 225 名前:名前は開発中のものです。 [04/07/15 01:05 ID:74XWLGbU]
- >>224
まったく違う。ボーン数1のとき, ブレンドする行列をそれぞれM1,M2とすると、ある頂点のウェイトw [0,1]によって頂点を変換する行列M'をD3Dが求め、その変換行列によって頂点をD3Dが変換する。 M' = wM1+(1-w)M2 ← D3Dが行列M1→M2をウェイトwで補間する。 例えば、CUSTOMVERTEX構造体はこんな感じ。 { D3DVECTOR3 coord; float w; ←区間[0, 1] } ユーザーが設定するのは、 頂点座標をPとすると、変換後の座標P'= PM'となる。 >>223 おまえまったく判ってない。
- 226 名前:225 [04/07/15 01:08 ID:74XWLGbU]
- ユーザーが設定するのは、上の例の場合、M1,M2のWORLDマトリックスと、すべての頂点のw。
ウェイトが1であれば、100% M1となり、0であれば100% M2となり、0.5であれば、(M1*0.5 + M2*0.5)となる。
- 227 名前:225 [04/07/15 01:10 ID:74XWLGbU]
- >>223
こういうアホがいるからみんな消えていくわけだな。
- 228 名前:名前は開発中のものです。 mailto:sage [04/07/15 01:37 ID:J2QoNYbd]
- >>225
だから違うよ。 変換後の座標をウェイト値で合成するんだろ。 行列を線形補間してそのまま使ったりしたらまずい。
- 229 名前:名前は開発中のものです。 [04/07/15 01:44 ID:a0RqXKRX]
- >>225
久しぶりに正真正銘のバカを見たわ。 >>216,>>217>>223 をどう読んだのか? あと「行列を補間する」の意味を教えれ。
- 230 名前:名前は開発中のものです。 [04/07/15 01:50 ID:a0RqXKRX]
- >>225の発言を抜粋。
「素人さんは書き込み遠慮願えますか? 」 「おまえまったく判ってない。 」 「こういうアホがいるからみんな消えていくわけだな。 」 ・・・鬱だ氏んでくれ>>225。
- 231 名前:名前は開発中のものです。 [04/07/15 02:33 ID:5qtxwqQC]
- 炎の文字はどうやって表現すれば・・・
- 232 名前:名前は開発中のものです。 mailto:sage [04/07/15 03:28 ID:ArWlyibQ]
- >>225
スキニングによるボーン処理のweightと ボーン変換における各key_frame間の補間が 混同されすぎてます。 key_frameが十分細かく設定されているなら貴方の言う補間処理は不要でしょう。 しかし、頂点が複数のボーン影響を受ける事とは別の話です。 スキニング、ボーンのウェイト、姿勢の補間を理解する事をお勧めします。
- 233 名前:名前は開発中のものです。 mailto:sage [04/07/15 03:55 ID:WZCfEE8K]
- >>231
可愛そうだからマジレスしてやると、 その技術はDirectXとは全く関係が無い。 結論を言うと、スレ違いだね。 適切なスレで質問すると良いだろう。
- 234 名前:名前は開発中のものです。 mailto:sage [04/07/15 04:30 ID:37qRmEuN]
- DirectDrawでウィンドウモードで完全にVSYNCさせるのって無理?
- 235 名前:名前は開発中のものです。 mailto:sage [04/07/15 07:22 ID:74XWLGbU]
- >>228
「 変換後の座標をウェイト値で合成するんだろ。 行列を線形補間してそのまま使ったりしたらまずい。 」 たしかに、D3Dではベクトルを合成しているのは認める。しかし、 V'= V{wM1+(1-w)M2}, V'= wVM1+(1-w)VM2 この2式の結果は同じ。嘘だと思うなら試してみ。
- 236 名前:名前は開発中のものです。 mailto:sage [04/07/15 07:24 ID:74XWLGbU]
- >>229
> あと「行列を補間する」の意味を教えれ。 M' = wM1+(1-w)M2 って定義してんだろ。 > ・・・鬱だ氏んでくれ>>225。 おまえがしねよ。数学もできないでプログラマなんかやってんじゃね。
- 237 名前:名前は開発中のものです。 mailto:sage [04/07/15 09:23 ID:yYZscXA7]
- 行列の線形補間は可能に一票。
ただし、行列の段階だろうが座標だろうが、 元が行列のデータを補間すると回転要素の劣化が激しいので、 補間が前提であれば、成分を混ぜた物を使う時点で愚策。 行列でしかデータを吐けないエクスポーター等は使うべきではない。 行列の場合は、補完しなくてもいいように、 細かくデータを吐きだして無駄にデータ量をとるのを覚悟するしかない。
- 238 名前:名前は開発中のものです。 [04/07/15 13:37 ID:Z96KWdeU]
- >>225, >>235, >>236
おまえがしねよ。同次座標も同次変換も知らないでプログラマなんかやってんじゃね。 > たしかに、D3Dではベクトルを合成しているのは認める。しかし、 > V'= V{wM1+(1-w)M2}, V'= wVM1+(1-w)VM2 > この2式の結果は同じ。 (゚Д゚)ハァ?
- 239 名前:228 mailto:sage [04/07/15 14:14 ID:znH2PgHO]
- >>235
だから変換後に合成するのと合成した行列で変換するのは違うって。 たとえば単位行列とY軸で180度回転してる行列を補間してみればわかる。 これは極端な例だけど回転要素が近い行列同士でも この問題が起きてるので線形補間してそのまま使うのはまずいって。
- 240 名前:名前は開発中のものです。 mailto:sage [04/07/15 14:43 ID:5CaSOcVA]
- それ例は、行列の補間でも、変形後の座標の補間でも、同じだと思われ。
このスレにはバカしかいないのか?
- 241 名前:名前は開発中のものです。 mailto:sage [04/07/15 14:59 ID:TlmwfOpa]
- 189が惑わされているといけないから言っとく。
サンプル通りに変形済みの頂点合成しとけば問題ない。 頂点シェーダに手を出したら、とりあえずトゥーンシェーディングをやって見る。 案外面白いから。 テクスチャの使い方を学ぶ良いサンプルだと思うし。 スキニングで行列を補間するメリットってあるの?
- 242 名前:名前は開発中のものです。 mailto:sage [04/07/15 15:00 ID:Lf5cLVAP]
- 引き篭もりは多いが、バカは >>240 ぐらいだろ。
- 243 名前:名前は開発中のものです。 mailto:sage [04/07/15 15:26 ID:qBCUW8sZ]
- >>240
面倒なんで一行目だけ ・単位行列 1 0 0 0 ・Y軸で180度回転 -1 0 0 0 これをウエイト0.5で補間したら 0 0 0 0 になってまずいだろ。 これは極端だとしても違う回転要素の行列を線形補間しただけだと スケーリングが掛かったような変な行列になる。 回転要素が違う行列を線形補間したものと クォータニオンやオイラー角を補間してそれで作った 行列の中身は違うだろ。
- 244 名前:名前は開発中のものです。 mailto:sage [04/07/15 15:30 ID:qBCUW8sZ]
- >>242
>>235 もバカでしょ。 同一人物だとしたらもう手に負えないんで もう行列の補間が正解でいいです。
- 245 名前:名前は開発中のものです。 mailto:sage [04/07/15 15:31 ID:yYZscXA7]
- 補間が前提ならクオータニオンを使うべき。
行列はどのような方法を使おうと、回転要素に問題が発生する。 ちなみにクオータニオンを使っても、180度をブレンドなら、かなりのゆがみが発生する。 行列ならゆがみを通り越して、ひしゃげる。
- 246 名前:名前は開発中のものです。 mailto:sage [04/07/15 15:36 ID:yYZscXA7]
- 勘違いをしていたが、スキニングのウエイトか。
アニメーションとかモーションブレンドの話をしてた。 ちょっと逝ってくる。
- 247 名前:240 mailto:sage [04/07/15 15:54 ID:37qRmEuN]
- >>243
さっきも書いたが、 変換後の補間するやり方で、その例をやってみろよ。 同じ結果になるだろ。 なぜなら、行列の補間も、変換後の座標の補間も、どっちも所詮線形変換だから。 自分が本当のバカであることを証明したいだけなのか?
- 248 名前:240 mailto:sage [04/07/15 15:58 ID:37qRmEuN]
- >>244
行列の補間は間違い。 行列の補間は同次座標を含めた4次元座標での線形補間、 変形後の座標の補間はもちろん3次元座標での線形補間。 どちらも単なる線形補間なのでそもそも「正しい」など言えないのだが、 ウェイトを使ったブレンディングの概念により近いのは明らかに後者。
- 249 名前:240 mailto:sage [04/07/15 16:04 ID:37qRmEuN]
- 書き忘れたが、
>>243の例で、二つの方法の結果が等しくなるのは、 用いられている二つの行列が、同次座標を変化させない変換を表しているから。 まさかここまで言わないと理解できないほどのバカはいないと思うが、念のため。
- 250 名前:名前は開発中のものです。 mailto:sage [04/07/15 16:20 ID:YX0jyFzX]
- >なぜなら、行列の補間も、変換後の座標の補間も、どっちも所詮線形変換だから。
>行列の補間は同次座標を含めた4次元座標での線形補間、 もうアンタの勝ちです。間違いない。
- 251 名前:名前は開発中のものです。 [04/07/15 21:59 ID:nzaxTIty]
- 水、雷を表現したいのですがどういった方法がありますでしょうか。
- 252 名前:名前は開発中のものです。 mailto:sage [04/07/15 22:14 ID:6ceo0B9C]
- >>251
パーティクル、ストリップ、etc。
- 253 名前:名前は開発中のものです。 [04/07/15 22:28 ID:6ceo0B9C]
- と思ったらまたマルチポストか・・・。
マジレスすると、SIGGRAPHの論文でも読め。 で実装できたらこういうところで発表するとヒーローになれるぞ。 lucille.sourceforge.net/cgi-bin/sbr2004/wiki.cgi?page=FrontPage 「レンダリング、アニメーション関連などの見た目でデモが分りやすいのがよいかと」 とあるのでテーマとしてはいい感じのはず。 がんばれ厨房!
- 254 名前:名前は開発中のものです。 mailto:sage [04/07/16 00:23 ID:3qkX9w8Z]
- >>221,231,251
1.炎、水、雷などを写真に撮ります。 2.ビルボードで表示したいように並べます。 3.ヽ(゚∀゚)ノヤッター!!
- 255 名前:名前は開発中のものです。 mailto:sage [04/07/16 00:25 ID:3qkX9w8Z]
- >>234
>>199
- 256 名前:189 mailto:sage [04/07/16 00:35 ID:rarOkq+Y]
- 結局意味分からんかった。
もっと勉強して出直してきます。 ご迷惑かけました。マジで。
- 257 名前:名前は開発中のものです。 mailto:sage [04/07/16 04:30 ID:OS1hTRz1]
- >>255
>DirectDrawでウィンドウモードで完全にVSYNCさせるのって無理? いや、DX8以降のD3Dと統合されたのではなく、 DDrawでの話しなんすが。
- 258 名前:名前は開発中のものです。 mailto:sage [04/07/16 07:54 ID:PHtkNvW+]
- >>257
今ヘルプ見られないから適当だが、同期とる関数がある。
- 259 名前:名前は開発中のものです。 mailto:sage [04/07/16 08:04 ID:8sJyX39C]
- D3DPRESENT_PARAMETERSのPresentationInterval = D3DPRESENT_INTERVAL_ONE ;
じゃねーの。
- 260 名前:257 mailto:sage [04/07/16 10:31 ID:x3ikW9YG]
- >>258
言われてみてもう一度よくさがしてみたら、 >IDirectDraw7::WaitForVerticalBlan >メソッドは、アプリケーションが垂直帰線消去間隔と共に同期する方法を提供する。 あったあった、これっぽいね。thx しかし、D3DとDDrawの区別が付かないやつって多いのか? まぁDX8以降マニュアルからも消えちゃったし、しょうがないのか…
- 261 名前:名前は開発中のものです。 mailto:sage [04/07/16 11:41 ID:iwAzj5Mk]
- >>259
>D3DPRESENT_INTERVAL_ONE DX9以降、それは使わない。ヘルプ参照。
- 262 名前:名前は開発中のものです。 mailto:sage [04/07/16 15:24 ID:tp+KxRbP]
- >>260
微妙に困るよね>DDrawのマニュアル まぁDX7SDKのマニュアルありゃ済む話ではあるが
- 263 名前:名前は開発中のものです。 mailto:sage [04/07/16 19:45 ID:4tunO0kM]
- >>262
それがDX8以降のサンプルを見ると、微妙に変更点があるっぽいんですよね。 (ラッパー関数が増えた?) ぱっと見て違うのが、DDオブジェクトをnewで確保してたりとか。 C#のガベージコレクタを効かせるためなのかな? そういう変更点の説明がまったく無いのがなんとも気持ち悪い。
- 264 名前:名前は開発中のものです。 [04/07/17 15:48 ID:YfC7nJ2s]
- >>256
いや、お前は別に何も悪くない。 悪いのは、>>213, >>219, >>225, >>228, >>236, >>243のような、 忠告を繰り返し無視した上で大嘘を連発する、数学もできないバカプログラマー達だ。 まあこのスレの住人はほとんどそういう奴らばっかなのは事実だが。
- 265 名前:名前は開発中のものです。 mailto:sage [04/07/17 17:20 ID:B5TJNueI]
- 荒れるから終わってる話を蒸し返すなよ…
- 266 名前:名前は開発中のものです。 mailto:sage [04/07/17 18:00 ID:+9dzbshW]
- じゃあ話題を変えてみよう。
DWORD dwExecuteBufferSize; D3DEXECUTEBUFFERDESC D3DExecuteBufferDesc; ZeroMemory(&D3DExecuteBufferDesc, sizeof(D3DExecuteBufferDesc)); D3DExecuteBufferDesc.dwSize = sizeof(D3DExecuteBufferDesc); D3DExecuteBufferDesc.dwFlags = D3DDEB_BUFSIZE; D3DExecuteBufferDesc.dwBufferSize = dwExecuteBufferSize; hRes = m_lpD3DDevice->CreateExecuteBuffer(&D3DExecuteBufferDesc, &m_lpD3DExecuteBuffer, NULL);
- 267 名前:名前は開発中のものです。 mailto:sage [04/07/18 15:15 ID:KMrdhIqJ]
- >>264
V'= V{wM1+(1-w)M2} = wVM1+(1-w)VM2 まだこれがわかんねーやつがいるよw 『数学もできないバカプログラマー達だ。 まあこのスレの住人はほとんどそういう奴らばっかなのは事実だが。』 おまえのことだよプッ>>264
- 268 名前:名前は開発中のものです。 mailto:sage [04/07/18 15:39 ID:wMON88Q+]
- >>266
そんな話題に変えてもなつかしすぎて誰もついてきてこれないぞ
- 269 名前:名前は開発中のものです。 mailto:sage [04/07/18 20:13 ID:XV/x4++F]
- むしろ、どう反応すればいいのか迷うが。
実行バッファを作って終わりなんだもの。
- 270 名前:名前は開発中のものです。 [04/07/19 08:58 ID:48ZX7Scm]
- 荒んでるとこすまんがDirectInput7で教えてくれ('A`)
今作ってるゲームを二人プレイ用に改造してるとこなんだが、2つ目以降の Joystickデバイス取得の具合がどうもよろしくないのよ・・・ LPDIRECTINPUT7 pDI = NULL; LPDIRECTINPUTDEVICE7 pDIdev1 = NULL; LPDIRECTINPUTDEVICE7 pDIdev2 = NULL; BOOL CALLBACK GetJoystickCallback(LPDIDEVICEINSTANCE lpddi,LPVOID *pvRef) { HRESULT hResult; hResult = pDI->CreateDeviceEx(lpddi->guidInstance, IID_IDirectInputDevice7,(void**)pvRef, NULL); if(hResult == DI_OK)returnDIENUM_CONTINUE; returnDIENUM_STOP; } こういう列挙コールバックを書いて・・・ (省略) hResult1 = pDI->EnumDevices(DIDEVTYPE_JOYSTICK,(LPDIENUMDEVICESCALLBACK)GetJoystickCallback,&pDIdev1,DIEDFL_ATTACHEDONLY); hResult2 = pDI->EnumDevices(DIDEVTYPE_JOYSTICK,(LPDIENUMDEVICESCALLBACK)GetJoystickCallback,&pDIdev2,DIEDFL_ATTACHEDONLY); こんな感じでデバイスを取得しようとすると、PCにジョイスティックが1つしか繋がってない時でも 2回目のEnumDevicesがDI_OKを返しちゃうのよね(ちゃんと失敗を返してくれない) ちなみにPCからジョイスティックを抜いて実行するとちゃんと1つ目から取得に失敗する。 何故か1つでも繋がってると2回目のEnumDevicesまで成功してしまうという・・・ いろんなサンプル見たけど1つ目を認識させるとこ止まりで参考にならんかった 漏れのコードが間違ってるのは明白なんだが解決方法がワカラン ジョイスティックが1つの時に2回目以降がDI_OKを返さなくする正しいやり方を教えて下され
- 271 名前:名前は開発中のものです。 mailto:sage [04/07/19 10:21 ID:54Q4/4D7]
- >>270
EnumDevicesは1回だけ呼ぶんだよ。 それでGetJoystickCallbackをループさせて、複数のデバイスを取得する。
- 272 名前:名前は開発中のものです。 mailto:sage [04/07/19 10:22 ID:p5K2URLW]
- そら、最初から列挙し直したら同じものを列挙するだろ。
誰かがデバイスのインターフェイスを取得しようが、 別に列挙の条件から外れるわけではないからな。 一回の列挙で一度にやるか、二回回すなら、取得済みのデバイスを無視するとかしないと。 ちなみに俺は、IDirectInputDevice8::GetPropertyでDIPROP_JOYSTICKIDを使って、 使用するデバイスを選べるようにしている。
- 273 名前:名前は開発中のものです。 mailto:sage [04/07/19 12:38 ID:48ZX7Scm]
- うーむ、コールバック関数をよく理解できんな…
コールバック関数内でCreateDeviceExを2回呼んで終わりにすればいいのかな? ちょっとやってみる
- 274 名前:名前は開発中のものです。 mailto:sage [04/07/19 12:56 ID:48ZX7Scm]
- コールバック内で2回CreateDeviceExやったけど同じだった・・・orz
- 275 名前:名前は開発中のものです。 mailto:sage [04/07/19 13:06 ID:48ZX7Scm]
- 思いっきり勘違いしてた
修正したらうまく行ったみたい 因みにこんな感じにしてみますた BOOL CALLBACK GetJoystickCallback(LPDIDEVICEINSTANCE lpddi,LPVOID *pvRef) { HRESULT hResult; if(pDIdev1 == NULL){ hResult = pDI->CreateDeviceEx(lpddi->guidInstance, IID_IDirectInputDevice7,(void**)&pDIdev1, NULL); if(hResult == DI_OK)returnDIENUM_CONTINUE; elsereturnDIENUM_STOP; } if(pDIdev2 == NULL){ hResult = pDI->CreateDeviceEx(lpddi->guidInstance, IID_IDirectInputDevice7,(void**)&pDIdev2, NULL); if(hResult != DI_OK)pDIdev2=NULL; } returnDIENUM_STOP; } なんか恥ずかしいコードだな・・・ >>271-272 サンクスコ
- 276 名前:名前は開発中のものです。 mailto:sage [04/07/19 13:27 ID:54Q4/4D7]
- >>275
強引だな・・・・・。
- 277 名前:名前は開発中のものです。 mailto:sage [04/07/19 21:53 ID:FkElpxEK]
- 確かにしようもないことで荒れるけど、業務系板と比べると『しようもない』のレベルの次元が違う。
- 278 名前:名前は開発中のものです。 mailto:sage [04/07/19 21:53 ID:FkElpxEK]
- 確かにしようもないことで荒れるけど、業務系板と比べると『しようもない』のレベルの次元が違う。
- 279 名前:名前は開発中のものです。 mailto:sage [04/07/20 02:12 ID:TWCqFqg5]
- レベルの次元
- 280 名前:exciteは神 mailto:sage [04/07/21 00:33 ID:NW4Ruyd1]
- それは破滅しますが、ので、そこに、さらにある、
オペレーティング・システム・ボードと比較して、 それを確かにする方法、レベルの次元、の 「そこに、さらにある、実行する方法」異なります。
- 281 名前:名前は開発中のものです。 mailto:sage [04/07/22 22:56 ID:5rJvB900]
- Forceware60シリーズリリース。
GeForce6800にDirectX9.0c(WindowsXPSP2RC2)と Shader3.0環境は整った。
- 282 名前:名前は開発中のものです。 mailto:sage [04/07/24 19:31 ID:P1GEgvZG]
- ぬるぽ
- 283 名前:名前は開発中のものです。 mailto:sage [04/07/24 19:55 ID:PR5W0fUe]
- ポルンガ
- 284 名前:名前は開発中のものです。 mailto:sage [04/07/24 19:56 ID:NIvgFQBW]
- アハーン
- 285 名前:名前は開発中のものです。 [04/07/24 23:31 ID:fQM+YmNW]
- 恐らく、それらはTAKOのビットを装備しており、それを焼き、沸騰させて、それが大阪と呼ばれる時、ゆで団子になるでしょう!
- 286 名前:名前は開発中のものです。 mailto:sage [04/07/25 09:28 ID:aCl1Aoq6]
- 今制限の多いエフェクトやHLSLでしこしこライブラリ作ってるけど
近い将来その制限も緩和されてゴミとかすんだろうな なんだかむなし
- 287 名前:名前は開発中のものです。 [04/07/25 09:44 ID:mxjAoDQK]
- ここはひどい日本語でつね
- 288 名前:ヘルジャック [04/07/25 10:21 ID:ovE6k6xQ]
- combatant.hp.infoseek.co.jp/cgi-bin/up/src/up0262.zip
漏れが作ったんだけど ちょっとこれを改良して
- 289 名前:名前は開発中のものです。 [04/07/25 10:35 ID:rIHwuKxk]
- >>288
ヘルジャックさ、 現在のフレームのキャラクタの位置を決定してから マップの表示範囲を決めるようにしないか? つまりマップの描画にはキャラクタの座標が必要になるわけだが。
- 290 名前:名前は開発中のものです。 [04/07/25 10:36 ID:XPpA5MG/]
- 誘導されてきたのですが 質問いいですか?
ビルドしてVCから実行するとHALで起動して普通に実行できるのですが、EXEファイルを 直接実行するとREFになっていますみたいなメッセージがでてその後 Geniric application error.Enable debug output for detailed information. とメッセージがでて強制終了します。強制終了する前にプロパティをみると REFになっています。 直接起動するとなぜREFで起動するのかとメッセージの意味がよくわからないのですが教えてもらえませんか。 使用ソフトはVisual Studio AcademicでビデオカードはGeforceFX5200です。
- 291 名前:ヘルジャック mailto:sage [04/07/25 10:38 ID:ovE6k6xQ]
- 主人公が画面の真ん中にくるような処理ね
あと obj.cppがスプライトやってるんだけど y座標でソートしてからキャラを描写したいんだけど リスト構造のソートのやり方がよくわからないから 教えて
- 292 名前:名前は開発中のものです。 mailto:sage [04/07/25 10:40 ID:ovE6k6xQ]
- >>288
操作は Alt+Enterがフルスクリーン 1キーがキャラを生成 Deleteで削除
- 293 名前:名前は開発中のものです。 [04/07/25 10:46 ID:rIHwuKxk]
- >>290
それだけじゃわかんねぇよw >>291 そのまえに2DなのにY座標でソートして描画すんの?
- 294 名前:ヘルジャック mailto:sage [04/07/25 10:50 ID:ovE6k6xQ]
- キャラが重なったとき
下にいるキャラの頭でそのキャラの上のキャラの足が隠れるようにしたいんだ なんか今のはオブジェの生成した順番になってるから描写すると変な重なりに見える
- 295 名前:名前は開発中のものです。 [04/07/25 11:10 ID:rIHwuKxk]
- >>294
ああ、そうか、とりあえずゲームの世界は構築してあるな。 Y座標が画面からみて奥行きになるわけね。 リストのソートがわからないのも問題だけど この場合はこのリストはソートしない方がいいな。 だってこれ、スプライトのリストじゃん。Y座標のソートと関係ないよ。 必要なのは描画するときだけで、フレームごとに変わるんだから、 こういうときは、一時的に関数内でポインタの配列を作って、リストの要素のポインタ一つ一つを 用意した配列にとっちゃってそれをソートするんだ。 これで配列のソートと同じだ。 言ってること理解できるかな? ポインタをとってポインタをソートするんだ。
- 296 名前:295 [04/07/25 11:18 ID:rIHwuKxk]
- おっと間違え。
スプライトのリストじゃなくてオブジェクトのリストか。 まあ、それでもソートはしちゃ駄目だね。 て、いうかリストの順番に意味をもたせるのはあんまりよくないんだな。
- 297 名前:名前は開発中のものです。 mailto:sage [04/07/25 11:19 ID:ovE6k6xQ]
- >>295
dクス ポインタの配列を作ってそれを描写か combatant.hp.infoseek.co.jp/cgi-bin/up/src/up0263.zip とりあえずBGMを付けてみた なんだか難しそうだがやってみまつ
- 298 名前:名前は開発中のものです。 [04/07/25 11:29 ID:rIHwuKxk]
- >>297
>なんだか難しそうだがやってみまつ 楽勝でしょ? でも、自分で考えようとするとハマルかもw そういうときは手順をしっかり書いて見る 1.十分な数のポインタ配列を用意。(もしくは可変配列) 2.オブジェクトリストのポインタを全部ポインタ配列にとる。 3.Y座標でソートする。 (一番楽なソートをアルゴリズムの本をみるなり、どっかのサイトからパクッてこい。) (この手のものいちいち自分で作ってると日が暮れるぞw) 4.できた配列を元にして描画する。 で、終わりだ。
- 299 名前:名前は開発中のものです。 mailto:sage [04/07/25 11:33 ID:aCl1Aoq6]
- >>290
そういうのは、やはり実はエラってるってケースが多い。 DXをデバッグバージョンにしてログをみるといい。
- 300 名前:名前は開発中のものです。 [04/07/25 11:45 ID:rIHwuKxk]
- >>290,297
#include <crtdbg.h> _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF|_CRTDBG_LEAK_CHECK_DF); じゃあ、おまいら、とりあえずメモリリーク支援なw 上のヘッダをインクルードして、関数をWinMain関数がはじまってすぐのところにそのままおけ。 デバッグモードで実行してみればアウトプットウィンドウになんか出るからみてみろ。 特にヘルジャック、メモリリーク出してるぞ。 ダブルクリックで飛べないから、結構みつかりにくいな。 ひとつひとつ要素を削ってってメモリリークの有無を確認して場所を特定していくしかないな。 頑張れ。
- 301 名前:名前は開発中のものです。 mailto:sage [04/07/25 13:04 ID:ovE6k6xQ]
- >>300
すぐにどこがメモリリークしているかわかったぜ Mapで確保したメモリをfreeしていないのと Script クラスも解放していなかったからだ でもねタスク処理でアプリの終了時に全タスクkillはメンド
|

|