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


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

DXライブラリ 総合スレッド 2008



1 名前:名前は開発中のものです。 mailto:sage [2008/10/25(土) 17:37:53 ID:BCFbbKco]
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。

DXライブラリの詳細ついては
homepage2.nifty.com/natupaji/DxLib/
を参照して頂きたい。

DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

過去スレ:DXライブラリ 総合スレッド
      pc11.2ch.net/test/read.cgi/gamedev/1197468399/

121 名前:名前は開発中のものです。 mailto:sage [2008/11/16(日) 17:43:53 ID:fHnaEgZY]
タイマー待ちを使うんならVsync待ち無しのScreenFlipじゃないと
ティアリングは発生しないけど動きが凄いガクつくぞ
ADVみたいに動きの少ないゲームならそれでも良いと思うけど、
STGやACTでは見るに耐えない

122 名前:名前は開発中のものです。 mailto:sage [2008/11/16(日) 18:33:07 ID:H38ODQJJ]
60Hzに合わせれば60Hzの環境なら結局タイマーでウェイトしないから問題ないよ。
75Hzの環境なら60fpsに制限されるから多少はガクつくけどこれはトレードだね。
ちなみに3Dモノとか海外のゲームはfpsを出来るだけあげて垂直同期しないっていうのが主流みたい。

>>121みたいにfps制限はするわ垂直同期しないわっていうのは愚の骨頂。
ティアリングするわfps制限されてるわでひどいもんですわ。

123 名前:名前は開発中のものです。 mailto:sage [2008/11/16(日) 21:17:57 ID:gVsDrcFZ]
>>102-103
ガッ

124 名前:名前は開発中のものです。 mailto:sage [2008/11/16(日) 21:57:20 ID:fHnaEgZY]
>>122
なんでそんなに相手を見下したような態度なの?

>60Hzに合わせれば60Hzの環境なら結局タイマーでウェイトしないから問題ないよ。
それはわかってるよ
だから最初にリフレッシュレート測って垂直同期主体にするかタイマー同期にするか判断するんでしょ?
121はあくまでfpsとリフレッシュレートが一致していない場合の話

>75Hzの環境なら60fpsに制限されるから多少はガクつくけどこれはトレードだね。
ここで122の言うとおり垂直同期とるかとらないかはプレイヤーの好みの問題
オプションで選択できるようにすべきだと思う

>ちなみに3Dモノとか海外のゲームはfpsを出来るだけあげて垂直同期しないっていうのが主流みたい。
そうだね。3Dモノは可変fpsと相性良いよね。

>>121みたいにfps制限はするわ垂直同期しないわっていうのは愚の骨頂。
垂直同期をとらないことで手軽に入力に対するレイテンシを下げることができるし、
リプレイを取る目的でfpsを固定しなければならない場合もあるんだから、
短絡的に愚の骨頂というのはどうだろう

122的には60fps固定+垂直同期してない東方緋想天は愚の骨頂?
俺はそうは思わないけど・・・

125 名前:名前は開発中のものです。 mailto:sage [2008/11/16(日) 22:50:57 ID:5RilDqvE]
2Dシューティングを過去いくつか作ってきましたが、
リプレイ周りの実装も含めて、やっぱりFPSは60に固定でロジックを組みますよ。
オプションで「Vsync待ちをするかタイマーか」を選択させてます。
124さんもリプレイの話をしているから、そういう前提で言ってるのだと思うのですが。


126 名前:名前は開発中のものです。 mailto:sage [2008/11/16(日) 23:07:43 ID:xtMr6+ch]
リプレイって別にFPS固定必要ないような
入力があったキーとその時の経過フレーム数があればいいんだし

127 名前:名前は開発中のものです。 mailto:sage [2008/11/16(日) 23:30:59 ID:0yDeWpwc]
おまいら もちつけよ.

128 名前:名前は開発中のものです。 mailto:sage [2008/11/17(月) 01:36:47 ID:GetktCW+]
>>124
何そのゲーム。>東方なんたら
最悪だね〜。

>>126
だよねぇ。

129 名前:名前は開発中のものです。 mailto:sage [2008/11/17(月) 03:32:51 ID:qWlXMT4E]
なんだ釣りか



130 名前:名前は開発中のものです。 mailto:sage [2008/11/17(月) 18:51:51 ID:TAngTg8T]
なんだこんなすばらしいスレがあったのか>>1

131 名前:名前は開発中のものです。 mailto:sage [2008/11/17(月) 21:49:06 ID:E1tboJG/]
DXライブラリで作った横スクロールアクションのソースってどこかに転がってない?

132 名前:名前は開発中のものです。 mailto:sage [2008/11/17(月) 22:00:58 ID:tSUha7RY]
転がってるって・・・
作者の好意で公開してるソースをそんな言い方するなよ

133 名前:名前は開発中のものです。 mailto:sage [2008/11/17(月) 22:04:49 ID:Zhr1hzWJ]
ニコニコで一時話題になった、しかけが外道なスーパーマリオもどきはソース公開してたと思う

134 名前:125 mailto:sage [2008/11/17(月) 22:57:25 ID:pxmPH9a8]
>126
たしかにそうですね。
ただ、自分の場合は、FPSを固定すればあとはキー入力さえきちんと記録できていれば
リフレッシュレートが違えどもリプレイがずれることがないのでそうしていました。



135 名前:名前は開発中のものです。 mailto:sage [2008/11/17(月) 23:31:08 ID:OriaVhLm]
移動量固定方式か、経過時間による移動量計算方式かで
やり方も違ってくるんじゃないかな。

136 名前:名前は開発中のものです。 mailto:sage [2008/11/18(火) 13:05:35 ID:FZcPiuDy]
>>133
しょぼんのアクション だっけ?
やっと1−1クリアだと思ったのに愕然とした記憶がある。

137 名前:名前は開発中のものです。 mailto:sage [2008/11/19(水) 13:43:13 ID:xnzA6xl6]
DirectXのバージョンを9に移行するらしいね

138 名前:名前は開発中のものです。 [2008/11/19(水) 14:54:42 ID:TpPgoKXn]
>>133
あれはやばいです
あれはほんとうに・・やばい・・。
この道10年のベテランですらあれを見ると悶絶して悶え死ぬレベル。
あのソースを読んだあの日、私は自分の人生について考えさせられました。

139 名前:名前は開発中のものです。 mailto:sage [2008/11/19(水) 15:08:39 ID:lxkh5WN5]
そんなにすばらしいのか



140 名前:名前は開発中のものです。 mailto:sage [2008/11/19(水) 15:11:10 ID:Lz0a0oQh]
思わず3回DLし直す位のレベル

141 名前:名前は開発中のものです。 [2008/11/19(水) 18:41:54 ID:TpPgoKXn]
あれは伝説のソースですよ

142 名前:名前は開発中のものです。 mailto:sage [2008/11/20(木) 23:58:11 ID:UIc9LZep]
DLしてみたが・・・凄まじいソースだな

143 名前:名前は開発中のものです。 mailto:sage [2008/11/21(金) 00:08:16 ID:AZA6fSH/]
俺のソースも似たようなもんだなw

144 名前:名前は開発中のものです。 mailto:sage [2008/11/21(金) 00:14:35 ID:IPu5qEL0]
汚いコード書ける奴って尊敬するわ
むしろ逆に頭良いと思う

145 名前:名前は開発中のものです。 mailto:sage [2008/11/21(金) 00:46:35 ID:PFCyKir9]
部屋が汚くても気にしないやつがいるのと同じ

146 名前:名前は開発中のものです。 mailto:sage [2008/11/21(金) 05:06:26 ID:0gMw7+uw]
fatalita.sakura.ne.jp/Software/cuirpgfordq3.lzh
これもマジキチ

147 名前:名前は開発中のものです。 mailto:sage [2008/11/21(金) 05:58:28 ID:VvYw+mZM]
>>146
これはアイテム4つで実装力尽きるw
配列すら使ってないとかやべぇ

でもスレチ

148 名前:名前は開発中のものです。 mailto:sage [2008/11/21(金) 12:55:25 ID:3m8CIP+t]
BASIC覚えたての頃、そんな風にGOTO文メインでテキストアドベンチャーゲームを作ったなあ…。
それにしてもその作者はDXライブラリ3Dの作者なの?
なんか色々考えさせられるな…。

149 名前:名前は開発中のものです。 mailto:sage [2008/11/21(金) 15:36:28 ID:ELcxKG7H]
でもスレチ



150 名前:名前は開発中のものです。 mailto:sage [2008/11/21(金) 19:40:33 ID:yD9XL+v+]
自分のスパゲティソースを晒す勇者はおらんのか・・

151 名前:名前は開発中のものです。 mailto:sage [2008/11/21(金) 21:42:08 ID:FU8hvFU5]
さらしてどうすんのよw

152 名前:名前は開発中のものです。 mailto:sage [2008/11/22(土) 22:21:51 ID:j0m39ynA]
タイピングゲーム作ってるけど疲れてきたぜ。
ゲーム一本完成させるって難しいな。

153 名前:名前は開発中のものです。 mailto:sage [2008/11/23(日) 02:26:12 ID:YAgqgFQm]
完全体になる前にリリースすればいいじゃない(マリー

154 名前:名前は開発中のものです。 mailto:sage [2008/11/23(日) 02:27:42 ID:Ef5lma7p]
プログラム歴3ヶ月おれもタイピングゲーム作ってます
プログラム練習としても面白いジャンルのような気がします
がんばりましょう

155 名前:名前は開発中のものです。 mailto:sage [2008/11/23(日) 14:21:16 ID:bJorsnCE]
>>153
俺知ってるよ
そういうのをあじゃいるって言うんだよね

156 名前:名前は開発中のものです。 mailto:sage [2008/11/23(日) 17:55:00 ID:pnQpCtQf]
画面全体をぼかしたいのですが、どうすればいいのでしょうか?

SaveDrawScreen()で画面全体を保存した後に、
その画像を加工して表示するという方法を試しましたが、遅くてとても使えませんでした。
ちなみに手順は
保存→加工→保存→表示です。
加工と二回目の保存の処理の間がとても遅かったです。

直接DXライブラリで描画してる画像をぼかせばもっと早くなると思うのですが、
DXライブラリで直接ぼかす方法がさっぱりわからりません。
どういう方法でぼかせれるのでしょうか?

157 名前:名前は開発中のものです。 mailto:sage [2008/11/23(日) 20:09:39 ID:YAgqgFQm]
ブレンドモードを上手く使えばどうにかなるんじゃなかろうか。
昔、モーションブラーもどきを自分で作ったが細かいやり方は忘れた。

158 名前:名前は開発中のものです。 mailto:sage [2008/11/25(火) 00:31:59 ID:xYyBQpV1]
>156
そのまま画像を描画

αブレンドを適当に128くらいに指定してxy数ドットずらして描画×数回…

こんなのでどう?

159 名前:157 mailto:sage [2008/11/25(火) 20:03:29 ID:5UMAw8SP]
>>158
ああ、そうそう。
そんな感じでできると思う。たぶん。
ずらし量やブレンド率でぼけ足上手いこと調整してどうにかする。
関数化できたら楽そうだ。



160 名前:名前は開発中のものです。 mailto:sage [2008/11/25(火) 22:23:11 ID:VmASE6nW]
>>157-159
いろいろとありがとうございます。
アドバイスのおかげで、それらしいのはできました。
縦には動かしていないのですが、とりあえずそれっぽい動作はします。
ソースは以下の通りです。

private void GraphOff(int dot,int graphHandle)
{
for (int i = 0; i < 640 / dot; i++)
{
DrawGraph(i * dot - 640, 0, graphHandle, 0);
DrawGraph(640 - i * dot, 0, graphHandle, 0);
}
}


これでまた問題が出たのですが、この処理非常に重いです。
FPS30固定にしているのですがこれをするとFPS10〜15になります。
軽くする良い方法は何かないでしょうか?



161 名前:名前は開発中のものです。 mailto:sage [2008/11/25(火) 22:39:54 ID:MBrRa9Zc]
640 / dot ←この計算をfor文の前にやって適当な変数に代入しておく

162 名前:名前は開発中のものです。 mailto:sage [2008/11/25(火) 23:02:53 ID:EDWbdjkC]
>>160
i < 640/dot

i < 160/dot
くらいにまで下げてみる


ぼかすのがゲーム上そんなに大事じゃなかったら
このくらいで妥協するのが一番

163 名前:157 mailto:sage [2008/11/26(水) 02:18:18 ID:eTjv2Xnv]
>>160
そんなに回数要る?
dotの値がいくら位で何回位描画しているのかとか、コードの意図とかちょっとわからんので
↓とどっちのコードの方が性能良いのかよくわからんけど…

int times = 4;//描画回数:4〜16推奨
int gap = 2;//ギャップ:1〜4推奨。残像拳のような効果を狙うなら大き目に。
SetDrawBlendMode( DX_BLENDMODE_ALPHA , 32 ) ;//描画回数×ブレンド率=128〜256推奨

for (int i = 0; i < times; i++){
DrawGraph( i*gap - times*gap, 0, GHandle, 0);
DrawGraph( times*gap - i*gap, 0, GHandle, 0);
}

164 名前:名前は開発中のものです。 mailto:sage [2008/11/26(水) 04:53:23 ID:mqCcsZAV]
>>160
本当に速度が必要で、それなりのクオリティーが欲しいなら
LoadSoftImage関数とLoadSoftImageToMem関数を使うといいかもしれない。

自分は近頃、DXライブラリまったく触ってなかったから、どんなもんか
わからんが、説明を読む限りではこっちの関数で処理して
GraphHandleをつけて、表画させる方が高速みたいだし・・・・・

165 名前:名前は開発中のものです。 [2008/11/27(木) 05:33:03 ID:9lHdy+ss]
DXライブラリとは直接関係ないのですが、

DXライブラリとかの関数を変な使い方すると、めっちゃ重くなったりして(コンパイルエラーが出るわけではない)、
上手く扱わないとたとえ数百行のプログラムでさえ上手く動かないのに
市販されてる3Dゲームとかだとそれこそ想像もつかない量のプログラム書いてると思うんですが
それを全く重くならないように作るというのはまさに神の所業としか思えないんですが・・・
やはり職人的なひとはそれほどすごいってことでしょうか?
それとも単にまだ自分が未熟なだけでしょうか?

なんか抽象的な質問ですみません。

166 名前:名前は開発中のものです。 mailto:sage [2008/11/27(木) 07:22:55 ID:UFJsiMGy]
>>165
普通に使っている分には問題ないと思うけど…
コード量も関係ないし。
メインのループ(秒間30〜60回くらい回しているとこ)の外で1回やれば済む処理を
ループの中で毎回やってたりしてない?
例えばグラフィックハンドルへの画像の読み込みを毎回やっているとか。

167 名前:名前は開発中のものです。 mailto:sage [2008/11/27(木) 12:05:54 ID:tLRoJzh6]
DXライブラリもよっぽど変な使い方しない限りめっちゃ重くはならんでしょ。
そりゃまぁPCの性能にもよるけど。

市販されてる3Dゲームとかは、俺はヘボプログラマだからそれこそ神の領域にしか思えないけど
同じ市販ゲームでも、すごいグラフィックなのに軽快なのとか、やったらもっさりして重いのとかあるから
そこらへんはプログラマの腕次第でしょ。

凄腕のプログラマは極限まで無駄な処理を省いてるんだと思う。

168 名前:名前は開発中のものです。 mailto:sage [2008/11/27(木) 17:02:45 ID:HwZNU9zJ]
メモリの1バイトは血の一滴ですね

169 名前:名前は開発中のものです。 [2008/11/27(木) 18:56:41 ID:9lHdy+ss]
>>166-167
なるほどサンクス・・・
確かに無駄に繰り返してるかもしれない・・・。



170 名前:名前は開発中のものです。 mailto:sage [2008/11/27(木) 20:46:39 ID:GnzSYpCC]
フォントのサイズ変更とかと勝手に予想

171 名前:名前は開発中のものです。 mailto:sage [2008/11/27(木) 22:41:46 ID:LOD/UyCK]
>>161-164
ありがとうございます。
回数がご指摘の通り多すぎました。
>>157のコードと併用して、思っていたぼかしができました。
コードは私の作成したコードと>>157のコードを関数化しただけなので省略させていただきます。

172 名前:名前は開発中のものです。 mailto:sage [2008/11/27(木) 22:48:28 ID:tLRoJzh6]
フォントのサイズ変更はしゃれにならんほど遅いからな……。
別フォント用意すりゃいいことだが。

173 名前:名前は開発中のものです。 [2008/11/28(金) 05:15:28 ID:10isJ4oY]
SetWaitVSyncFlag(FALSE);

にしたらドラゴンボールの世界になってワロタ


174 名前:名前は開発中のものです。 mailto:sage [2008/11/29(土) 16:25:44 ID:BtMciNRd]
PlayMusic関数で再生位置の指定ってできないの?

175 名前:名前は開発中のものです。 [2008/11/29(土) 22:48:46 ID:kaHILOZB]
>>101

いますぐ昔の再放送の刑事ドラマやドラマの
事務所シーンを見るんだ!!!


パソコンのディスプレイあるだろアレみるとわかりやすい

176 名前:名前は開発中のものです。 mailto:sage [2008/11/30(日) 02:55:10 ID:Kx1+nHAm]
>>175
あれ今見るとなんでそう見えるか理解出来るな
タイヤが逆回転して見えるのとかも

177 名前:名前は開発中のものです。 [2008/12/01(月) 09:18:57 ID:PQmt2oZj]
3Dでゼルダみたいなゲーム作りたいんだけど
DXライブラリ(3D)で完璧に作ったのと
DirectXで完璧に作ったのだったら動きのサクサクさにどれくらい差が出るのかな?
PCの性能は結構良いのでそれは関係なく
個人的にはマリオ64くらいのクオリティーは出したいと思ってるんだけど
始めての大型ゲームなんで全く想像付かない

178 名前:名前は開発中のものです。 mailto:sage [2008/12/01(月) 09:51:01 ID:Mqk5OkvC]
3Dのゼルダってまんま64とGCのゼルダじゃね?

179 名前:名前は開発中のものです。 mailto:sage [2008/12/01(月) 10:23:13 ID:PQmt2oZj]
はい



180 名前:名前は開発中のものです。 mailto:sage [2008/12/01(月) 16:53:55 ID:B+fc1nCX]
DirectXで作るって言ったってどうせ自分でラッピングするんだから一緒だと思うぞ

181 名前:名前は開発中のものです。 mailto:sage [2008/12/01(月) 16:57:45 ID:Mqk5OkvC]
>>177
そのプロセッサ専用のライブラリを熟知してれば
サクサク動くゲームになる

例えばPS2ならEEとかのベクトル計算のためのライブラリの仕様とか
windowsマシンにはそんな計算機能はデフォルトじゃついてないから
どうしてもグラボ依存になる

182 名前:名前は開発中のものです。 mailto:sage [2008/12/02(火) 00:02:20 ID:zbFv8Mtr]
int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP, LPSTR lpc, int nC){
  ChangeWindowMode(TRUE);
    SetDrawScreen(DX_SCREEN_BACK);

while(ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0){
   ClsDrawScreen();
    〜〜
   ScreenFlip();
}
}

↑こう書いたとき、〜〜 の部分の処理が毎回変わるモノだった場合でも、よほど〜〜の処理が長くならない限り、
ScreenFlip()があることによって、画面に出力される周期は〜〜の処理時間によらない、と考えていいんでしょうか?

なんか説明下手ですみません・・・。  たとえば、指数関数的に動く物体を作りたいとして、
〜〜の部分を「毎回n=n+1して、x^nの位置に画像を出力」という内容にしたとした場合、
ループが来るたびにnが増えるからx^nの計算の処理が多少だんだん増えていくと思うのですが、
もしその処理時間も画面出力に影響してしまったら、動きが時間の正確な指数関数にならないと思うのですが、
『ScreenFlip()によって、「処理が終わっても、規定時間δtが来るまでは画面出力しない」という仕組みが加わってるので、
処理時間に影響せず一定時間ごとに画面出力される。 ただし、もちろん 処理時間の方がδtを超えてしまったら、重くなるという別の影響は出てくる。』
というものだと解釈していいのでしょうか?

(すみません。アク禁中の代レスなので、返事できないかもしれません。)

183 名前:名前は開発中のものです。 mailto:sage [2008/12/02(火) 08:48:55 ID:jLo5RDUc]
どうでもいいがProcessMessage()の場所が俺の好みじゃなかった。
本文は読んでいない。

184 名前:名前は開発中のものです。 mailto:sage [2008/12/02(火) 08:53:50 ID:l3NK/S0H]
SetWaitVSyncFlagがFALSEで無い限りは

185 名前:名前は開発中のものです。 mailto:sage [2008/12/02(火) 09:50:01 ID:ptyOGcVX]
リフレッシュレートに依存する。

186 名前:名前は開発中のものです。 mailto:sage [2008/12/02(火) 21:13:42 ID:xSROB0kK]
x^nの計算なんか描画処理に比べたらほんの一瞬

187 名前:名前は開発中のものです。 mailto:sage [2008/12/02(火) 22:13:19 ID:g62jpxUX]
そういやCを独学でやってて最初に詰まったのがべき乗計算だったなw

188 名前:名前は開発中のものです。 [2008/12/03(水) 05:14:23 ID:Ts8WjI0J]
>>153
#include <stdio.h>
#include <windows.h>
void main (){
int cell=0,jinzo18=2,jinzo17=2,tensinhan=25,seimeiryoku=1;
int hikinobasi=0;
cell+=jinzo17;
for(hikinobasi=0;hikinobasi<30;hikinobasi++){printf("おお\n"); SleepEx(200,TRUE);}
printf("天津飯「まずい17号を吸収しやがった・・・チャオズ俺は死ぬかも知れない\n");SleepEx(2000,TRUE);
printf("セル「天津飯!!雑魚が何をするつもりだ!」\n");SleepEx(4000,TRUE);
printf("天津飯「新気功砲!!ハー」\n");SleepEx(200,TRUE);
printf("セル「(゚Д゚)ぬお!\n");SleepEx(200,TRUE);
while(tensinhan>0){
printf("セル「<`Д´>おのれー」\n");SleepEx(200,TRUE);
printf("天津飯「(; ゚Д゚)ハァー!」\n");SleepEx(500,TRUE);
tensinhan-=seimeiryoku;}
printf("天津飯「化け物め・・・・うう・・・・」\n");SleepEx(5000,TRUE);
printf("セル「むううう」\n");SleepEx(1000,TRUE);
printf("セル「こんな雑魚に足止め食らうとは」\n");SleepEx(4000,TRUE);
cell=jinzo17+jinzo18;
for(hikinobasi=0;hikinobasi<100;hikinobasi++){printf("おお\n"); SleepEx(50,TRUE);}
printf("完全体セル「すばらしい力だ 諸君!!」\n");
SleepEx(10000,TRUE);
}

189 名前:名前は開発中のものです。 mailto:sage [2008/12/03(水) 05:38:32 ID:ecRDRm37]
同一内容の文字列を毎フレーム表示する処理があり、

空のサーフェスを作成 → 一旦バックバッファに文字列を描画 → バックバッファから空のサーフェスに文字列の画像を取得

こうして予め文字列を描画しておいたサーフェスから
毎回メイン処理でDrawGraphしているのですが、どうもスッキリしません。
しかもGetDrawScreenGraphの説明にもある通り透過色が使用出来ません。
DXライブラリでは作成したサーフェスに直接描画出来ないのでしょうか?
やりたい事は「同じ文字列を毎フレーム描画する処理を軽くしたい」だけなのですが、
文字グラフィックファイルを用意することは出来れば避けたいので、良い方法があったら教えて下さい1




190 名前:189 mailto:sage [2008/12/03(水) 05:45:19 ID:ecRDRm37]
無駄に長くて分かり難くなってしまいました。
(例えば説明文等の)同一の文字列を毎フレーム描画する処理を軽くしたいが
文字グラフィックファイルを用意する以外で良い方法があったら誰か教えて下さいです。

191 名前:名前は開発中のものです。 mailto:sage [2008/12/03(水) 09:09:23 ID:Zrkeui/r]
DrawStringで十分軽いと思う
フォントハンドルを毎回読み込んだりしていない?

192 名前:189 mailto:sage [2008/12/03(水) 17:18:45 ID:ecRDRm37]
>>191
お返事遅くなって申し訳ありません。
当方の環境ではDrawStringでやった場合のFPSが30くらいでDrawGraphにすると60になりました。
DirectX自体、文字描画にGDIを使っているのでビデオカードで処理できるBitBltの方が高速だと思っていました。数年前の知識ですが。。
低スペックでも快適に動くように作りたいので、DrawStringは極力使いたくないです。

193 名前:189 mailto:sage [2008/12/03(水) 17:29:14 ID:ecRDRm37]
フォントの変更は行っていないので、フォントハンドルは使用していないです。

194 名前:名前は開発中のものです。 mailto:sage [2008/12/03(水) 18:07:17 ID:o+fnXJLe]
そんなにたくさんの文字を同時に表示してるのかな?
それともPC環境が悪すぎる?

俺普通にDrawString使ってるけど別に遅くなった事ないよ?
普通に60FPS出てる。古いノートパソコンで。
最高でまぁ10行程度の表示しかしてないけど。

195 名前:名前は開発中のものです。 [2008/12/03(水) 18:30:58 ID:JlppSG1I]
いやそれじゃ全くテストになってないから。
192の知識通り、今も文字列表示は遅いよ。
189の方法が適切だと思うし、他に方法を提示できないのは申し訳ないけど、
少なくとも文字列表示が遅いって前提でレスされると無駄だと思ったので口を出してみた。

196 名前:名前は開発中のものです。 [2008/12/03(水) 18:37:18 ID:JlppSG1I]
×少なくとも文字列表示が遅いって前提でレスされると無駄だと
○少なくとも文字列表示が遅いって前提を否定するレスは無駄だと

197 名前:名前は開発中のものです。 mailto:sage [2008/12/03(水) 19:17:52 ID:o+fnXJLe]
俺の事?
別にテストしたわけじゃなくて、普通に使ってるだけなんだが。

文字列表示が遅いってのが前提なら、そもそもグラフィック表示だって遅いだろ。

グラフィック表示が遅いから他の方法はありますか? って質問があったとしたら
まず現在どういう環境でどれだけのグラフィックをどういう方法で表示させてるのか教えろってのは普通の流れだろ?

そこをかっとばしてグラフィック表示処理そのものを早くする方法を考えるのは無駄な話だ。

198 名前:名前は開発中のものです。 mailto:sage [2008/12/03(水) 19:27:15 ID:zxrZF3eH]
確かに
今与えられた情報だけではなんともいえんな

199 名前:名前は開発中のものです。 mailto:sage [2008/12/03(水) 19:41:02 ID:RJPTfL79]
文字列の長さ、量がまずわからない。

「フォントの変更は行っていない」というのが、フォントの大きさやアンチエイリアス有無の変更は行っているかもしれないとも読める。



200 名前:名前は開発中のものです。 [2008/12/04(木) 00:31:01 ID:jlPFeEOB]
>>197
文字列表示はグラフィック表示より遅いって常識知らないの?
そこは議論の余地なしだから言ったまで。
それと、テストじゃないなら>>194の報告は不適切。
まあ上記の前提を知らなかった故だからしかたないと言えばしかたないが、ややこしくなるのでなかったほうがよかったな。

情報は少ないが、前提を知っているば容易に共感できるし、解決方法を知っている人ならこの情報量でも回答できるかもしれない。

201 名前:名前は開発中のものです。 mailto:sage [2008/12/04(木) 00:33:46 ID:GF73/yq8]
>>197
>文字列表示が遅いってのが前提なら、そもそもグラフィック表示だって遅いだろ。

(;^ω^)

202 名前:名前は開発中のものです。 mailto:sage [2008/12/04(木) 02:05:10 ID:z7drhJqc]
何人か偉そうにレスしてるけど、誰もライブラリのソース見てないのか?

DXライブラリは文字を描画する前にテクスチャにキャッシュしてるから
同じ文字なら2回目以降はほぼDrawGraphと同じコストで処理は完了する
キャッシュ用のテクスチャは512x512だから画面一杯に異なった文字を
描画するくらいしない限りは文字列描画特有の遅さは発生しないぞ

まあ、毎フレームキャッシュに無い文字を描画したら一般に言うところの
「文字列表示が遅い」ってのに当てはまるけど

203 名前:名前は開発中のものです。 mailto:sage [2008/12/04(木) 09:46:46 ID:ggjOtlxc]
良スレage
みなぎってきた、学校でゲーム作ってくる

204 名前:名前は開発中のものです。 mailto:sage [2008/12/04(木) 10:33:56 ID:763fKCgi]
>>200

何を言ってるんだ君は。
60FPSで動いてるゲームに、一回のDrawString処理を追加しただけで30FPSにまで落ちたりするか?
普通はしないだろ?

じゃあどういう処理にしてるんだ? っつーレベルの話だぞ?

192が出してる情報はその程度って事。

205 名前:名前は開発中のものです。 mailto:sage [2008/12/04(木) 12:47:01 ID:GF73/yq8]
>>204
>>202

分からない(・∀・)カエレ!!

206 名前:名前は開発中のものです。 mailto:sage [2008/12/05(金) 18:06:46 ID:YY5q+8z/]
ソフトウェア描画モードと言う物があるらしいのですが、
どれのことなのでしょうか?
一部のPCだと動かなかったりする時にこれを使えばいいらしいのですが……。
リファレンスを見た限りそれっぽいのがありませんでした。

207 名前:名前は開発中のものです。 mailto:sage [2008/12/05(金) 18:19:39 ID:MN0oAg79]
この辺をどうぞ。
ttp://www.dkut.flnet.org/dxlibwiki/?3D%B5%A1%C7%BD%A4%F2%BB%C8%A4%A6%A4%AB%A4%C9%A4%A6%A4%AB%A4%F2%A5%E6%A1%BC%A5%B6%A1%BC%A4%CB%C1%AA%C2%F2%A4%B5%A4%BB%A4%EB

208 名前:名前は開発中のものです。 mailto:sage [2008/12/05(金) 20:49:20 ID:YY5q+8z/]
>>207
ありがとうございます。
SetScreenMemToVramFlag( FALSE );
と、
SetUse3DFlag( FALSE );
を使ったらよさそうなのでこの二つを使ってみようと思います。

209 名前:名前は開発中のものです。 mailto:sage [2008/12/06(土) 03:56:27 ID:5bnbt+Lt]
>>204
垂直同期を使って処理していれば僅かな処理の遅さでFPSは半分になることがある
そしてGDIは遅い

>>189はDrawStringを使用せずに同等の文字描画処理をする方法を模索しているであって
デバッグをしてくれと言っているわけじゃないんだから君がムキになるのは頓珍漢な話
俺を含め解決策が分からない初心者が回答することが間違い



210 名前:名前は開発中のものです。 mailto:sage [2008/12/06(土) 04:17:22 ID:MshHJhkd]
俺もよくわからないけど、>>189

>DXライブラリでは作成したサーフェスに直接描画出来ないのでしょうか?

と明確に聞いてるぞ。
それを初心者が関係ない知ったか話をしてるとしか見えない。
「俺は平気だよ?」とか言う話もいらないと思うww

>>202もヒントになると思うけど多分新しい文字列を頻繁に表示しようとしてるんじゃないかな。
毎フレーム更新される数値を表示するって事も多いと思うし。

211 名前:名前は開発中のものです。 mailto:sage [2008/12/06(土) 06:11:31 ID:VA5mVjgv]
ファイナルファンタジーの裏ワザででてくる
数字ゲームとかあれ作ると面白そう

212 名前:名前は開発中のものです。 mailto:sage [2008/12/06(土) 09:55:12 ID:DCsCuBVu]
ブラックジャックといいたまへ

213 名前:名前は開発中のものです。 mailto:sage [2008/12/06(土) 11:21:34 ID:gOAp6PdO]
>>189は「同じ文字列」って書いてるじゃないか。
まあ任意のオフスクリーンバッファに描いてそれを転送したい、というのはわかるが
できる機能を追加するかDXライブラリをやめるしかないのでは。

214 名前:名前は開発中のものです。 mailto:sage [2008/12/06(土) 16:48:54 ID:KujsLoK9]
クリックイベントを使いたいのですがどうすればよいのでしょうか?
公式などにクリックイベントのコードがなかったのでここで質問させてください

215 名前:名前は開発中のものです。 mailto:sage [2008/12/06(土) 17:16:43 ID:t9JSHoeE]
SetWaitVSyncFlagをFalseにしておいて、16666マイクロミリセカンド待機し描画

↑で描画すると30フレームあたりまで落ちるんですが、SetWaitVSyncFlagをFalseにしてても同期するってあるんでしょうか?

待機を16200にすると60フレームになるので、同期でひっかかってるんだと思うのですが……

216 名前:名前は開発中のものです。 mailto:sage [2008/12/06(土) 17:19:10 ID:KujsLoK9]
自己解決しました

217 名前:名前は開発中のものです。 mailto:sage [2008/12/06(土) 20:30:15 ID:JBa6ugiY]
なんだったのよw

218 名前:215 mailto:sage [2008/12/07(日) 18:55:49 ID:OyZdJ9xq]
すいません、こちらも自己解決しました……

219 名前:名前は開発中のものです。 [2008/12/08(月) 00:25:32 ID:2qR4Oo16]
Cの入門書見てる段階なんですが、DXライブラリでのゲーム製作講座を見てみたら、
C言語というより、DXライブラリ言語でのプログラミングという印象を受けました。
DXライブラリを使ってプログラミングする場合は、
Cのほうは入門書を一通り読んだだけの知識でよくて、
あとはDXライブラリの使い方をきちんとやるほうがいいんですよね?



220 名前:名前は開発中のものです。 mailto:sage [2008/12/08(月) 00:31:03 ID:A0APKyuo]
Cも一通りの知識は要るだろうから
平行して勉強しなはれ。

221 名前:名前は開発中のものです。 mailto:sage [2008/12/08(月) 00:55:25 ID:FYgRMyd9]
いやいや
もろCで作ってるよ
printfが絵を表示する関数になるだけ






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

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

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