[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/11 09:12 / Filesize : 247 KB / Number-of Response : 959
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【C++】 DirectX初心者質問スレ Part17 【C】



1 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 09:55:56 ]
※回答する人も、質問する人も必ず読んでください

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

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

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

【C++】 DirectX初心者質問スレ Part16 【C】
pc11.2ch.net/test/read.cgi/tech/1202634347/

459 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 19:18:00 ]
>>453
SetTexture(0, NULL)してるのに、ステージ0でテクスチャ参照したら駄目だろう。

When a texture stage has D3DTSS_COLORARG1 equal to D3DTA_TEXTURE and
the texture pointer for the stage is NULL, this stage and all stages after it are not processed.

ARG1にD3DTA_TEXTUREをしておいて、テクスチャにNULLを設定するとそのステージ
以降が無効になる仕様だが、ARG2については何も書かれていないので未定義かも。

460 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 19:27:31 ]
>>459
なるほど。ARG2がテクスチャ、かつNULLなときに後のテクスチャを参照してくれていたのは
GeForceが「たまたま」そう定義していたからであったわけですね。
気をつけます。

ちなみにそこに気をつけるよう改良してみましたが、1番目の「・テクスチャーの表示がおかしい」は相変わらずです。


461 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 20:04:30 ]
>>460
それもなんかおかしいんじゃねぇの?w
基本的にnVidiaのボードは確かに未定義や
おかしな部分を変な風に救っちゃう設定だからRADEONで開発したほうがいいぜ
俺も開発のときにnVidiaのボード使ってて苦労した

462 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 20:16:19 ]
>>459
知らなかったw

463 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 20:24:29 ]
固定シェーダの恐怖だな
nVidiaとその他一部のボードでは動くんだけど
それ以外ではうんともすんとも言わないとかいう状況がありえる恐怖
(納期まで一週間とかいう状況ではじめてRADEONで動かして画面真っ黒になったときは血の気が引いたw)
HLSL使うようになってからそういう苦労は一応消えた

固定シェーダ止めるとこの辺はグッと楽になる

464 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 20:27:22 ]
>(納期まで一週間とかいう状況ではじめてRADEONで動かして画面真っ黒になったときは血の気が引いたw) >
いやあああああああ

465 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 21:05:12 ]
>>461
なるほど、とりあえずRADEONの購入は検討してみます

>>463
それは血の気が引きそうですね
私も公開するゲームを作っているので、なるべくRADEONにも対応したいところです
全てHLSLで書くのも検討していますが、「・テクスチャーの表示がおかしい」の件は、HLSLを使った描画の部分でも発症しているので困ったものです…

466 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 21:47:12 ]
DirectXの勉強をはじめたいのですがもう固定機能パイプライン?は無視してHLSLとかプログラマブルな
シェーダーの勉強を始めたほうがいいのでしょうか?

467 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 21:55:47 ]
自分の開発環境がプログラマブルシェーダに対応しているなら、そっちのみでいいと思われる。
VertexShaderは最低でもソフトウェアエミュレートができるし、
PixelShaderにしてももう対応していないグラボなんて存在しないと思っていい。




でもオンボは対応してねーんだよなぁ('A`)



468 名前:466 mailto:sage [2008/05/16(金) 21:58:34 ]
MSのカンファレンスでもらったVS2008スタンダードにGe7900gs、OSはXPです。
固定機能はさすがにいいですかね。

469 名前:466 mailto:sage [2008/05/16(金) 21:59:39 ]
ありがとうございました。

470 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:03:59 ]
皆さんノートPCのことも考えてあげてください
もしくはこの世から全てのオンボードPCを破壊してくださいマジでもう

471 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:15:54 ]
>>452
vc++2008ではまんまではコンパイルとおらなかったので、DInput.cppの

63行目 ret = DirectInput8Create(hinst,DIRECTINPUT_VERSION,IID_IDirectInput8,(void**)&lpDInput,NULL);
115行目 ret=lpDInput->EnumDevices(DI8DEVCLASS_GAMECTRL,InitJoystickInput,lpDInput,DIEDFL_ATTACHEDONLY);

に修正してコンパイルとおしたんだけど、126行目がfalseを返してくるの。


472 名前:453 mailto:sage [2008/05/16(金) 22:29:39 ]
色々アドバイスありがとうございました。

>・固定シェーダの挙動がおかしい
この件ですが、RADEON上だけでなく、GF上でもREFモードだとうまく表示できませんでした。
>>459さんのアドバイスがクリーンヒットだったようで、気をつけながら直したところ、REFでも綺麗に表示されるようになりました。
RADEON上でpTexture1が乗算されるようになったようです。
(ただし、pTexuter1自体がバグっているため、乗算はされたものの、おかしなテクスチャが乗算されています)

今後はREFモードでちょくちょくチェックしながらやっていきます。


現在は、RADEON使いと連絡がとれなくなってしまったため、
「・テクスチャーの表示がおかしい」については後日また調査して、報告します。
どうしても治らない場合はまた相談させていただくかと思いますが、その時はよろしくお願いします。

473 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:36:29 ]
お疲れさん
ちゃんと報告してくれる質問者は歓迎だぜ

474 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 23:08:47 ]
ウホッここを覗いててよかった
ラデオン買ってくる

475 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 07:41:55 ]
>>471
DIrectX 7以下じゃないと動かないよ
8にするなら全部書き換えろ

476 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 07:49:36 ]
>>448
Dinput.hに
#define DIRECTINPUT_VERSION 0x0700
を追加


477 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:09:42 ]
関係ないけど、DirectInputってウイルスバスターが不正変更で〜って怒るとない?
お兄さんたちはどうしてるのかな?



478 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 20:12:54 ]
あ、あれってDirectInputのせいなんだ。。。

僕の作ったソフトも怒られるから気になってたけど。。。

479 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 16:32:53 ]
ウイルスバスターはDirectInput使うと怒るのね
友人にテストしてもらったら
「不正な変更とか出る ウイルスだろこれ?」
とか言われたお

ネットワーク対応ゲームでも作ろうかと思うんだが、
DirectPlay使うのとWinSock使うのとどっちがいいんだろ
DirectPlyaはWinSockに比べるとダメだという話をよく聞くけど
どこがどうだめだかよくわかんね
手軽に実装するならDirectPlayのほうが楽そうにも感じる
そこら辺詳しい人いませんか?

480 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 17:25:02 ]
あんま詳しくないが、TCP使えないらしいお。
そういった制限があるから、やっぱ「お手軽通信」なイメージはある。
Winsockは、アプリケーションが使うTCP/IPの基本かつ全てだから
DirectPlayに出来てWinsockに出来ないことはない。
そういう意味だとオモ<Winsockに比べるとダメ

本当にTCPが使えないのなら、オンラインRPGには無理なだ。

481 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:00:21 ]
今右ドラッグで3Dオブジェクトを回転させるのをやっていて、とりあえず
D3DXQuaternionRotationYawPitchRoll(&q,マウスのX変移,マウスのY変移,0);
とやってそれっぽい動きにはなってるんですが、どうもメタセコとかと操作感が違うんですよね。
ドラッグ開始時にXYの回転軸を作って、それに対する回転てやりたいんですが
何使ったらいいですか?

482 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:11:10 ]
>>481
RotationYawPitchRollは角度が非常に小さければ任意軸周りの回転に
近い動きをするが、本来は全く違うもの。
マウスの移動量とZ軸で外積を取って、その軸周りの回転を使う。

483 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 18:20:19 ]
>>482
親切にありがとうございます。意味はなんとなく分かるんですが、頭がついて来れなくて・・・
で、それはZ回転が起こらない場合にのみ使えるんですよね?多分(今回はそれでもいいですが)

484 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 19:57:07 ]
>>479
色んな通信に対応しすぎてて、初期化が遅いのが一番の不満かな<Play
といってもPlay使ってたのはDirectX7の頃だから、改善されてるかもしれんが。

WinSockなら全ての通信を自分で把握できるのが強み。

485 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 20:27:13 ]
>>484
DirectPlayは廃止されて久しい。
WinSockを叩くのが一番無難で楽しい。

486 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 20:32:54 ]
WinSockだとセッションとかのゲーム的な概念がないから
そこらへんも全部自分で実装しなきゃならないんだよね?
WinSockのネットゲームで使えそうなお手ごろサンプルがあるといいんだけど

487 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 03:08:12 ]
質問です。
DirectXを使って2Dゲームを作ってみようと思ってMSDNのリファレンスを見ていたところ、
CreateVertexBuffer()で頂点バッファを作ってLockとUnLockの中で頂点を処理していました。
ですが、別のホームページにはこれらを使わずに描画してるページもありました。

2Dの場合はCreateVertexBufferを使わずに描画したほうがいいのでしょうか?
それともCreateVertexBufferを使わなくても描画出来るという解釈でいいのでしょうか?



488 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 03:22:35 ]
別にどういうやり方しても構わないよ。
ただ、
・頂点バッファをビデオメモリ上、AGPメモリ上に作ると描画が速い
・が、そういう場所に作った頂点バッファをLockするのは重い(ビデオカードの処理を止めるから)
・システムメモリ上に作った頂点バッファのロックなら遅くない(多分。)が、
 それは頂点バッファ作らない方法と同じこと。ビデオカードから遠いので描画は遅い

