- 1 名前:名前は開発中のものです。 [2009/08/09(日) 21:55:50 ID:TrjuCGgx]
- Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、 「DXライブラリ」に関するスレッドです。 DXライブラリに関するテクニックなどの情報交換などを行う事で、 多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。 【公式】 homepage2.nifty.com/natupaji/DxLib/ 【過去スレ】 DXライブラリ 総合スレッド pc11.2ch.net/test/read.cgi/gamedev/1197468399/ DXライブラリ 総合スレッド 2008 pc11.2ch.net/test/read.cgi/gamedev/1224923873/ DXライブラリ 総合スレッド その3 pc11.2ch.net/test/read.cgi/gamedev/1238429676/
- 2 名前:名前は開発中のものです。 mailto:sage [2009/08/09(日) 21:59:02 ID:9DTU34Ts]
- >>1乙
- 3 名前:名前は開発中のものです。 mailto:sage [2009/08/09(日) 23:44:46 ID:yLk0K061]
- 戻15/990:名前は開発中のものです。[sage]
2009/03/31(火) 18:20:23 ID:3yX1QyX+ 116 名前: 名前は開発中のものです。 Mail: sage 投稿日: 2009/02/07(土) 16:18:41 ID: Pn1Dl7Zh アフォBlog C言語勉強したけどゲーム作れないぞコラって人向けに afoafodayo.blog84.fc2.com/blog-entry-549.html やっとみつけた はてなブックマークの検索性の悪さは異常・・・ --- 以下スレ情報 --- DXライブラリ 総合スレッド その3 (990) pc11.2ch.net/test/read.cgi/gamedev/1238429676/
- 4 名前:名前は開発中のものです。 [2009/08/10(月) 01:28:46 ID:x4cP5rNi]
- クラスで挫折した
- 5 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 01:37:49 ID:bFMOlul4]
- もうクラスなしじゃ生きていけない
- 6 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 01:51:32 ID:QAwN9V2J]
- ライブラリと関係ない話をすんなとは言わねーが、C言語そのものを使い慣れてない
レベルの質問は勘弁してくれ ここはC言語初心者質問スレじゃねーから
- 7 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 07:42:59 ID:61l6TBny]
- >>4
もっと頑張れよ 俺も1回挫折して再度勉強し直したけど使える道具が増えていろいろ記述が楽になったから ちゃんと苦労なりの見返りはあると思うよ
- 8 名前:名前は開発中のものです。 [2009/08/10(月) 08:38:41 ID:ejPisMfv]
- 4じゃないけど、俺もクラスはよくわからん。
というかなぜそういう事をする必要があるのか、 ゲーム製作においてどういうメリットがあるのか、 どういうときに使うと便利なのか、 が解らないから、なかなか頭に入らない。
- 9 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 08:59:13 ID:QAwN9V2J]
- ・リソース解放処理をデストラクタに書くと楽
・何個も実体を作るような構造体を扱う場合、構造体へのポインタを関数に渡すよりも、 勝手に*thisを作って内部的に同じことをしてくれるクラスの方が楽
- 10 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 09:05:04 ID:bFMOlul4]
- >>8
俺もポインタとか必要になるまでよくわからなかったし、 必要になれば覚えるもんだよ 「あ! 今やりたいことコレ使えばできるじゃん!!」 って気づいた時の喜びといったらもうね
- 11 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 10:16:45 ID:EzwBEj6R]
- フンドルワラタ
- 12 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 10:52:15 ID:QAwN9V2J]
- フンドレの人はマジでC言語初心者スレとか探した方がいいな
- 13 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 10:58:48 ID:HlYTjnic]
- 自動リソース管理
ポリモーフィズム これだけでも覚える価値あり ポリモーフィズムはすごいゲームと相性いいしね
- 14 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 12:31:05 ID:xD0qaraW]
- >>10
分かる分かるw 俺もまさにそうだ。 きっかけはリプレイ機能付けたいな、だったかしら
- 15 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 15:24:33 ID:Ug4ZM9mI]
- 俺もクラスよく分からんのだが
STGの弾作るときに便利だと聞いた 今から弾処理だから勉強してみる予定
- 16 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 16:52:41 ID:QAwN9V2J]
- structとclassは全く同じ。classはデフォがprivateになっただけの構造体。
メンバ関数は、隠れ引数として構造体へのポインタ*thisがこっそり付いただけ。つまり、 以下の二つは大体同じ意味のコード。 // Cっぽい版 struct vector2d { float x, y; }; inline void rotate_vector2d(vector2d *this, float theta) { vector2d old = *this; this->x = old.x * cosf(theta) - old.y * sinf(theta); this->y = old.x * sinf(theta) + old.y * cosf(theta); } // C++版 struct vector2d { float x, y; void rotate(float theta) { // vector2d *this は隠れ引数として勝手に入る vector2d old = *this; x = old.x * cos(theta) - old.y * sin(theta); // メンバ変数アクセスは勝手にthis->が入る y = old.x * sin(theta) + old.y * cos(theta); } }; 仮想関数は、派生クラスの仮想関数へのポインタ一覧vtblが隠れグローバル定数として 用意されてて、派生クラスの実体にはvtblへのポインタであるvptrが隠れメンバ定数と してくっついてる。で、仮想関数を呼ぶ時はvptrを通して参照する。 thisと違って、vtblやvptrには普通は触れない。触る必要も無いし。 クラスの仕組みはこんなもん。あとは使い方次第。 コンストラクタには変な仕様が色々くっついてるから覚えた方がいいけどな。
- 17 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 16:55:28 ID:++6V/igm]
- うまく使えば
new Bullet( this, // 親は自分で RAD(270), //270度方向に 10, //1フレーム10pixelで動く GROUP_FRIEND //味方の弾 ); //を作るよ! ってできて楽しいだけ。
- 18 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 17:08:08 ID:jE6nNtzy]
- こういうの見せられると、
「俺って実はプログラム全然できてないんじゃないか」 と思うなぁ。 一応ゲームはできてるんだけどねw
- 19 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 17:16:17 ID:QAwN9V2J]
- 完成品が一つも出てこないよりはいいんじゃね?
- 20 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 17:28:46 ID:++6V/igm]
- DxArchiveのソース見てたら単にファイル格納&暗号化じゃなくて圧縮&暗号化だったんだな
各APIでも読み込めるしかなり使いやすいな
- 21 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 18:10:02 ID:91ixwnBP]
- DxArchiveのエンコードとデコードをプログラムからやる方法教えてください
- 22 名前:名前は開発中のものです。 mailto:sage [2009/08/10(月) 18:22:48 ID:g7oYbweh]
- つ homepage2.nifty.com/natupaji/DxLib/dxtec.html#T11
- 23 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 00:22:51 ID:y+GUJ2eW]
- クラスが便利なことを実感するのは2個目のゲームを作るときだと思う俺ガイル
自分でつくったものをブラックボックス的に使いまわせるってすごい便利
- 24 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 00:36:49 ID:ubRnnBVT]
- 必要性を感じないなら無理にクラスを使う必要はない。
重要なのはクラスを使うことではなく分かりやすいプログラムを書くこと。 分かりやすいプログラムを追及していくとおのずとオブジェクト指向/クラスへと向かっていく。
- 25 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 01:14:30 ID:F+5v/k7H]
- ちゃんと最後に かもしれない とつけてくださいね
- 26 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 02:11:06 ID:L7W3nnsg]
- なんだそりゃ
どうしても抽象化できない病気とかならともかく
- 27 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 02:47:06 ID:E0sSKTbh]
- クラス勉強したいなー
ってことで俺は今、クラス化している。 それくらいの動機でもいいよね?
- 28 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 02:56:03 ID:hi68lz2+]
- いいんじゃないかな<動機
便利な使い方が分かると、楽しくなってくる、、、と思う
- 29 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 03:53:37 ID:Ev9Wt5wN]
- >>22
たとえばオリジナルのセーブデータをDxArchiveで暗号化して保存することってできますか?
- 30 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 04:21:17 ID:E0sSKTbh]
- >>29
ソースが公開されているように見えるが
- 31 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 09:51:42 ID:kbSEr/35]
- ファイル分割して関数書いて、で綺麗に片付くならそれでいい。
クラスに包む方が綺麗に片付くところは、クラスを使えばもっといい。 使い分けが適切ならさらにいい。
- 32 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 12:46:59 ID:88dfSPXH]
- 同じようなゲーム作りたくないから
クラスが役に立ったことはほとんど無いな 描画系関数はかなり再利用するから ファイル分割して綺麗に関数をまとめた分にはかなり役に立つ
- 33 名前:名前は開発中のものです。 [2009/08/11(火) 13:15:45 ID:jm9PqIPM]
- たとえばどんな関数をつかいまわすの?
- 34 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 13:25:12 ID:bYgbIZyE]
- モザイクかけたりボカシかけたりシャープにしたり
ノイズ入れたり回転させたりセピアにしたり
- 35 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 13:36:49 ID:jm9PqIPM]
- よくわからないけどそういうのって関数一つにできるもんなの?
Mozaiku(x1,y1,x2,y2)みたいに?
- 36 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 13:38:13 ID:88dfSPXH]
- うん
- 37 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 13:48:11 ID:jm9PqIPM]
- いったいどうやって?画面情報を取得して、CPUのほうで計算して上から貼付けたりするの?
- 38 名前:名前は開発中のものです。 mailto:sage [2009/08/11(火) 13:49:48 ID:88dfSPXH]
- うん
- 39 名前:名前は開発中のものです。 mailto:sage [2009/08/12(水) 13:04:35 ID:/zSclh+b]
- シーンをクラス化する利点がよくわからなくて
switch文で頑張る俺
- 40 名前:名前は開発中のものです。 mailto:sage [2009/08/12(水) 14:01:46 ID:3OGNII1m]
- if-eilse if-elseでもswitchでも関数ポインタテーブルでも仮想関数でも普通に書ける上で
switchが総合的に見て一番いい状況だからswitchで頑張る、ならそれでいい
- 41 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 01:13:11 ID:u+NBJI2f]
- 組み方によっては、シーンを追加するたびにシーン管理のコードを変更しなきゃならないからなあ。
せっかくライブラリっぽくしたのに、いちいち弄らされるのは面倒だ。 そこがクリア出来るなら何でもいい。
- 42 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 02:32:38 ID:tx0/U4pP]
- キャラクタを白く点滅フラッシュさせるためには
それ用にマスク画像を用意しないとできないかな?
- 43 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 02:49:29 ID:wLlGHcGf]
- 少なくとも俺は、同じ事をしようとした時、それしか解決策を思いつかなかった。
- 44 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 03:37:12 ID:uVGvNX64]
- SetDrawBrightで輝度値設定してやるとか
- 45 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 03:54:30 ID:wLlGHcGf]
- いや、SetDrawBrightだと最高100%までしか輝度あげられなくて、
その100%ってのは、画像そのまんま表示って事なのよ。 つまりSetDrawBrightは暗くはできても明るくはできない。
- 46 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 04:13:42 ID:uVGvNX64]
- SetDrawBright(0,0,0);//暗く
SetDrawBlendMode(DX_BLENDMODE_INVSRC);//反転 とするのはどうかな
- 47 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 07:09:05 ID:fyRM2WT2]
- それだけZバッファを適用して、きつくした白いフォグを適用させるって冗談みたいな方法もあるぞw
- 48 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 09:08:42 ID:hlVZHvkF]
- 武器とか魔法のデータってどうやって管理してる?
やっぱり大本のクラスを作って継承させる感じ? DBとかでもりもり書いたほうが楽そうではあるんだけれど
- 49 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 10:27:48 ID:ymWx9+cu]
- >> 42
パレット操作
- 50 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 11:29:30 ID:FIgxQyht]
- そういやパレット操作の命令が追加されたんだっけ。
それを使って白い画像を作って、グラフィックハンドルまで用意しておけばできるはずだな……。
- 51 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 13:06:09 ID:8SGCfcLw]
- >>48
struct(構造体)を持つSTLのリストを作って、そこで管理 新しく何かを手に入れたならば、リストに新しい構造体を埋める 代入する値は手打ち、つまり長々と代入文を書く。DB化してもよいが労力は大差ない これは仲間キャラクターや戦闘の管理に向いているだろう もう1つは数値をひとつ代入するリストを作って そこに例えば武器ナンバー001番って値を入れて 必要な時に武器の威力や効果をまとめた関数を読み出す この方法は数値が絶対に変わらない武器や道具の管理に向いている 最後に、bool型のスイッチを作って、Trueなら入手した、と考える方法 この方法は魔法やイベントフラグなど、数値も数も考えない物の管理に向いている
- 52 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 22:01:59 ID:hlVZHvkF]
- >>51
ありがとう 2つ目のパターンがいいのかな どうも膨大になっちゃってたからいろいろ試してみる ありがとう
- 53 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 22:09:12 ID:LkhPG9Xp]
- 構造体の代入じゃ駄目なのかそれ
- 54 名前:名前は開発中のものです。 mailto:sage [2009/08/13(木) 23:45:36 ID:u+NBJI2f]
- テンプレで、名前や数字を変えるだけで何とかなるものと、それだけでは表現できないものと、両方がある。
武器や魔法は前者であることが多いと思う。 ダメージなどが違うだけでアルゴリズムは変わらない。回復/支援魔法なども入れても数パターンで済む。 TRPG的な魔法とかはコンピュータゲームじゃ作りにくいだろうし。 逆に、イベントなどは後者で作られる。 クラスの継承なり、関数ポインタなり、外部スクリプトなりで、イベントごとにまるっと別の処理になるだろう。 ただしその場合でも、共通データを格納する部分は、武器や魔法と同じようなテンプレ処理を利用することになるかも。
- 55 名前: ◆GRGSIBERIA [2009/08/14(金) 00:12:28 ID:FT3Wa2QE]
- >>51
戦闘で魔法を使うんならその方法でいいだろうけど、 呼び出すときに関数ポインタ使わなきゃならんから面倒くさくね? データ的には安上がりでいいんだろうけど、可読性考えると怖いなあ……。
- 56 名前: ◆GRGSIBERIA mailto:sage [2009/08/14(金) 00:19:13 ID:FT3Wa2QE]
- ごめんなさい。
二番目の話です。
- 57 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 00:50:19 ID:E9/t+ChI]
- 基本基本クラスで例外は派生クラスでいいんじゃね
- 58 名前:名前は開発中のものです。 [2009/08/14(金) 01:01:23 ID:Bq2DtYMd]
- まあ別に仕事でプログラムする以外だったら好きなようにすればいいんじゃね
- 59 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 15:49:45 ID:X3RFlmNR]
- dxライブラリがSetDrawScreenで使っているバックバッファに
dxライブラリを介さずに絵を書き加えてやる方法はないもんかな・・・ それができるだけで結構3D表示させられそうなんだが
- 60 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 16:36:31 ID:zyAixWsB]
- >>59
俺の場合3Dは行列系関数とDrawPolygon3Dで間に合ってるけど、 それって裏画面にDirectXで描画するってこと?
- 61 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 16:39:24 ID:yqfw1t8Z]
- うん
- 62 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 16:42:41 ID:X3RFlmNR]
- >>60
そそ。それでxファイルにして読み込んだ ちょっと複雑な形を描きたいのさ ちなみに直接表に描かせたら 最前面にチラつきながら描かれた。当たり前だが
- 63 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 16:44:04 ID:gSsKeH9y]
- DX3D持ってたらそれ使うのもいいかも
使ったこと無いから分からんが
- 64 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 16:45:05 ID:nG17WJCb]
- 3Dを扱うのだったら、 DarkGDKがお勧め
使い勝手は、DXライブラリとほとんど同じ。 DarkGDK wiki.game-develop.com/index.php?DarkGDK DarkGDKの3Dデモ gamdev3.hp.infoseek.co.jp/cgi-bin/up/No_0416zip.html
- 65 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 16:57:46 ID:zyAixWsB]
- DXライブラリの内部構造についてだったら公式で質問するのがいいかも
関係ないけど俺は自前でmqoファイルを読み込んでDrawPolygon3Dで表示させてる アニメーションさせないならこっちのほうが簡単な可能性も。
- 66 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 17:20:43 ID:X3RFlmNR]
- >>63-65
ありがと せっかく用意されてるんだからDrawPolygon3Dでやるのが一番かねえ 半日ぶんの作業ムダ\(^o^)/になるけどさ・・・
- 67 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 18:06:22 ID:3WJxATTy]
- そこまでやるならDirectXで全部やる手も有力じゃね
- 68 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 21:00:47 ID:29Ur8y7j]
- DXライブラリの3Dが弱いってのは周知といえば周知だからなあ
なんともいえない感じ 自分もひとつ聞いていいかな DrawFormatStringToHandleで文字出すときに文章列を垂直に描画する方法ってないものか 縦書きではなくあくまで横書きの文章を90度倒した感じでだしたいのだけれどどうだろう? いまは画像ファイルに書き起こしたものをスタブで表示してるんだがそれにも限界があるなあと思って聞いてみた
- 69 名前:名前は開発中のものです。 mailto:sage [2009/08/14(金) 23:59:27 ID:zyAixWsB]
- >>69
つDrawFormatVStringToHandle 多分コレ
- 70 名前:名前は開発中のものです。 mailto:sage [2009/08/15(土) 00:06:33 ID:6Y2Lsqny]
- ありがてえありがてえ
ヘッダ読んだらほんとにあったよ やっぱ一度読むべきかなあ ともあれサンクス
- 71 名前:名前は開発中のものです。 mailto:sage [2009/08/15(土) 00:06:58 ID:/+RAh+Ze]
- 感動した
- 72 名前:名前は開発中のものです。 mailto:sage [2009/08/15(土) 04:30:18 ID:0tJ1Sg/h]
- ヘッダ読むとドキュメント化されてないすげえ関数いっぱい紛れてるから一度は読むべきだよな
- 73 名前:名前は開発中のものです。 mailto:sage [2009/08/15(土) 05:38:43 ID:0FgKCDOQ]
- でも公開されてないって事は動作保証もされてないんでしょ?
ちょっと使うには不安だなぁ。 自分だけで楽しむモノを作るのならともかく。
- 74 名前:名前は開発中のものです。 mailto:sage [2009/08/15(土) 09:50:43 ID:0tJ1Sg/h]
- フリーのライブラリで動作保証www
- 75 名前:名前は開発中のものです。 mailto:sage [2009/08/15(土) 10:23:55 ID:ZOL661pL]
- フリーのライブラリに過度なサポートを求めるのもアレだと思うけど、
管理人はちゃんとリファレンスに載ってない関数も仕様のうちに含めてやってくれてるよ 自分で動作確認したり、ヘッダ読んだだけで用途が分かる人なら使っても問題無し。
- 76 名前:名前は開発中のものです。 mailto:sage [2009/08/15(土) 12:54:50 ID:KTR4wq9i]
- DrawFormatStringをオーバーロードしてキャストによる警告を防ぎたいんだけど
どうやってオーバーロードすればいいんでしょうか , ... ) ; ←最後のコレのせいでうまくいかない
- 77 名前:66 mailto:sage [2009/08/15(土) 22:42:39 ID:eXbOcFmf]
- ところでDXlibとは別口で用意させたバックバッファを適当なサーフェイスに写し取って、
CreateGraphFromMemでハンドル取らせてDrawGraph、というのもやってみたが やっぱりうまくいかなかった というかエラー直していく気力が尽きた
- 78 名前:名前は開発中のものです。 mailto:sage [2009/08/15(土) 23:30:18 ID:vKUvgt96]
- >>76
こういうことだろうか int DrawFormatString(double x, double y, int Color, const char *FormatString, ...) { char buf[1024]; va_list args; va_start(args, FormatString); vsprintf(buf, FormatString, args); va_end(args); return DrawString((int)x, (int)y, buf, Color); }
- 79 名前:名前は開発中のものです。 mailto:sage [2009/08/15(土) 23:45:00 ID:KTR4wq9i]
- >>78
こんな方法が…ってよくわかってないけど vsprintf→vsprintf_s で警告が全部消えてくれました ありがとうございました
- 80 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 11:37:57 ID:tL1KdmQ7]
- 3Dで描画した画面にエフェクトをかけたいんだけど、
裏画面の内容をテクスチャにコピーするか、 テクスチャにZバッファを使って3D描画させる方法は無いものだろうか……
- 81 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 16:11:57 ID:9Wblhgl3]
- >>80
ライブラリ使わない方がいいんじゃね? 専門書買ってDirectXを直接叩いた方が早いと思う ぶっちゃけゲーム性に影響出るような話じゃないし、うじうじ悩むくらいなら仕様にした方が
- 82 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 16:52:25 ID:tL1KdmQ7]
- >>81
やっぱりDXライブラリじゃ無理かなー DXライブラリだけでここまで出来るんだぜ!ってのを示すのが ゲームのコンセプトの一つだったりするんで、このまま頑張ろうと思う
- 83 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 17:17:23 ID:DZlUccKL]
- PlayMovieで動画再生できるのにサンプルプログラムのDrawGraphを使った方法では動画再生できませんどうなっていますか
- 84 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 23:45:33 ID:DZlUccKL]
- ちなみに音は再生されます。原因が分かる方いらっしゃいますでしょうか。
- 85 名前:名前は開発中のものです。 mailto:sage [2009/08/16(日) 23:52:04 ID:axVCKY3T]
- 必要なコーデックがインストールされてないとか
- 86 名前:名前は開発中のものです。 mailto:sage [2009/08/18(火) 08:42:08 ID:RhXPi4iH]
- 一切WaitTimerとかのウェイト系入れなくても60FPSで動いてるように見えるんだけどどこかで自動的に止まってるの?
止まってるとしたら完全に頼り切っていいのかな?環境によってはウェイト入らない・・・なんてことないよね?
- 87 名前:名前は開発中のものです。 mailto:sage [2009/08/18(火) 09:43:47 ID:5Sn+aO70]
- 画面の裏ページを表ページに反映するのに
ウエイトかかってると思うの
- 88 名前:名前は開発中のものです。 mailto:sage [2009/08/18(火) 09:55:18 ID:sXr4stcl]
- 環境によってはFPSが変わると思うの
- 89 名前:名前は開発中のものです。 mailto:sage [2009/08/18(火) 11:33:49 ID:00xLRELk]
- >>86
ScreenFlip使ってるんでしょ。デフォルトだと垂直同期信号待ちしてるから 多くの場合は60FPSで固定されるよ。(環境によっては無視される) ↓の命令でFALSEにしてみればノーウェイトで動くと思う。 宣言 int SetWaitVSyncFlag( int Flag ) ; 概略 ScreenFlip関数 実行時にCRTの垂直同期信号待ちをするかのフラグセット 引数 Flag : CRTの垂直同期信号を待つか否かを決めるフラグ情報 TRUE : 待つ(デフォルト) FALSE : 待たない 戻り値 0:成功 −1:エラー発生 解説 ScreenFlip関数の実行時にCRTの垂直同期信号を待つか、を 決めるフラグを設定する関数です。 基本的に待ったほうが画面の ちらつきが減り綺麗に表示されます。 この関数は垂直同期信号の意味を理解していて、その上で状態を 変更したい方だけが使用してください。 恐らく普通は変更する必要は ないと思います。
- 90 名前:名前は開発中のものです。 mailto:sage [2009/08/18(火) 13:21:27 ID:zmoiJH/s]
- 簡単だし必要な基礎知識だから、まずはティアリングとかvsyncとかでぐぐれ。
で、ScreenFlipはデフォでvsyncを取るんだが、その時に単純に待機するんで、60Hzの リフレッシュレートのモニタで垂直帰線を待つ環境だと「たまたまいい具合に」60Hzで 動作するタイマーのような副作用が出る。だが、あくまでも偶然の副作用。120Hzの CRTモニタなんかだと多分倍速ゲー。ライブラリの中身は見てないんで分からんけど、 DirectX9のPresentなんかだと描画領域が全部隠れたらノーウェイトになる。 まぁ、副作用に期待すんな、真面目に書け、ってこと。 余談だが、最近はもうほとんどvsync無視の流れ。洋ゲは元々vsync無視路線だったし、 Vista以降はOS側がティアリングの面倒も見てるっぽいんで。 だが、2Dゲーならvsyncは当分入れた方がいいだろうな。
- 91 名前:名前は開発中のものです。 mailto:sage [2009/08/18(火) 13:26:04 ID:HFc5HuZS]
- >>90
つまり「タイマー書け」ということだな 把握した
- 92 名前:名前は開発中のものです。 mailto:sage [2009/08/19(水) 21:48:34 ID:HjcmZFcs]
- ttp://pc12.2ch.net/test/read.cgi/tech/1245675989/940
の質問をここでしても良いでしょうか?
- 93 名前:名前は開発中のものです。 mailto:sage [2009/08/19(水) 21:58:48 ID:0Pez5CCG]
- >>92
見てきた int clsDx( void );の部分をclsDx();にすればおk
- 94 名前:名前は開発中のものです。 mailto:sage [2009/08/19(水) 22:11:53 ID:HjcmZFcs]
- >>93
ありがとうございます!
- 95 名前:名前は開発中のものです。 mailto:sage [2009/08/19(水) 22:52:27 ID:lo8N+aSi]
- まぁDirectXスレよりここで質問する方が正しいっちゃ正しいんだが…
ぶっちゃけ>>6だな
- 96 名前:名前は開発中のものです。 mailto:sage [2009/08/19(水) 22:54:13 ID:MeZHtU7e]
- こまけぇこたぁ(ry
- 97 名前:名前は開発中のものです。 mailto:sage [2009/08/20(木) 12:27:11 ID:/tnemE9L]
- こんにちは
DrawGraphなどの描画先を画面ではなく画像データにしたいのですができませんよね? どうしてますか?
- 98 名前:97 mailto:sage [2009/08/20(木) 12:42:59 ID:/tnemE9L]
- 画像データというか画面以外のサーフェスに描画したいということです
- 99 名前:名前は開発中のものです。 mailto:sage [2009/08/20(木) 13:16:31 ID:YSyk4xXm]
- なるほど
- 100 名前:名前は開発中のものです。 mailto:sage [2009/08/20(木) 13:35:57 ID:nEJMnXXK]
- >>98
MakeGraphとかで作ったテクスチャに描画するのなら、 SetDrawScreenでDX_SCREEN_BACKの代わりにグラフィックハンドルを指定すればできる そういうことじゃないのならわかんないや
|

|