- 1 名前:名前は開発中のものです。 [2009/03/31(火) 01:14:36 ID:IgyJcgap]
- Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、 「DXライブラリ」に関するスレッドです。 DXライブラリの詳細ついては homepage2.nifty.com/natupaji/DxLib/ を参照して頂きたい。 DXライブラリに関するテクニックなどの情報交換などを行う事で、 多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。 過去スレ:DXライブラリ 総合スレッド pc11.2ch.net/test/read.cgi/gamedev/1197468399/ DXライブラリ 総合スレッド 2008 pc11.2ch.net/test/read.cgi/gamedev/1224923873/
- 520 名前:名前は開発中のものです。 mailto:sage [2009/06/19(金) 12:57:07 ID:ciGq9GNb]
- 全くその通りだと思うんだが、
そういう選択式になってるゲームってほとんどみないよな? 普通はどうやってんだろ、ってのが話題の焦点じゃないかな。
- 521 名前:名前は開発中のものです。 mailto:sage [2009/06/19(金) 15:25:14 ID:pN8o6lEn]
- >>517
実際、60Hz固定のモニタも多いんじゃね?
- 522 名前:名前は開発中のものです。 mailto:sage [2009/06/19(金) 16:07:46 ID:L4Ogxl+D]
- 他に話題ねーのかよ
飽きた
- 523 名前:名前は開発中のものです。 mailto:sage [2009/06/19(金) 16:47:37 ID:8D0wDPEb]
- 何か話したい話題があるなら自分から振れと
- 524 名前:名前は開発中のものです。 mailto:sage [2009/06/19(金) 23:33:13 ID:Dq7L9OoN]
- >>521
だから帰れってww
- 525 名前:名前は開発中のものです。 mailto:sage [2009/06/19(金) 23:50:46 ID:L4Ogxl+D]
- んー
じゃぁDxLibの今後 俺はもう少し発展してくれてもいいと思う、3Dを強化して欲しいね
- 526 名前:名前は開発中のものです。 mailto:sage [2009/06/20(土) 00:41:17 ID:ynTX3CaL]
- 無理じゃね
3D強化するなら作り直しレベルだろ
- 527 名前:名前は開発中のものです。 mailto:sage [2009/06/20(土) 00:42:51 ID:FZJG9pXN]
- デスクリムゾンレベルなら作れるw
- 528 名前:名前は開発中のものです。 mailto:sage [2009/06/20(土) 00:53:36 ID:gQS8hglY]
- 上からくるぞっ!気をつけろ!
- 529 名前:名前は開発中のものです。 mailto:sage [2009/06/20(土) 01:03:05 ID:X3CDDO5o]
- >>526
いま3D機能作ってるって公式掲示板で言ってたけど・・・ 意外とみんなチェックしてないんだな
- 530 名前:名前は開発中のものです。 mailto:sage [2009/06/20(土) 01:08:17 ID:ppcvkMn4]
- >>529
なん…だと?
- 531 名前:名前は開発中のものです。 mailto:sage [2009/06/20(土) 01:49:27 ID:FZJG9pXN]
- 俺のクリムゾンは下からくる設定で作るわ
- 532 名前:名前は開発中のものです。 mailto:sage [2009/06/20(土) 02:34:40 ID:gQS8hglY]
- せっかくだから俺はこの赤い扉を選ぶぜ!!
- 533 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 02:15:20 ID:dtFx8GuN]
- Platinumっていうマップエディタで、15*20マスのマップを作って
csv形式で出力して、読み込んで描画したいんだけど上手くいきません #include "DxLib.h" int WINAPI... { if( DxLib_Init() == -1 ) return -1 ; int mapchip[256]; char mapdata[15][20]; int filehandle; LoadDivGraph("a.bmp",256,16,16,16,16,mapchip); f = FileRead_open("a.csv"); FileRead_gets(mapdata,num,filehandle); このあとfor文でFileRead_getsで読み込んだ1行を15回くりかえして mapchipに入れていきたいんだけど・・・ FileRead_getsのnumに何を入れていいのかが??状態。 リファレンス読んでもメモリ領域のサイズて書いてあるけど・・・ 日本語おかしくてスマン
- 534 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 02:35:09 ID:ffHKmVPn]
- numはメモリ領域のサイズってリファレンスに書いてあるじゃん。
てか、a.csvの内容はどんな感じになってんの?
- 535 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 02:48:44 ID:aQAsxkjf]
- >>533
int mapdata[15][20],mapwidth= 0, mapheight= 0, mapchipwidth, mapchipheight, bitcount; int filehandle; char buf[1024]; filehandle = FileRead_open("a.csv"); if (filehandle==0){エラー処理} int gyoucount = 0,retucount = 0, iVal,layercount; while((FileRead_eof(filehandle) == 0)&&( gyoucount < mapheight+1 )) { FileRead_gets(buf, 1023, filehandle); if (gyoucount == 0){ sscanf_s(buf, "%d,%d,%d,%d,%d,%d", &mapwidth, &mapheight, &mapchipwidth, &mapchipheight, &layercount, &bitcount); }else{ while(retucount<mapwidth){ char *next_token; if (retucount==0){ iVal=atoi(strtok_s(buf, ",",&next_token)); }else{ iVal=atoi(strtok_s(NULL, ",",&next_token)); } mapdata[gyoucount-1][retucount] = iVal; retucount++; }} gyoucount++; retucount = 0; } FileRead_close(filehandle); if( ( gyoucount != mapheight+1 ) || ( retucount != 0 ) ){エラー処理}
- 536 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 02:49:49 ID:dtFx8GuN]
- 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 3 3 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 3 3 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 3 3 3 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 3 3 3 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 3 0 2 2 0 0 0 0 2 2 2 2 2 2 0 0 0 0 3 3 0 2 2 0 0 0 0 0 0 0 0 2 2 2 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 0 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0が草原で1が川で2が森で3が山です 1行ずつ読み込んでchar chip[ ][ ]に入れて その番号をint型の数字に変換してmapchip[ ]で描画させたいんですが・・orz ごめん、メモリ領域のサイズってどうやって調べるの?
- 537 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 04:17:54 ID:jkwbtsZu]
- コーディングしたのはおまいさんだろ?
- 538 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 08:29:25 ID:vb/GsENJ]
- FileRead_gets(mapdata,sizeof(mapdata),filehandle);
- 539 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 09:37:49 ID:SurdRKYg]
- >>507
遅れたけど正確にはダブルバッファリングしてるからティアリングはおきないよ。 データの構築中に画面に表示される事は無い。 あと垂直同期を待ちつつタイマーで調整する事も可能。 具体的にはタイマーでfpsを調整すれば、ゲームが基準にするのはタイマーじゃなく、 一定間隔が保障されてるフレームを基準にすればおk
- 540 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 13:35:35 ID:QJhUeuVR]
- マップの縦横が固定長なら
ifstream+For2重ループで読み込んでしまえば良い 都合のいいことに半角スペース無視ってくれるからね c++知らなければスルーしてよし
- 541 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 13:59:11 ID:E25maqZD]
- 垂直同期を待つってことは動作速度がリフレッシュレート固定になるってことじゃないの?
最期の2行の意味をくわしく。
- 542 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 14:24:01 ID:ZO5ct3aw]
- 可変レートの場合、
60の時は、前回の1/60秒後の世界を描くし50の時は1/50秒後の世界を描くんだろう。
- 543 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 14:40:01 ID:/SjwP+Lm]
- ググってると公式サイトのリファレンスに載ってない関数が時々出てくるんですけど、
そういうのが載ってる詳細なリファレンスは無いんですか?
- 544 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 15:01:10 ID:E25maqZD]
- 擬似コードでいいからプログラムで説明してくんない?
下記に追記する形で。 while(1){ main_loop(); flip(); }
- 545 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 15:55:05 ID:gvSWV/Tl]
- 1秒間に100ドット移動させたい時。
: ScreelFlip() 時間計測A(ミリ秒) : ScreenFlip() 時間計測B(ミリ秒) : 移動距離算出 100 * ( B-A ) / 1000 : ScreenFlip() 時間計測〜 って感じ?
- 546 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 17:22:04 ID:nC5CYBlY]
- ぼくのイメージではこんなだけど合ってる?
垂直同期が取れるなら while(1){ main_loop(); sleep until 垂直同期60hz; flip(); } 取れないなら A = GetTickCount(); while(1){ main_loop(); B = GetTickCount(); sleep(17 - ((B - A) % 17)); //1tick = 0.001秒, 17tick = 1/60秒と仮定 flip(); A = B; } ただ、こうするとsleepしてる時間が無駄だから…
- 547 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 17:24:40 ID:nC5CYBlY]
- 無駄を減らすために
main_loop()の処理時間が十分に短いなら A = GetTickCount(); while(1){ do { main_loop(); B = GetTickCount(); } while (B-A < 17); flip(); A = B; } あるいはタイマーを使うか… A = GetTickCount(); while(1){ main_loop(); B = GetTickCount(); SetTimer(17 - ((B - A) % 17), flip()); A = B; } それとも描画と計算は別スレッドにするか…
- 548 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 20:10:23 ID:SurdRKYg]
- >>541
そうとは限らないよ。 まずfps制限と描画を完全にわけて考える。 fps制限は60に設定したとする。 int nowtime = GetNowCount(); static int oldtime = 0; static int frametime = 1000 / 60; int diftime = nowtime - oldtime; while(1) { if(diftime >= frametime) { oldtime = nowtime; break; } else { Sleep(1); nowtime = GetNowCount(); diftime = nowtime - oldtime; } } これで垂直同期しようがしまいが60で固定された。 1ループで1フレーム1/60秒が保障されたので、1秒で100ドットキャラを進ませたいのなら、60フレームで100ドット進ませればおk 5秒後に何かをしたいときも、5秒をタイマーで計測するんじゃなくて300フレーム後に行えばおk だから>>539で「ゲームが基準にするのはタイマーじゃなく、一定間隔が保障されてるフレームを基準にすればおk」と書いた。 ただ、これだとスペック不足によって60fpsが出ない場合や、リフレッシュレートが60以外でかつ垂直同期を待った場合中途半端な同期によって60fpsが出ない場合(これは垂直同期を待たない事で解決出来る)、 フレームがゲームスピードの基準になっているのでゲームスピードが遅くなってしまう。(処理落ち) これはこれでおkならそのままでいいが、ゲームスピードだけは死守するのならフレームスキップ(コマ落ち)が必要になる。 この方法も色々あるので今回は割愛。
- 549 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 20:20:31 ID:E25maqZD]
- 結局ティアリング発生するじゃん
- 550 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 20:27:19 ID:SurdRKYg]
- せっかく説明したのになにその全然読んでないようなレスは。
ティアリングの話がしたいの? >垂直同期を待つってことは動作速度がリフレッシュレート固定になるってことじゃないの? これを解決したいの? どっちなの? てか548を読んで解決出来なかったの? 質問しといてなんなの。
- 551 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 20:38:53 ID:E25maqZD]
- ティアリングを発生させずにどんなリフレッシュレートのモニタでも同じ処理速度で動作させる方法があるかを聞いてる。
- 552 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 20:52:15 ID:dtFx8GuN]
- 14歳からのゲームプログラミング読めよ
書いてあるよ
- 553 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 20:52:45 ID:n8mlBebR]
- >>551
>>539に書いてあんじゃん SurdRKYgがかわいそすぎる、援護するぜ んでぐぐったらすぐにわかりやすいのでてきたぞ ちょっとは自分で調べろ ttp://spitfire.client.jp/program/fps.html
- 554 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 20:55:52 ID:dtFx8GuN]
- 馬の耳に念仏だろうがな
- 555 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 21:15:08 ID:E25maqZD]
- なるほど。
リフレッシュレートをAPIで固定する、か リフレッシュレートを何らかの方法で取得して、1フレームの移動量をリフレッシュレートに合わせて変更する しかないわけか。
- 556 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 21:26:14 ID:nqKSgOSf]
- >>555
何が「なるほど」なんだか・・・ 548をどう読めば 「リフレッシュレートを何らかの方法で取得して、1フレームの移動量をリフレッシュレートに合わせて変更する 」 の説明になるんだよ 読む気がないなら質問なんてするな
- 557 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 21:33:30 ID:E25maqZD]
- >>548は垂直同期を待たない事で解決出来るとか言ってるから話にならないじゃん
ダブルバッファリングしてるからティアリングはおきないとか言ってるし。
- 558 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 21:41:05 ID:OYxJ3LRg]
- ダブルバッファリングとティアリングは関係ないよな。
垂直同期信号待ちしないと、裏画面と表画面切り替える瞬間にモニタ画面更新される事もあるから結局ティアリングは発生する。
- 559 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 21:59:20 ID:SurdRKYg]
- >>557
垂直同期を待たない事で解決出来るのは60fpsにならない場合の話だから下5行は読まなくていいよ。 しかもコマ落ちさせれば同期待ちでも解決出来るって書いてあるのに…。 120Hzのモニタで同期待ちするけど60fpsに制限すればゲーム速度も一定になるでしょ? 1フレームの移動量を変更するんじゃなく、移動量をフレームに合わせれば常に一定でしょ? >>558 flipする時はコピーするんじゃなくてVRAMの参照先を変えるだけだから、VRAM上のデータを書き換え途中って事は無いと思うけど。 だからどの瞬間においても描画途中で画面更新される事は無いと思うんだけど違うのかな? もちろんこれはティアリングの厳密な意味でのことなので、広義の意味の 画面のちらつき=ティアリング として使われる事についてはそれでいいけど。
- 560 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 22:03:54 ID:nqKSgOSf]
- >>559
残念だけど垂直同期を待たない場合はビデオカードがモニタに映像を送信している間でも 参照先のVRAMアドレスを変えてしまうからティアリングは発生する
- 561 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 22:08:13 ID:OYxJ3LRg]
- >>559
DXライブラリで裏画面への描きこみ、ScreenFlipってほとんどデフォだよね? これが君のいうダブルバッファリングでしょ? ScreenFlipの垂直同期信号待ちをOFFにして、 タイマーだけでスピード固定するようにして、フルスクリーンで動かしてごらん。 ティアリング一目瞭然だから。
- 562 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 22:11:13 ID:SurdRKYg]
- >>560
そうなんだ。どうもありがとう。 同期しない事によるちらつきは画面更新部分と非更新部分の時間がばらばらな事による現象かと思ってた。 モニタのVsync信号の方が偉くて、そのタイミングでflipした時は次のVRAMの更新先を強制的に参照するみたいな認識でいいのかな。
- 563 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 22:16:46 ID:SurdRKYg]
- >>561
ややや、ちらつくのは一目瞭然だけど、ティアリング(=上半分表画面で下半分裏画面のような状態)かどうかっていのは人間の目では判別不可能でしょ。 そのちらつきの原因は、更新部分と更新して無い部分の時間差によるものだと思ってた。 例えば背景が流れる画面の場合、1場面を■、次の場面を□とした場合、 ■□■□■□■□■□ と見えればちらつかないが、 ■■□■□□□■■□ のように見えるとちらついてみえると思うんだ。 でも>>560のレスで、ティアリング自体も起きているとのことなので一応解決出来た。 これはもうちょっと自力で調べてみようと思う。
- 564 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 22:23:40 ID:OYxJ3LRg]
- 「垂直同期信号待ち」ってのは要するに画面が全部描き終わるまで待つって事だから。
描き終わって、次の画面が描き始められるまでの一瞬の間にVRAMのアドレスを切り替える、って事だね。 そうする事で初めてティアリングを防げる。 >>563 ちらつくというより画面が波打つ、と言った方がよかったかな。 >ティアリング(=上半分表画面で下半分裏画面のような状態)かどうかっていのは人間の目では判別不可能でしょ。 ぴったりには合わないとは言え、だいたい60FPSで固定しようとしてスピード調整してるわけだから ズレが生じるのも大体画面更新の同じタイミングになるわけ。 当然、人間の目にもはっきり判るよ。
- 565 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 22:40:54 ID:Fv4f33jD]
- >>563
固定フレームレートの2Dゲーははっきりとわかる キャラだけならともかく背景のスクロールもよくつかわれるからくっきりと 3Dとかで可変フレームレートだとわかりにくくなるかな でも2Dメインでしょ、DXライブラリ
- 566 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 22:52:23 ID:i9HN6tkr]
- 問)
垂直同期を待たずにティアリングを抑制する方法を答えよ 答) 垂直同期信号の発生周期をフリップのタイミングの合わせればよい
- 567 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 23:06:19 ID:FjFdKqe+]
- 誤字があるから△だな
- 568 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 23:09:10 ID:SurdRKYg]
- >>564
CRTの場合は走査線があるので画面の上半分と下半分で違う場合もあると思うんだけど、 液晶の場合は1画面をいっぺんに更新するわけだけど、それでも上半分と下半分で違うようなものになるってことなのですか? VRAMから送られるデータは画面の左上から右下のデータが順次送られてるのかな? そしてその送られてる時間がネックになっていてその間にflipしたらバックバッファの途中のアドレスから参照されるってこと!? それってそもそもおかしくないですか? バックバッファが出来上がっていない可能性もあるし、どうせ同期待ちしていないんだからとりあえずフロントバッファのデータを送りきってからバックバッファ分を送ればいいわけだし。 じゃあ将来例えば物凄くリフレッシュレートが高くなった場合、VRAMからモニタにデータを送る時間よりもモニタの更新速度の方が速かったりしたら "同期待ちしてるのにティアリングが起きてる"っていう最悪な状態になっちゃいそうですが。 なのでやっぱり液晶の場合はティアリングは起きていないと思いますがどうでしょう? >>565 えと、だから、画面更新に合わせずに好き勝手にflipしたら、 ある1枚が長く見えてるかもしれないしある1枚が欠損しているかもしれない。 だからちらつくように見えると思うんだけど、 肉眼でただちらつくように見えるからってそれはティアリングが起きてる証明にはなってないよ。
- 569 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 23:33:13 ID:E25maqZD]
- とりあえず3行以内に要約する癖をつけてくれ
- 570 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 23:41:01 ID:nqKSgOSf]
- >>568
>VRAMから送られるデータは画面の左上から右下のデータが順次送られてるのかな? Yes >そしてその送られてる時間がネックになっていてその間にflipしたらバックバッファの途中のアドレスから参照されるってこと!? Yes >バックバッファが出来上がっていない可能性もあるし、どうせ同期待ちしていないんだからとりあえずフロントバッファのデータを送りきってからバックバッファ分を送ればいいわけだし。 ? 何を言いたいのか良くわからないけど VRAMのデータをモニタに送るタイミングはPC側からは操作できない リフレッシュレートに依存する >じゃあ将来例えば物凄くリフレッシュレートが高くなった場合、VRAMからモニタにデータを送る時間よりもモニタの更新速度の方が速かったりしたら >"同期待ちしてるのにティアリングが起きてる"っていう最悪な状態になっちゃいそうですが。 縦解像度nの画面データをモニタに送る流れ 0lineを転送→水平同期期間→1lineを転送→水平同期期間→ nlineを転送→垂直同期期間→0lineを転送→水平同期期間 つまり、垂直同期間は1画面分のデータを転送した後にくるので、 「VRAMからモニタにデータを送る時間よりもモニタの更新速度の方が速い」 というのはそもそもありえないよ、nline分送る前に垂直同期期間に突入する事はないから・・・
- 571 名前:名前は開発中のものです。 mailto:sage [2009/06/21(日) 23:45:26 ID:nqKSgOSf]
- 2点修正
>リフレッシュレートに依存する 厳密には設定した解像度とリフレッシュレートに応じて発生する 水平同期信号と垂直同期信号に依存する >0lineを転送→水平同期期間→1lineを転送→水平同期期間→ >nlineを転送→垂直同期期間→0lineを転送→水平同期期間 0lineを転送→水平同期期間→1lineを転送→水平同期期間→ (n-1)lineを転送→垂直同期期間→0lineを転送→水平同期期間 の誤り
- 572 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 00:07:43 ID:kame7wv0]
- >>569
おまえ顔真っ赤だぞ?
- 573 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 00:08:14 ID:1Ugl+7iQ]
- で
- 574 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 00:09:59 ID:ErP4dB7R]
- >>570-571
そういうことだったんですね。 詳しい説明どうもありがとうございます。 >VRAMのデータをモニタに送るタイミングはPC側からは操作できない >厳密には設定した解像度とリフレッシュレートに応じて発生する >水平同期信号と垂直同期信号に依存する ビデオカード側がモニタに送るタイミングを主導しているんだと思ってましたけど、そこが間違っていたようです。
- 575 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 00:14:49 ID:kAGY284T]
- >>568
>だから、画面更新に合わせずに好き勝手にflipしたら、 >ある1枚が長く見えてるかもしれないしある1枚が欠損しているかもしれない。 >だからちらつくように見えると思うんだけど、 ちらつくっていうよりも、それはがたつくというか、コマ落ちとかそういう心配でしょ? ティアリングってのは君が言ってるように上と下の画像にズレが生じる現象だから、 横に対して線が入って(実際にはドット単位でずれてる)波打ってるようにみえる。 コマ落ちだったらこうは見えないはずでしょ? 実際にプログラム動かしてみてみれば一目瞭然だと思うんだが……。
- 576 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 00:17:48 ID:VZ3co5HH]
- >>552
14歳のやつ 計算式思い切り間違えているぞ。 実際にリフレッシュレートの違うモニタで確かめたから間違いない。
- 577 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 00:28:31 ID:XZV3fJ2J]
- あれ分母と分子逆になってるのかなあ
- 578 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 09:11:17 ID:4PYRYd3U]
- >>576
何がどう違うのか具体的に例をつけて書け 改良案も書け
- 579 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 14:34:23 ID:N6BYq6eh]
- >>578
ママにでも頼め。
- 580 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 15:54:58 ID:VZ3co5HH]
- >>578
自分で考える癖をつけよう。 適当な数字を入れて検証してみ。 明らかにおかしいのがわかるから。 どうおかしいのかわかれば治し方は自明だと思う。
- 581 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 17:39:07 ID:oZ+8nNkj]
- >>575
学生さんなのかな? デジタル写真に法的な証拠能力は無いわけだが
- 582 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 17:40:41 ID:pV5yAQzs]
- なんの話だw
- 583 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 18:16:54 ID:VZ3co5HH]
- どこの誤爆だw
- 584 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 20:45:11 ID:C5JJD30U]
- これが若さか。
- 585 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 20:51:20 ID:CIAC500Z]
- いいや幼さだ
- 586 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 20:51:55 ID:kame7wv0]
- 中年オヤジは黙っとけよクズ
いい年こいて2chやってんじゃねえよカス
- 587 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 21:05:11 ID:CIAC500Z]
- こんなヤツもDXライブラリ使ってるのか……
- 588 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 21:10:13 ID:kame7wv0]
- 悪いの?使うのに制限あるなら教えてくれませんかね?
- 589 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 21:11:51 ID:CIAC500Z]
- 初心者向けライブラリのスレなんだし、カリカリしないでまったり行こうぜ?
- 590 名前:名前は開発中のものです。 [2009/06/22(月) 21:32:05 ID:6Vl6l2Pm]
- クソスレ晒しアゲ
- 591 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 21:58:40 ID:kame7wv0]
- まったく・・
オッサンにもなってゲームでも作ってんスかね?w
- 592 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 22:52:27 ID:wZqXAX7r]
- 世界のゲームプログラマーの殆どがオッサンですよ
- 593 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 23:27:33 ID:PR8N99oV]
- そもそもおっさんって何歳以上?
- 594 名前:名前は開発中のものです。 mailto:sage [2009/06/22(月) 23:37:18 ID:6Vl6l2Pm]
- hideyoshi.2ch.net/test/read.cgi/lovesaloon/1235930554
- 595 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 00:57:26 ID:JW/qeXlf]
- DXライブラリはDixq氏のゲームプログラミングの館の影響で東方厨が流れ込んできてるからこんなのはゴマンと居るよ
- 596 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 01:04:40 ID:/wkYhisO]
- いちいち煽らない。
- 597 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 09:24:14 ID:eUvBMQ0G]
- おっさんでもガキでも宇宙人でも何でもいいから、
DXライブラリでおもしろいゲーム創っていこう。
- 598 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 09:52:25 ID:dhA25QDv]
- >>580
こういう奴は駄目だな…… デバッグ報告になってない 再現例も書けない奴は現場に出てこないでほしいと思う そもそも「適当な数字を入れたら」ってのは、「適当な数字が必ず入る」という前提なのか? プログラムの動作の中で「適当な数字」が入らざるを得ないような状況を説明できるのか? 例えばOSやモニタやリフレッシュレートを変えたらおかしい、と言うなら説明になるが チート使ったらゲームがバグった、レベルの議論は論外だ こういう人に限って動的な数値に固定値を代入したりしてるんだから
- 599 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 09:57:56 ID:NMdhocxd]
- 自分で調べようともしないで、他人に訊けば答えが返ってきて当然と思う人間の方が
現場では嫌がられると思うぞ。
- 600 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 09:58:29 ID:NvkMU1Q4]
- >>598
わからないなら、わかりません教えてくださいって素直に言えばいいんだよ。
- 601 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 10:49:50 ID:4P883XyE]
- 嘘なら嘘でしたといったほうがいい
- 602 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 12:18:26 ID:A0fh8Dl0]
- 作ってて楽しいからゲーム製作してるんだろ?
なんでこんなカリカリしてんのさ
- 603 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 12:28:04 ID:btxPW8HG]
- 分をわきまえず背伸びしてるから疲れてるんだろ
- 604 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 15:57:39 ID:+DVKp8CT]
- >>598
わからないなら素直にそういえばいいじゃない。 >例えばOSやモニタやリフレッシュレートを変えたらおかしい、と言うなら説明になるが >>576 疑うならリフレッシュレート変えて実際に試してみ。
- 605 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 17:46:43 ID:ifo/8btq]
- ソース見せてくれたら第三者にも判断つくんだけどね。
- 606 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 22:32:28 ID:BZp72+wO]
- ここ現場じゃねーし
掲示板だし そもそも教えない奴にこそ性格に問題抱えてる事がほとんど
- 607 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 22:34:58 ID:BZp72+wO]
- わからない、とそいつが言ったら言ったで責めんの目に見えてるし
ググレとかそれ以前のことでしょとか嫌味吐くのおまえらじゃん
- 608 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 23:13:33 ID:joZZV7Mo]
- フレーム単位で処理してモニタのリフレッシュレートに合わせて移動量を変えればリフレッシュレートによらず処理できることは分かるけど、
例えば、タイトル画面でスタートボタン押してから次の画面が表示されるまでの待ちの処理ってのはどうやってフレーム単位で処理すればいいんだろう。
- 609 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 23:19:45 ID:+iWMMldZ]
- >>607
これだけ色々答えてくれる場でなんでそういう考えに至るのか。 あまりにガキ過ぎる。
- 610 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 23:21:51 ID:UNSoodNB]
- そんなもん無視しろ
- 611 名前:名前は開発中のものです。 mailto:sage [2009/06/23(火) 23:24:00 ID:ifo/8btq]
- >>608
どういう意味? 待ちの時間って、本当に何もしないって事? それともデータロードとかしてる時の事?
- 612 名前:名前は開発中のものです。 [2009/06/23(火) 23:53:01 ID:95CP5Nno]
- ゆとり乙
ガキは教えて貰うのが当たり前だと勘違いしてるから始末が悪い。
- 613 名前:名前は開発中のものです。 mailto:sage [2009/06/24(水) 00:21:16 ID:9O2FRRtx]
- 移動量だけでなく待ちのフレーム数も可変にしないといけないとなるとちょっと面倒だな
- 614 名前:名前は開発中のものです。 mailto:sage [2009/06/24(水) 00:45:52 ID:km6ob3xz]
- >>607
//14歳本より //リフレッシュレートの高い環境ほど1フレームあたりの移動量を小さくしfloatの配列にセットする void SetFrameRate() { float frametime = 0; unsigned int s = GetNowCount();//計算開始時刻をsに代入 for(int i=0; i<30; i++) { ScreenFlip(); unsigned int e = GetNowCount();//計測終了時間をeに代入 frametime += e - s ; s = e; } frametime = frametime/30;//30回採取した経過時間の平均を取る for(int i=1; i<20; i++) { idouryou[i] = i / frametime * 16.67;//←ここの式が間違い!自力で治そう! } } 解説文は間違っていないから単純ミスだろう 適当な数字を入れてみって言ったのは frametimeの値が小さくなればどうなるか式に入れて考えてみってこと 試すまでもなくこの式がおかしい事が判る筈
- 615 名前:名前は開発中のものです。 mailto:sage [2009/06/24(水) 01:14:19 ID:OqjteeH5]
- FPS計測するとき同じミスよくやったなぁ
- 616 名前:名前は開発中のものです。 mailto:sage [2009/06/24(水) 01:20:49 ID:zu36k+NF]
- 俺もそこおかしいと思ってずっと悩まされてた
答え言っちゃいけないのかな あそことあそこ入れ替えるでおk?
- 617 名前:名前は開発中のものです。 mailto:sage [2009/06/24(水) 01:31:30 ID:km6ob3xz]
- >>616
うん。 それでおk。 ちなみに初版で気付いてラトルズに付属の葉書で出したが C++本でも後の版でも訂正されなかった。 サポートページに訂正箇所のpdfがあるが読んだら全然違う箇所のことだった。
- 618 名前:名前は開発中のものです。 mailto:sage [2009/06/24(水) 02:15:36 ID:6DfYO0Sm]
- 14歳から〜って読んでる人結構いるんだな
- 619 名前:名前は開発中のものです。 mailto:sage [2009/06/24(水) 10:34:44 ID:QnhT+AWI]
- 知らぬは、著者ただ一人だけ
- 620 名前:名前は開発中のものです。 mailto:sage [2009/06/24(水) 15:00:37 ID:iWb66gX0]
- 「14歳〜」って読んだこと無いのだけれど、
これ買ったらDXライブラリの作者さんに何らかのお金が行くんだろうか? 行くなら買ってもいいかなあ。
|

|