毎フレーム書き換えるような頂点配列なら、システムメモリに置くか
頂点バッファ使わずにやるのがのがいいんじゃないかと。
検証とかしたことないので間違ってたら指摘ヨロ

489 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 03:26:37 ]
チラシの裏にでも書いてろ

490 名前:487 mailto:sage [2008/05/19(月) 03:43:14 ]
>>488
なるほど、どっちの処理が重いかで使い分けるといいみたいですね。
ありがとうございます。

491 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 10:26:00 ]
>>488
追加⇒DYNAMICとDISCARDフラグを組み合わせると描画もLockも速いがメモリを食う。

492 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 13:56:52 ]
>>489
なるほど、チラシの裏ですね
よくわかりました

493 名前:472 mailto:sage [2008/05/19(月) 19:22:45 ]
色々アドバイスいただいた>>453です。
>>459さんのアドバイスによる修正のおかげか、RADEON上でも綺麗に表示されたそうです。
ありがとうございました。

D3DTSS_COLORARG1 にTEXTURE
D3DTSS_COLORARG2 にCURRENT
なるべくこうするのが吉。というわけですね。
大抵の初心者サイトがこうしている一方、時々は逆も見かけるようです。
他の人が同じ失敗しませんように…。

494 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 19:35:23 ]
チェックしたら見事に失敗してたわ
SDKをもう一回全部読み直したほうがいいかもなー・・・

495 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 20:06:53 ]
演出について質問
キャラが地面に着地した際、演出として着地点のまわりに衝撃波を立てたいと思っています
例えるなら、牛乳の入ったコップに牛乳を一滴おとした時にできる、王冠のようなものです

こういう演出はどのようにして実装するのが良いでしょうか?
今まではボーンアニメまでしかやったことがないのですが、モーフィングという技術のほうがより良さそうな気がしています

496 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 23:56:15 ]
>>495
スケーリングで十分

497 名前:487 mailto:sage [2008/05/20(火) 00:09:01 ]
>>492
調べてみたら動的に確保したメモリを静的に確保したように見せるとのことだったんですが、
これはVRAMとAGPメモリに確保して同期させるという解釈でいいのでしょうか?



498 名前:487 mailto:sage [2008/05/20(火) 00:09:52 ]
すいません>>492ではなく>>491でした

499 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 01:53:49 ]
>>497
昔はそうなんだが、現在のVGAだと諸々の理由でシステムメモリを介したコピーを
行っているものが多いので、動的な頂点バッファはほとんど意味を成さなくなっている。
経験で言うならシステムメモリよりも頂点バッファを使う方がパフォーマンスが高くなる
傾向があるのは確かだが、大半は大した性能差があるわけでもないし、
そもそも適切に扱うためのフラグ設定が頂点バッファはわかりにくいので、
個人的にはシステムメモリ(DrawIndexPrimitiveUP等)で実装することをお勧めする。

2Dスプライトの実装なんぞDrawPrimitiveのバッチ処理さえしておけば
それ以上は深く考えんでも良いと思うぞ。

500 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 08:28:59 ]
AGPメモリを使うか否かで動的なデータは速度に大差が出るぞ

501 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 12:44:39 ]
非同期で処理させるかの違い

502 名前:デフォルトの名無しさん [2008/05/20(火) 19:02:00 ]
まあ、自分のゲームでやってみるのが一番
つーのは想定している状況によりけりって感じだから
なんでも使える汎用ルーチンなんて作ろうと考えないで状況に応じて対処したほ


503 名前:487 mailto:sage [2008/05/20(火) 20:53:38 ]
>>499-502
2Dの処理にそこまで考える必要はないけど、
詳しく知りたい場合は自分のゲームで実装して調べたほうが早い、とのことなので、
時間に余裕があるときに調べてみたいと思います。
色々ありがとうございます!

504 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:17:01 ]
環境にもよるんじゃないか

505 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:49:34 ]
WinSockだとポート空けるのをユーザー側に頼まなければならないので
UPnP対応してるDirectPlayつかうことにしたぽ

506 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:42:13 ]
UPnPの対応はDirectPlayに頼らなくても簡単に出来るぞ

507 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:55:18 ]
>>506
www.bosuke.mine.nu/neta/upnp.shtml
これためしてみたけどルータがふるくてだめだった
しかしDirectPlayだとポート開放しなくても通信できる

もっといい方法があるならおしえてくださいませ



508 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:56:06 ]
Direct3D9.0のデバイスロストからの復帰で
・D3DPOOL_DEFAULTのテクスチャ解放
・D3DXFONTのOnLostDevice()呼び出し     この2つは順番適当
・D3DXSpriteのOnLostDevice()呼び出し

   pDevice -> Reset(&Param);

・D3DXSpriteのOnResetDevice()呼び出し
・D3DPOOL_DEFAULTのテクスチャ確保
・D3DXFONTのOnResetDevice()呼び出し     この2つは順番適当
・レンダーステートの回復

てやってるんだけど、画面真っ暗です。これ以外に何やるんでしょう?
あと順番に決まりはあるんでしょうか?

509 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:03:40 ]
>>508
確保したリソースの解放をちゃんとしましょう。
Debug Runtimeでエラーメッセージの確認をしましょう。

510 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 20:30:26 ]
>>506
ひょっとして upnp.h とか使うの?
ネット探しても具体的なやりかたが乗ってるところがないのが困る

511 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:15:17 ]
>>510
ttp://www.bosuke.mine.nu/neta/upnp.shtml
おもくそ有名なサイトがあるわけで
ぐぐろうよ

512 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 00:12:19 ]
お前は空気読め

513 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 02:01:13 ]
「頂点ベースの描画」という言葉の意味がよく分かりません
対になるものは何でしょうか?

514 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:48:56 ]
ポリゴンで描画(3つの頂点)で描画と思ったらいいんじゃね?
ポリゴン2個で四角形になるお

515 名前:513 mailto:sage [2008/05/22(木) 16:53:09 ]
>>514
知識不足ですみませんが、そうでない描画の方法があるのでしょうか?

516 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 16:56:14 ]
つーか、「ポリゴンで描画で描画」ってなんだよ。

517 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 17:25:02 ]
そもそも
「頂点ベースの描画」なんて聞いたことがない



518 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 17:28:55 ]
>"ポリゴンで描画で描画"との一致はありません。
>"頂点ベースの描画"の検索結果 1 件中 1 - 1 件目 (0.14 秒)
>"頂点ベース" の検索結果 約 148 件中 1 - 10 件目 (0.24 秒)

519 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 17:59:10 ]
頂点シェーダーでライト当てるかピクセルシェーダーでライト当てるかって事でないん?
そのくらいしかない気がするんだが。

520 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 19:50:11 ]
>>513
どこで頂点ベースって聞いたんだよ?

>そうでない
DirectDrawのスプライト描画のことじゃね?

さいきんのゆとりはDirectX7以前を知らんのか

521 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 19:50:44 ]
ポリゴンで描画の間違い

522 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:30:57 ]
そもそもDirectXにスプライトなど存在しない

523 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 22:39:14 ]
ジオメトリベースド
イメージベースド

524 名前:508 mailto:sage [2008/05/22(木) 23:22:56 ]
バックバッファの解放と確保
ステンシルの解放と確保も付けたんですが、まだPresent(0,0,0,0)がD3DERR_DEVICELOSTを
出してきます。何が足りないんでしょうかT-T

525 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:27:27 ]
それは作った本人にしかワカリマセン。

526 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:29:53 ]
POOL以外で作ったテクスチャとか頂点とか全部削除する

527 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:32:30 ]
>>526
StateBlockとかもだな。

EffecとかFontとかSpriteも中でStateBlock作ってるからロスト対策が要るけどなー



528 名前:508 mailto:sage [2008/05/22(木) 23:45:28 ]
フロントバッファは何もしなくていいんでしょうか?StateBlockは作ってるつもり
はないんですが・・・何か他に暗黙的なものがあったら教えていただけないでしょうか?

529 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:52:57 ]
スレ住人が超能力に目覚めるよりはソースを出す方が解決は早い思います。

530 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:53:04 ]
D3DX〜系のLostDevice()は全部やってる?

531 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 00:16:03 ]
DX10で作ればおk

532 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 00:17:15 ]
Resetしてないんだろwww

533 名前:508 mailto:sage [2008/05/23(金) 00:43:08 ]
>>528ソースのみですか?関係ないクラスを除いた抜粋でいいですか?
>>530フォントとスプライトなら呼んでます。
>>532Resetからの返り値も出力してるので多分大丈夫だと思います・・・

534 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 00:53:32 ]
ResetはPresenがD3DERR_DEVICELOST以外を返した後の話だから関係なくね?

535 名前:508 mailto:sage [2008/05/23(金) 00:58:54 ]
ttp://ccfa.info/cgi-bin/up/src/up19318.zip
なんかいろいろ言われそうで怖い・・・よろしくお願いします。

536 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 12:09:02 ]
現在、大学3年でシェーダーの勉強をしています。
それで、データの可視化の研究をしてみたいと思うようになったのですが、シェーダーの出番ってありますか?
無駄になるのもなあと思っているのですが。
OpenGLも少し勉強したことはあったのですが、可視化の分野はどちらを使ったほうがいいでしょうか?
また、仮にシェーダーを使う場合、どのような研究のネタがあるでしょうか?

537 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 13:04:30 ]
どう可視化したいのかも書かずに質問とな?



538 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 13:10:17 ]
と言うか、綺麗に見せたきゃ使うような物だからあんまり意味なくね?

539 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:29:49 ]
>>535
common.h無いいわれるお
できればプロジェクトもあげてほすぃ
デバッグしやすい

540 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 15:47:51 ]
関係ないが Graphics::drawSprite のBegin End の対応がおかしい

541 名前:508 mailto:sage [2008/05/23(金) 19:03:13 ]
>>539
ttp://ccfa.info/cgi-bin/up/src/up19342.zip
プロジェクトはBCCのしかなかったので、ついてません。申し訳ないです。
>>540
多分治ってると思います(?
C++と窓とDirectX同時に勉強してたんで、拙いところがたくさんありますが

542 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:08:12 ]
現在ブロック崩しを製作中なのですが、もし「20個あるブロックがなくなったら」という状況を表現するために下記のように打ったら、「error C2106: '=' : 左のオペランドが、左辺値になっていません」とエラーが出ました。
どうすればいいのでしょうか。

if(block1==0&&block2==0&&block3==0&&block4==0&&block5==0&&block6==0&&block7==0&&block8==0&&
block9==0&&block10==0&&block11=0&&block12==0&&block13==0&&block14==0&&block15==0&&
block16==0&&block17==0&&block18==0&&block19==0&&block20==0)

543 名前:デフォルトの名無しさん [2008/05/23(金) 23:12:19 ]
すいません、正式に言うと「ブロックがなくなったら」ではなく、「ブロック変数がゼロになったら」でしたね

544 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:25:17 ]
block11=0

545 名前:508 mailto:sage [2008/05/23(金) 23:26:17 ]
よくこの釣り間違い探しをやるな

546 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:26:42 ]
>>544
intした名前が「block11」だったのがまずかったってことですか?

547 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:40:00 ]
>>546
マジで言っているならプログラミングなんてやめて旅にでも出ることをお勧めしておく。



548 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:42:28 ]
>>547
今気がつきました=が一つしかありませんでしたね
初歩的なミスでした

549 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:43:40 ]
もっと根本的に変数使いすぎ
配列など、別のアプローチを考えれ

550 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:46:02 ]
いやあ、恥ずかしいです…

551 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:48:11 ]
配列はおろか、ブロックの数をカウントするカウンター作ったほうがいいだろ…。あとここDirectXスレ…

552 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 23:51:29 ]
おっとここはDirectXスレだったな
釣られちまったぜ

553 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:25:59 ]
>>545
誰もやってない悪寒。
少なくとも俺はソースがあまりにひどかったので1度動かして消した。

554 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 11:40:55 ]
この前RADEONだと色々厳密という話しがでたので、RADEON買って来て試してみた
今まで遊びで作ってたほとんどのゲーム、まともにうごかねえw
色々見直そう

555 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:02:08 ]
Radeon、Geforce両方をDebugRuntimeでチェックするのがベスト。
nVidiaのドライバーは空気を読見すぎるのが困る。
しいていうならタグが変でも一応見れちゃうIEと手厳しいネスケの違いみたいなもんか。

556 名前:508 mailto:sage [2008/05/24(土) 12:18:10 ]
>>553
545のは直上の人に言った言葉です
ていうか、特に何がやばそうでしたか?

557 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:05:57 ]
>>556
まずアプリの終了時にバックバッファ解放してないだろ。
Getしたものは全部Releaseしろ。

あとSDKいれてるならDebugRuntimeで試せ。
それなら終了時に解放してなかったりD3Dエラーが出たときにデバッガで落ちるようになる。



558 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:31:53 ]
CComPtrマンセー

559 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:51:30 ]
俺はこんな感じでやってるわ

class ICallbackDeviceReset
{
public:
ICallbackDeviceReset();// std::setでつくられたグローバルリストに登録
virtual ~ICallbackDeviceReset();// std::setでつくられたグローバルリストから解除

virtual OnLostDevice()=0;
virtual OnResetDevice()=0;
};

デバイスのロスト>リセット時に呼び出されたいクラスは、このクラスを継承するようにすれば
自動的に呼び出されるようになる。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<247KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef