トップページgamedev
1001コメント397KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2008/10/25(土) 17:37:53ID:BCFbbKco
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。

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

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

過去スレ:DXライブラリ 総合スレッド
      http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
0057名前は開発中のものです。2008/11/08(土) 16:18:22ID:QvZXcY8M
>56
普通に考えればそうなるんじゃないかなあ。
タイピングを必要とするソフトなんだろうか。
0058名前は開発中のものです。2008/11/08(土) 16:22:15ID:mEomuEol
>>56
KEY_INPUT_○○を全部一つの配列に入れとけばループで処理できる
KEY_INPUT_RETURNが来たときだけ別にすればいい
0059名前は開発中のものです。2008/11/08(土) 16:30:21ID:L3IthcNy
flgOn = false;
if (CheckHitKey(KEY_INPUT_RETURN) == 0)
{
flgOn = true;
}

じゃだめなの?
0060名前は開発中のものです。2008/11/08(土) 16:31:40ID:L3IthcNy
あーごめん、だめだ。 エンター押されてない かつ ほかのキーが押されてる だったね
0061名前は開発中のものです。2008/11/08(土) 16:31:51ID:jD220VQN
>>56
CheckHitKeyAll( void )を使って、キーボードの状態を監視しておいて、
何か押されたとき、CheckHitKey(KEY_INPUT_RETURN)で、
エンターが押されているかどうか判別する。
エンターが押されていなければ、エンター以外の何かが押されたことになる。
0062名前は開発中のものです。2008/11/08(土) 17:05:01ID:cnhuR5Wy
CheckHitKeyAll(void) だとマウスボタンとゲームパッドも反応するので
CheckHitKeyAll(DX_CHECKINPUT_KEY) で。

……これでもパッドが反応するんでコードチェックしたらバグだった。

DxInput.cpp:
 >// ジョイパッドのチェック
 >if( CheckType & DX_CHECKINPUT_KEY )  // DX_CHECKINPUT_PAD のはず

気になるならバグ報告して修正を依頼してください。
0063名前は開発中のものです。2008/11/08(土) 17:08:47ID:eTLcPw0w
みなさんありがとうございます。
一応タイピングのゲームです。

ループ処理をヒントに、
bool flgOn = false;
for (int i = 0; i < 256; i++ )
{
if (i != KEY_INPUT_RETURN)
{
if (CheckHitKey(i) == 1)
{
flgOn = true;
}
}
}
という風な処理にしたら、一応望み通りの動きができました。
でもバグ有りそうな予感がします。
CheckHitKeyAllを使えばもう少しスマートに書ける……のかな?
0064名前は開発中のものです。2008/11/08(土) 17:24:48ID:QvZXcY8M
タイピングゲームって言っても、使わないキーはあるだろうから
そのあたりを省いた方がいいかも
0065名前は開発中のものです。2008/11/09(日) 13:19:18ID:YyCrr7f5
KEYリテラルはビットフラグを利用してると思うから
&を使えばシンプルにすっきり書けるはずだよ。
0066名前は開発中のものです。2008/11/09(日) 15:04:32ID:wPDrFVAu
だれかDXライブラリで作ったすごいゲーム等紹介してください
0067名前は開発中のものです。2008/11/09(日) 15:37:16ID:d71QR9Rf
>>66がすごいと思うかは知らんが、
公式で紹介されてない所だと夜光蛾4とかDiadraEmptyとか。
同人系は「DXライブラリでここまで作れる」っていう良い例が多いな。
0068名前は開発中のものです。2008/11/09(日) 16:53:27ID:HksuFgRc
DiadraEmptyすげえな。
個人的にはモノリスフィア。
0069名前は開発中のものです。2008/11/09(日) 17:01:59ID:p4NI5+2s
>>66
四聖龍神録は?半オープンソースだし。
0070名前は開発中のものです。2008/11/09(日) 18:19:57ID:/7amOdfc
DXライブラリってDirectXのラッパーなんだから2Dならなんでもいけるだろ
0071542008/11/10(月) 00:04:21ID:fweGd5hJ
>>55
描画先変更できたのかーー!
こいつは便利だ

他にも見落としてる便利な関数あるかもと思って久しぶりに本家リファレンスページ見たら
”ドット単位で画像にアクセスしたい関係”ってのが追加されてて便利すぎフヒヒきゃっほう!!!11


もうひとつ質問です。DrawPolygon3Dかなにかで3D平面を、空気遠近法で表示させたいのですが
似非でもいいのでいい方法ないでしょうか
0072名前は開発中のものです。2008/11/10(月) 17:51:27ID:22QGh1G7
DrawPolygon3DのZ値を変えれば距離が変わるよ。
本家のリファレンスみたらわかるはず。
0073名前は開発中のものです。2008/11/11(火) 01:35:00ID:g6Sl8AVb
>>66
あとはゲームではないが
ウディタ(WOLFRPGエディタ)もそうだ。
0074名前は開発中のものです。2008/11/11(火) 16:04:15ID:VHeofJsH
8時から11階から目薬の企画実行移します。場所は↑のとこで。
参加者は今のとこ私の他は3人です。その後焼き鳥でも食べに行きましょう。
0075名前は開発中のものです。2008/11/11(火) 19:37:44ID:ktqf9Hz0
最近のグラボは、古いDirectXにマトモに対応しておらず
DXライブラリもその煽りを食らってるって聞いたんだけど、どうなん?
0076名前は開発中のものです。2008/11/12(水) 06:22:06ID:yL4++M3C
そうなの?
9600GT,8800GTS,6600GTの3つ使ってるけどどれも不具合出たこと無いよ。

それよりVistaでたまにおかしなことになる・・。
同じコードで動かしてもXPとVistaじゃ違う挙動することが。

一つ一つのサンプル動かしても全然違わないんだけど、
スゲー大きなプログラムを動かしてみると違いが出てくることがある。
どうしてなんだろ・・。
DX管理人さんはそんなことないって言ってるから
自分のプログラムが悪いだけかもしれんが・・。
みんなそういうこと無い?
0077名前は開発中のものです。2008/11/12(水) 08:00:35ID:10ZLablI
>>76
VISTAに最初からはいってるのはDirectX10だからね。それも中途半端な。
MSの中途半端な対応のせいでゲーム開発者はみんな迷惑してる。
DirectX9とか新しいDirectX10とかを入れてみると改善すると思う。
0078名前は開発中のものです。2008/11/12(水) 08:10:38ID:wRCT4Vg2
>>76
ビデオドライバ類が関係しているとかないかな
0079752008/11/12(水) 18:00:22ID:IPCAcIHc
グラボじゃなくてVistaってことかもしれん。
自分は持ってないんで確認できないまま適当に書いた、すまん。
0080762008/11/12(水) 20:17:02ID:yL4++M3C
DirectX10の影響はいろいろ聞くね。
今度出るwindows7だっけ?あれはどうなるんだろう・・。

>>75

VistaとXPデュアルブートするといいよ。
作ったゲーム色んな環境で試してみれる
0081名前は開発中のものです。2008/11/12(水) 20:59:00ID:IPCAcIHc
>80

2000 orz
0082名前は開発中のものです。2008/11/12(水) 22:09:52ID:10ZLablI
Windows7でMSコケたらDirectX終わってLinux+OpenGLが盛んになる予感
0083名前は開発中のものです。2008/11/13(木) 01:05:13ID:mdnPfmFM
ビスタって結局なんだったんだ・・。
なんかうちの周りだと、PCに詳しくない奴が買ってるOSってイメージがある。
そのまま終わっていくのかビスタ。
0084名前は開発中のものです。2008/11/13(木) 07:38:57ID:lJxFlB+u
諸刃の剣素人には(ry ってやつじゃない?
0085名前は開発中のものです。2008/11/13(木) 19:45:16ID:EnpEGfrm
>>83
ネットできりゃそれでいいってやつが買ってる印象だな
あとはofficeでも使えりゃ困らないしな
0086名前は開発中のものです。2008/11/13(木) 23:48:34ID:mdnPfmFM
レンダリング処理やエンコードとかしても、ビスタは遅くてしかたないよ・・。
0087名前は開発中のものです。2008/11/14(金) 00:26:08ID:5PrZBKJs
>>80
今時デュアルブートって流行らないんじゃない?
VPCとかさ。
0088名前は開発中のものです。2008/11/14(金) 01:06:10ID:71kfvXp8
今の最新技術は知らんけど、VirtualPC、VMWareは
グラフィックボード使ってなくて、CPU依存
0089名前は開発中のものです。2008/11/14(金) 01:26:37ID:ZojnRlhq
デュアルブートって流行ってるからとかでやるもんじゃないだろ
0090名前は開発中のものです。2008/11/14(金) 01:28:06ID:5PrZBKJs
どこから突っ込めばいいのか…
0091名前は開発中のものです。2008/11/14(金) 01:28:54ID:BF+CzcYi
>>90
つ*
0092名前は開発中のものです。2008/11/14(金) 13:57:39ID:foiTr96E
800*600のサイズでウインドウモードにしたいんだが、
SetGraphModeとChangeWindowModeを同時に使うと、
かなりの確率でOSごと落ちるorz
0093名前は開発中のものです。2008/11/14(金) 14:22:12ID:foiTr96E
DxLib_Initの後にChangeWindowMode置いたらフリーズしなくなった
サーセンwwwフヒヒwwwww
0094名前は開発中のものです。2008/11/14(金) 14:48:29ID:ZojnRlhq
>>93
初期化の前にウィンドウモードにした方が処理が早いよ
0095名前は開発中のものです。2008/11/14(金) 14:50:12ID:foiTr96E
初期化(DxLib_Init)の前にSetGraphModeとChangeWindowMode書くと、
うちの環境ではなぜかフリーズするんです
0096名前は開発中のものです。2008/11/15(土) 19:53:04ID:MzdFlqka
質問させてください

ゲームの速度をどのPCでも一定になるようにするために、
ScreenFlipを使う前と後の時間差を利用してる方法が本にあったのですが、
そもそもScreenFlip一回の時間はどのように決まっているのでしょうか?
0097名前は開発中のものです。2008/11/15(土) 20:12:06ID:56rIt8Hu
リフレッシュレート。

画面のプロパティ→設定→詳細→モニタ で、リフレッシュレートが確認できる。
つってもこれは俺のPC(windows2000)だから他の環境だとちょっと違うかも。
0098名前は開発中のものです。2008/11/15(土) 20:17:30ID:56rIt8Hu
補足。

ScreenFlipがリフレッシュレート通りになるのは
デフォルトで垂直同期信号待ちをしてるからであって、

「SetWaitVSyncFlag  ScreenFlip関数実行時にCRTの垂直同期信号待ちをするかのフラグセット 」

で、垂直同期信号待ちを切った場合は関係ない。

また、条件は知らないが特定の環境(うちの場合はサブのノートPC)では
垂直同期信号待ち設定にしていても、ScreenFlipで垂直同期信号待ちしてくれない場合が
ある事を確認済み。
0099名前は開発中のものです。2008/11/15(土) 20:27:43ID:MzdFlqka
>>97-98
返事ありがとう。

リフレッシュレート自体はわかったんですが
後半よくわからなかったのでちょっと調べてみます・・・。
0100名前は開発中のものです。2008/11/15(土) 20:51:40ID:56rIt8Hu
>ScreenFlipを使う前と後の時間差を利用してる方法

ってのがどんなのか判らないけど、
ScreenFlipの垂直同期信号待ちを利用した方法だとすると
前述したようにリフレッシュレートに依存するから
「どのPCでも一定の速度」にはならないよ。

リフレッシュレートを60にしてるPCと70にしてるPCではスピードが違う。

まぁそれを踏まえた上でいちばん簡単で代表的な速度を一定にする方法なんだけどね。
(つまり、リフレッシュレートが60の場合を前提としてゲームを作り、
 60以外にしてる人は60にしてからプレイしてください、となるw)
0101名前は開発中のものです。2008/11/15(土) 21:13:47ID:56rIt8Hu
垂直信号同期待ちについて、おおざっぱに説明してみようか。
俺も聞きかじりの知識だが。

最近はテレビにしろディスプレイにしろ、液晶が主流で「薄型」になってるが
もしブラウン管(分厚い)のテレビなりディスプレイがあるなら、画面の前で手を振ってみるといい。
残像がぶつ切りに、ストップモーションのように見えるはずだ。

これはどういう事かというと、画面が60分の1秒に一回、点滅してるからそう見えるんだ。
(厳密には60分の1秒に画面半分)
つまり、画面が光ってる時に「手の影が見えて」、画面が消えてる時には「見えない」から
手の動きがぶつ切りに見えるわけだ。

そうやって点滅してるのに、ずっと光ってるように見えるのは残像のせい。

もっとも「眼(瞳孔)」の方は反射で動いてるから、画面が光ってる時には瞳孔が小さくなり
画面が消えてる時は瞳孔が大きくなってたりするはず。
だから画面に近づいたり、暗い部屋で画面を見たりすると極端に眼が疲れる。
0102名前は開発中のものです。2008/11/15(土) 21:24:13ID:56rIt8Hu
さて、画面が点滅してる、と言ったが、画面全体がぱっとついたり消えたりしてるわけじゃない。
ブラウン管ってのは、奥から電子ビームを画面に向けて照射して、その部分のみを光らせてるわけだから
実際に光ってるのは1点のみ。(もっとも一度照射されるとしばらくは持続するらしいが)
その電子ビームの照準が、画面の左上から始まって、右端まで動き、
一段さがってまた左端から始まって右まで動き、を繰り返し、画面の右下まで進む。
つまり
┏━━━┓
┃□ぬ□┃
┃□る□┃ みたいな画面が表示されてると、それは実際は
┃□ぽ□┃
┗━━━┛

┏━━━┓
┃□ぬ□┃
┃■■■┃
┃■■■┃
┗━━━┛
┏━━━┓
┃■■■┃
┃□る□┃
┃■■■┃
┗━━━┛
┏━━━┓
┃■■■┃
┃■■■┃
┃□ぽ□┃
┗━━━┛
という感じで高速に書き換えられてるという事。
0103名前は開発中のものです。2008/11/15(土) 21:30:19ID:56rIt8Hu
ここでゲームの話になるわけだが、ゲームのキャラクターは画面上をあちこちに動く事になる。
もしこの「動く」のが前述した「画面を書き換えてるタイミング」だったらどうなる?
┏━━━┓
┃ぬ□□┃
┃る□□┃ この状態から
┃ぽ□□┃
┗━━━┛
┏━━━┓
┃□□ぬ┃
┃□□る┃ この状態からにまで移動しようとすると
┃□□ぽ┃
┗━━━┛
┏━━━┓
┃ぬ□□┃
┃■■■┃
┃■■■┃
┗━━━┛
┏━━━┓
┃■■■┃
┃□る□┃
┃■■■┃
┗━━━┛
┏━━━┓
┃■■■┃
┃■■■┃という感じになり、
┃□□ぽ┃
┗━━━┛
┏━━━┓
┃ぬ□□┃
┃□る□┃ 人間の目にはこう映ってしまう。この現象をティアリングと呼ぶ。
┃□□ぽ┃
┗━━━┛
0104名前は開発中のものです。2008/11/15(土) 21:38:19ID:zVe3F0+t
>>100
「ScreenFlipを使う前と後の時間差を利用してる方法」ってのを普通に解釈したらリフレッシュレートに依存せずに一定になるよ。
ScreenFlipの待ち時間に関係なく、1フレーム(1ループ)の差時間から移動距離を割り出せばok。
ただし、ゲーム画面がアクティブでなくても実際に時間は経過してるので、ゲームに戻るとその分進む(進んだ)ことになる。
これを回避するなら、ゲーム内で独自にインクリメントカウントを設置し、そこから移動距離を割り出せばok。
ゲームプログラミング独特の考え方だね。
0105名前は開発中のものです。2008/11/15(土) 21:40:57ID:zVe3F0+t
>>101
ブラウン管テレビは29.97fpsだよ。
0106名前は開発中のものです。2008/11/15(土) 21:41:23ID:56rIt8Hu
このティアリング(ちらつき)をさせないためにはどうすればいいか?

これが「垂直同期信号待ち」であって、つまりは
ディスプレイが画面全体の書き換えが終わるまで、
次の描画処理をしないで待ってるってわけだ。

これがScreenFlipではデフォルトで行われてる。
だからScreenFlipを使うと速度が一定に保たれる……のだが、

「画面の点滅は60分の1秒」と言ったが前述したが、これが要するにリフレッシュレートの事。
つまりこの速度をPC側で自由に変更できたりする。

リフレッシュレート60の場合はScreenFlipは60分の1秒経つまで待つわけだが、
リフレッシュレート70の場合は70分の1秒しか待ってくれない。
その分ゲーム速度は速くなってしまうわけだ。
(もしプログラム処理自体が重くて、70分の1秒で終わらなかったら
 70分の2秒、つまり35分の1秒かかるわけで、逆に遅くなる)

0107名前は開発中のものです。2008/11/15(土) 21:47:42ID:56rIt8Hu
移動距離を割り出すという方法は知ってるし理屈も解るけど、
当たり判定もそれ相応の処理にしなくてはいけないし、
そうなるとリプレイ記録&再生をどうやればいいのかわからなくなる。
そこらへんはどうやってるのかな。

ってこれはDXライブラリと関係ないか。
0108名前は開発中のものです。2008/11/15(土) 21:57:26ID:zVe3F0+t
当たり判定もリプレイ記録も問題ないよ。
でもScreenFlipの待ち時間を基準にするなんて誰もしないと思うから
あたかもScreenFlipを使うとスピードがリフレッシュレート依存になるみたいな解説はやめたほうがいいと思うよ。
0109名前は開発中のものです。2008/11/15(土) 22:29:29ID:PnDW3j7Q
画面を書き換えたときに時間を取得し、前回取得した時間と比較して、
1ループが17ミリ秒(60FPS)になるまでウェイトをかけてやればいい
これが一番簡単で確実
0110名前は開発中のものです。2008/11/15(土) 22:34:05ID:RlpGwAN3
リフレッシュレートが60のときはScreenFlip依存でいいんじゃね
それ以外はタイマで
0111名前は開発中のものです。2008/11/15(土) 23:12:07ID:56rIt8Hu
>でもScreenFlipの待ち時間を基準にするなんて誰もしないと思うから

いや、俺してたし、してるしw
0112名前は開発中のものです。2008/11/15(土) 23:32:40ID:zVe3F0+t
>>111
その話をしてるのは君だけど、実際にそれを採用してる人はいないって事だよ。

もしかして君は採用もしてるの?
だとしたら自分が長々と説明したデメリットが解消できてないよね。
それを解消したくて質問したいならそれなりの場所でそれなりの質問方法を取ればいいと思うよ。
もしそうじゃないなら誰も採用しない方法を解説されてもややこしくなるだけだから…。
0113名前は開発中のものです。2008/11/15(土) 23:41:52ID:56rIt8Hu
ティアリングが嫌だから切り替え方式にしてるます。
最初はゲーム起動時に測って自動切換えにしてたけど
それもやめて結局手動切り替えに……。
0114名前は開発中のものです。2008/11/15(土) 23:43:35ID:56rIt8Hu
切り替えってのはリフレッシュレート依存方法と、タイマでウェイトかける方法の二つね。
移動距離算出方法はやった事ないです。
0115名前は開発中のものです。2008/11/16(日) 00:40:12ID:H38ODQJJ
ティアリングとスピードは関係ないでしょう。
とりあえずDXライブラリを使うならScreenFlip()で垂直同期を待てば良いと思うよ。
スピードの話はまた別の話。

>>113
ゲーム起動時に何を測るの?
それと、切り替える必要性が見えないんだけど・・・?
0116名前は開発中のものです。2008/11/16(日) 01:43:29ID:Hwka3oLK
>>115
>ゲーム起動時に何を測るの?

ScreenFlipを一秒間繰り返して、その回数で判断。
>>98で書いたけど、垂直同期信号待ちをしてるはずなのに
ScreenFlipで待ってくれない場合があるから、
FPS値が異常に高かったらそうだと判断して
タイマー値によるウェイトかけるようにしてた。

>それと、切り替える必要性が見えないんだけど・・・?

それはどっちを基準にして?

ScreenFlipを基本として考えるなら、リフレッシュレートが変更された場合や
上で書いた垂直同期信号待ちしてくれない環境の時に異状スピードになってしまう。

タイマ値でウェイトかける場合は、やっぱりティアリングが気になるし、
1フレームごとに点滅するエフェクトとかがきちんと点滅しなくなる。
0117名前は開発中のものです。2008/11/16(日) 02:40:28ID:H38ODQJJ
>>116
えっと、だからね、ScreenFlipとティアリングは関係あるけど、
それらとウェイトは関係ないって事だよ。

ゲーム起動時にScreenFlipの待ち時間からリフレッシュレートを判断してるようだけど、
それも結局ScreenFlip基準でタイマー取る方式だよね。
てことは例えば60Hzを基準にウェイトをかけるって事だよね。
だとしたらはじめからリフレッシュレートのウェイトなんかに頼らずに、
マルチメディアタイマーででも1/60sを基準にコードを書けばいいでしょ?
だから起動時に測る必要もないし、リフレッシュレートの変更やVsyncを待たない場合は考慮しなくていいの。
繰り返すけど、タイマーでウェイトかけてもScreenFlipを使うならティアリングはないよ。
0118名前は開発中のものです。2008/11/16(日) 03:40:07ID:Hwka3oLK
何か齟齬がある気がする。

タイマでウェイトかける場合は、ScreenFlipのVsync待ちはOFFにしてあるんだけど、
それでもティアリングは発生しない?

んじゃ発生してる俺のプログラムは何か間違ってるのか。

理屈上、1/60sを基準にウェイトかけるようにすれば
ゲームスピードは一定になるが、タイミング次第で
ティアリングが発生しない状態か、
あるいはティアリングが発生し続ける状態が
維持されるものだと思っていたのだが。

0119名前は開発中のものです。2008/11/16(日) 04:22:31ID:H38ODQJJ
Vsync待ち、かつ、タイマーで制御するんだよ。
これを前提に最初から読み返してみて。
0120名前は開発中のものです。2008/11/16(日) 14:59:43ID:Yf+kFgNP
ScreenFlipもやって、1/60secも待って、ってやらないと一定にならないし、ちらつきも解消されないよ。
0121名前は開発中のものです。2008/11/16(日) 17:43:53ID:fHnaEgZY
タイマー待ちを使うんならVsync待ち無しのScreenFlipじゃないと
ティアリングは発生しないけど動きが凄いガクつくぞ
ADVみたいに動きの少ないゲームならそれでも良いと思うけど、
STGやACTでは見るに耐えない
0122名前は開発中のものです。2008/11/16(日) 18:33:07ID:H38ODQJJ
60Hzに合わせれば60Hzの環境なら結局タイマーでウェイトしないから問題ないよ。
75Hzの環境なら60fpsに制限されるから多少はガクつくけどこれはトレードだね。
ちなみに3Dモノとか海外のゲームはfpsを出来るだけあげて垂直同期しないっていうのが主流みたい。

>>121みたいにfps制限はするわ垂直同期しないわっていうのは愚の骨頂。
ティアリングするわfps制限されてるわでひどいもんですわ。
0123名前は開発中のものです。2008/11/16(日) 21:17:57ID:gVsDrcFZ
>>102-103
ガッ
0124名前は開発中のものです。2008/11/16(日) 21:57:20ID:fHnaEgZY
>>122
なんでそんなに相手を見下したような態度なの?

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

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

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

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

122的には60fps固定+垂直同期してない東方緋想天は愚の骨頂?
俺はそうは思わないけど・・・
0125名前は開発中のものです。2008/11/16(日) 22:50:57ID:5RilDqvE
2Dシューティングを過去いくつか作ってきましたが、
リプレイ周りの実装も含めて、やっぱりFPSは60に固定でロジックを組みますよ。
オプションで「Vsync待ちをするかタイマーか」を選択させてます。
124さんもリプレイの話をしているから、そういう前提で言ってるのだと思うのですが。
0126名前は開発中のものです。2008/11/16(日) 23:07:43ID:xtMr6+ch
リプレイって別にFPS固定必要ないような
入力があったキーとその時の経過フレーム数があればいいんだし
0127名前は開発中のものです。2008/11/16(日) 23:30:59ID:0yDeWpwc
おまいら もちつけよ.
0128名前は開発中のものです。2008/11/17(月) 01:36:47ID:GetktCW+
>>124
何そのゲーム。>東方なんたら
最悪だね〜。

>>126
だよねぇ。
0129名前は開発中のものです。2008/11/17(月) 03:32:51ID:qWlXMT4E
なんだ釣りか
0130名前は開発中のものです。2008/11/17(月) 18:51:51ID:TAngTg8T
なんだこんなすばらしいスレがあったのか>>1
0131名前は開発中のものです。2008/11/17(月) 21:49:06ID:E1tboJG/
DXライブラリで作った横スクロールアクションのソースってどこかに転がってない?
0132名前は開発中のものです。2008/11/17(月) 22:00:58ID:tSUha7RY
転がってるって・・・
作者の好意で公開してるソースをそんな言い方するなよ
0133名前は開発中のものです。2008/11/17(月) 22:04:49ID:Zhr1hzWJ
ニコニコで一時話題になった、しかけが外道なスーパーマリオもどきはソース公開してたと思う
01341252008/11/17(月) 22:57:25ID:pxmPH9a8
>126
たしかにそうですね。
ただ、自分の場合は、FPSを固定すればあとはキー入力さえきちんと記録できていれば
リフレッシュレートが違えどもリプレイがずれることがないのでそうしていました。

0135名前は開発中のものです。2008/11/17(月) 23:31:08ID:OriaVhLm
移動量固定方式か、経過時間による移動量計算方式かで
やり方も違ってくるんじゃないかな。
0136名前は開発中のものです。2008/11/18(火) 13:05:35ID:FZcPiuDy
>>133
しょぼんのアクション だっけ?
やっと1−1クリアだと思ったのに愕然とした記憶がある。
0137名前は開発中のものです。2008/11/19(水) 13:43:13ID:xnzA6xl6
DirectXのバージョンを9に移行するらしいね
0138名前は開発中のものです。2008/11/19(水) 14:54:42ID:TpPgoKXn
>>133
あれはやばいです
あれはほんとうに・・やばい・・。
この道10年のベテランですらあれを見ると悶絶して悶え死ぬレベル。
あのソースを読んだあの日、私は自分の人生について考えさせられました。
0139名前は開発中のものです。2008/11/19(水) 15:08:39ID:lxkh5WN5
そんなにすばらしいのか
0140名前は開発中のものです。2008/11/19(水) 15:11:10ID:Lz0a0oQh
思わず3回DLし直す位のレベル
0141名前は開発中のものです。2008/11/19(水) 18:41:54ID:TpPgoKXn
あれは伝説のソースですよ
0142名前は開発中のものです。2008/11/20(木) 23:58:11ID:UIc9LZep
DLしてみたが・・・凄まじいソースだな
0143名前は開発中のものです。2008/11/21(金) 00:08:16ID:AZA6fSH/
俺のソースも似たようなもんだなw
0144名前は開発中のものです。2008/11/21(金) 00:14:35ID:IPu5qEL0
汚いコード書ける奴って尊敬するわ
むしろ逆に頭良いと思う
0145名前は開発中のものです。2008/11/21(金) 00:46:35ID:PFCyKir9
部屋が汚くても気にしないやつがいるのと同じ
0146名前は開発中のものです。2008/11/21(金) 05:06:26ID:0gMw7+uw
http://fatalita.sakura.ne.jp/Software/cuirpgfordq3.lzh
これもマジキチ
0147名前は開発中のものです。2008/11/21(金) 05:58:28ID:VvYw+mZM
>>146
これはアイテム4つで実装力尽きるw
配列すら使ってないとかやべぇ

でもスレチ
0148名前は開発中のものです。2008/11/21(金) 12:55:25ID:3m8CIP+t
BASIC覚えたての頃、そんな風にGOTO文メインでテキストアドベンチャーゲームを作ったなあ…。
それにしてもその作者はDXライブラリ3Dの作者なの?
なんか色々考えさせられるな…。
0149名前は開発中のものです。2008/11/21(金) 15:36:28ID:ELcxKG7H
でもスレチ
0150名前は開発中のものです。2008/11/21(金) 19:40:33ID:yD9XL+v+
自分のスパゲティソースを晒す勇者はおらんのか・・
0151名前は開発中のものです。2008/11/21(金) 21:42:08ID:FU8hvFU5
さらしてどうすんのよw
0152名前は開発中のものです。2008/11/22(土) 22:21:51ID:j0m39ynA
タイピングゲーム作ってるけど疲れてきたぜ。
ゲーム一本完成させるって難しいな。
0153名前は開発中のものです。2008/11/23(日) 02:26:12ID:YAgqgFQm
完全体になる前にリリースすればいいじゃない(マリー
0154名前は開発中のものです。2008/11/23(日) 02:27:42ID:Ef5lma7p
プログラム歴3ヶ月おれもタイピングゲーム作ってます
プログラム練習としても面白いジャンルのような気がします
がんばりましょう
0155名前は開発中のものです。2008/11/23(日) 14:21:16ID:bJorsnCE
>>153
俺知ってるよ
そういうのをあじゃいるって言うんだよね
0156名前は開発中のものです。2008/11/23(日) 17:55:00ID:pnQpCtQf
画面全体をぼかしたいのですが、どうすればいいのでしょうか?

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

直接DXライブラリで描画してる画像をぼかせばもっと早くなると思うのですが、
DXライブラリで直接ぼかす方法がさっぱりわからりません。
どういう方法でぼかせれるのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています