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


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

DXライブラリ 総合スレッド その3



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/

409 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 23:38:00 ID:rJGFypi7]
当時でも、機械語でゲーム製作できる小学生は相当凄い。
情報も今のほうが圧倒的に多いし楽に手に入る。
逆に、情報や手段が多いせいで入りにくくなってる。


410 名前:名前は開発中のものです。 mailto:sage [2009/06/08(月) 23:58:56 ID:gmTgYuK1]
>>407
方眼用紙もってドット絵かいたりハンドアセンブルばっかりしてた
変換表の半分くらいは暗記してたけど今じゃもう何も覚えて無い
c9がretだっけとかそんな感じ
ミスすれば暴走>リセットだったから実行するにも緊張した

結果机上デバッグにみんな慣れてソースやバイナリ見るだけですぐわかるようになってくる
バイナリ見たときのビッグエンディアンのわかりやすさはあこがれた
なんせ俺の暴走原因の90%は上位と下位のスワップし忘れがほとんどだったから


あと当時はPCの楽しさは俺達しかしらないんだぜ的なものもあったかな

というか全然普及して無いから虐げられてた
マイコン触れる=ネクラの変人で運動も何も出来ないんだろ的な

だからDXライブラリのように敷居を下げるライブラリにはがんばってもらいたい

今のほうが情報が入手しやすいというのはどうだろうね
CPUそのものとかOSとかデザパタとかそういうオカタイ情報は入手しやすいけど
ゲームを作りたい場合の情報の敷居の高さは半端じゃないよね?

徳間のM-FANみたいなのが必要かなと

411 名前:名前は開発中のものです。 mailto:sage [2009/06/09(火) 00:57:34 ID:S/a6iR+n]
ゲームプログラミングが初めてだという人、特にゲームを作りながら言語も覚えようという人は
最初は出来る限りシンプルなゲームから作った方がいい…と、僕は思うんだ。

80年代前半より前の生まれなら、ゲーム&ウォッチが通じるんだが
最近の子(20歳以下)だと、どのへんが分かりやすい例え何だろうか。

412 名前:名前は開発中のものです。 mailto:sage [2009/06/09(火) 01:10:43 ID:oifuXaCW]
>>407
>>410

俺も方眼紙にドット絵描いたり、
ノートにニーモニックでプログラム書いてから、ニーモニック→マシン語変換表見ながらマシン語に書き換えて、
それをバイナリエディタで入力とかやってたなぁw

ところで当時バイナリエディタって読んでたっけ? なんか別の呼び方だったような気がするが……。

413 名前:名前は開発中のものです。 mailto:sage [2009/06/09(火) 01:17:12 ID:gC7kpoXP]
モニタ

414 名前:名前は開発中のものです。 mailto:sage [2009/06/09(火) 01:46:37 ID:PMo4RsPh]
ここにいる人は40歳前後が多そうだな

415 名前:名前は開発中のものです。 mailto:sage [2009/06/09(火) 02:52:08 ID:3VeuGuyA]
そんな知識のある父がほしかった

416 名前:名前は開発中のものです。 [2009/06/09(火) 03:20:38 ID:C8Rc41AV]
今思い出すと俺も16,7の時もツクールで
なんであんなに創作意欲があったんだろうと思う

年取るとアイデアうかばない症候群になった
ただの鬱なのかもしれんが

417 名前:名前は開発中のものです。 mailto:sage [2009/06/09(火) 04:40:20 ID:ur7it59g]
>>411
VCもあることだしファミコンでいいんじゃね?



418 名前:名前は開発中のものです。 mailto:sage [2009/06/09(火) 05:12:36 ID:6uG82dMD]
高校でパソコン部を作りたいと申請したら
教師に「そんなおもちゃが一体何の役に立つんだ」と
即却下されたのもなつかしい

419 名前:名前は開発中のものです。 mailto:sage [2009/06/09(火) 09:36:31 ID:S/a6iR+n]
>>417
ファミコンだと、スーパーマリオ3やドラクエ3も含まれるんだぜ?
ケータイアプリとかなら行けるのかな? やったことないから分からんのだが。

420 名前:名前は開発中のものです。 mailto:sage [2009/06/09(火) 09:50:17 ID:ur7it59g]
どんなタイトルでもいいだろ

421 名前:名前は開発中のものです。 mailto:sage [2009/06/09(火) 11:52:23 ID:S/a6iR+n]
そうか、別にそう思うならそれでいいんだが。

422 名前:名前は開発中のものです。 mailto:sage [2009/06/09(火) 13:07:47 ID:IuPr0Cmy]
>>416
俺もツクールに数百時間費やしたくちだが、今思うと凄いな。
アイデアは今でも思い浮かぶんだが、頭の中だけで終わってそれを表に出そうっていう気にならない。
誰かが作ってくれるならアイデアとかは言うんだけど自分でやるってなるとめんどくさくて。

ちなみにその数百時間かけたのはセーブデータぶっ飛んで電子の藻屑に\(^o^)/
数百時間かけてすら、まだ1/5程度な完成度だったけど・・・


423 名前:名前は開発中のものです。 mailto:sage [2009/06/09(火) 14:14:05 ID:+TNFSrzk]
DXに関係ない話題がどうとかってかいてあったくせに、早速関係ない話題にあふれてる件

424 名前:名前は開発中のものです。 mailto:sage [2009/06/09(火) 14:29:51 ID:/uwI++Tj]
2chなんてそんなもんさ

425 名前:名前は開発中のものです。 mailto:sage [2009/06/09(火) 14:45:39 ID:/EtnpSFu]
どうとか言った人間と話題に出してる人間が別人だからこそだろ。

426 名前:名前は開発中のものです。 [2009/06/09(火) 23:50:55 ID:ggNV6tYD]
DXライブラリで、選択肢並び替え問題を作っているんですが、ちょっと行き詰ってしまったので、質問させてもらいます。
プログラムとしては、選択肢を選んだ順番に配列に格納して、正しい解答と比較することで正誤判定をしています。
一応、選択肢を選んで決定するところまではできたのですが、正誤判定の部分?がうまくいかないんです。
正しい順に選択肢を選んでも、間違っているということになっているみたいです。
なぜでしょうか?
あと4回目に選択肢を選ぶと、変な文字が表示されるのはなぜでしょうか?

自分の作ったプログラムです。
ヘッダファイルとメイン部分、会話(選択肢並び替え)部分に分かれています。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9402.cpp

C言語をはじめて1年、DXライブラリをはじめて2か月くらいなので、やさしく教えてください。
お願いします。

427 名前:名前は開発中のものです。 mailto:sage [2009/06/10(水) 01:02:39 ID:EOc9oIq+]
>>426
char input[5][1];
をグローバルにすればとりあえず動くと思う

ところで、要素数1だったら配列の意味なくね?

アドバイスとして、
↓の関数あたりを使えばもう少しスマートに書けると思う
sprintf、strcmp (C言語)
DrawFormatString (DXライブラリ)



428 名前:名前は開発中のものです。 [2009/06/10(水) 15:37:12 ID:UXlA/6A3]
>>427
inputをグローバル変数にしたら、うまくいきました。
アドバイスしていただいたことも参考にして、もう少しスマートなプログラムが書けるように努力します。
本当にありがとうございました。

429 名前:名前は開発中のものです。 mailto:sage [2009/06/10(水) 22:45:00 ID:kJPqJciV]
はじめてだから優しくしてねって言うと
かえって乱暴に扱われるってばっちゃが言ってた

430 名前:名前は開発中のものです。 mailto:sage [2009/06/10(水) 23:47:48 ID:yn44iXp9]
こんなとこでじっちゃの性癖を暴露せんでもよかろう。

431 名前:名前は開発中のものです。 [2009/06/11(木) 23:55:55 ID:GA3GCHk+]
int keiken;


if(keiken==0)printf("童貞乙");


432 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 00:00:02 ID:ADvlYAyg]
>431
初期化しとけ

433 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 00:04:48 ID:M4d3vxIH]
>>432
こうですか?分かりません><

#define KEIKEN 0

if(KEIKEN==0)printf("童貞乙");

434 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 04:04:32 ID:Yy7W6LDG]
こうでしょ

int keiken=0;

if(keiken==0)printf("童貞乙");

435 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 07:22:27 ID:9cqRM4P7]
const int keiken=0;

if(keiken==0)printf("童貞乙");

436 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 08:37:17 ID:yeEoVlcI]
これだからプログラミングはやめられないw

437 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 11:39:23 ID:jHstWpts]
int keiken = 0;

keiken ++ ;
keiken ++ ;
keiken ++ ;
keiken ++ ;

if ( 1 ) printf ( "童貞乙" ) ;


これで。



438 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 12:18:42 ID:xPu8mGZk]
雑談するにしても、せめてDrawFormatStringを使うぐらいには気を回してくれよ。

439 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 12:22:38 ID:Upl7Se9G]
動くわけねーと思ったら動いた。
インクリメントってスペースがあってもいいの?

440 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 12:33:12 ID:5rESS90A]
半角スペースは無視されるだろ

441 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 12:48:39 ID:l4TbPUJW]
if(keiken)
とか
if(!keiken)
ってみんなあんま使わない?
視認性重視で「==1」「==0」なのかな?
某神録のサイトでも今見たらそんな表記だった。

442 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 13:02:13 ID:jHstWpts]
>441
よく使うと思うが、今回は単に>431に合わせただけじゃない?
あとは掲示板で見やすい書き方というのはあるかもしれんね。


443 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 13:08:28 ID:AJoYy9jz]
あんま面白くなかったけど、今回のは0回かどうかが重要だから
あえて==0使ったんでしょ。
実際のコードでもそういうことはやる。

444 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 13:48:30 ID:6cWATceQ]
>>441
0であることを強調するため。

あと文化圏の違いもある。
0が偽じゃない言語も多数存在するから、そういう言語出身の人は
if(keiken)というコードは気持ち悪く感じる。
逆に生粋のC/C++の人はif(keiken==0)というのは冗長に感じる。

俺は簡潔性よりもわかりやすさを重要と考えてるから、==で比較する。
使う言語がC++だけじゃないってのもあるけど。


445 名前:名前は開発中のものです。 [2009/06/12(金) 13:57:03 ID:+pEtBUBP]
www.youtube.com/watch?v=vYuqJPUIfRA
こういうのDXライブラリで作ってるのかな

446 名前:名前は開発中のものです。 [2009/06/12(金) 13:58:09 ID:+pEtBUBP]
>>441

while(!CheckHitKey(KEY_INPUT_ESCAPE)){

}

おおこういう表記もできるのか

447 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 14:39:12 ID:Nk+ds+Ow]
変数自体の評価なら「==」で結ぶけど、
関数の戻り値なら>>446みたいな感じで書くかな。



448 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 15:36:56 ID:CIdl30UY]
2値もしくはそれに準じるものなら>>446
3値以上なら(不)等号あるいはswitchを使うかな
 if (!strcmp(str, "hoge")) // 一致したら
とかは気持ち悪い


449 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 16:05:58 ID:wLR5hiQv]
スタイルは人それぞれ。自分に合ったやり方で書けば良いよ。

450 名前:名前は開発中のものです。 mailto:sage [2009/06/12(金) 18:56:18 ID:g9ISpJC5]
if (0==keiken)
やっぱこれは見づらいのかな

451 名前:441 mailto:sage [2009/06/12(金) 19:00:21 ID:l4TbPUJW]
>>450
俺自身はそれ。
会社でfalse==keikenって書いたら!に修正されていたけど

452 名前:名前は開発中のものです。 mailto:sage [2009/06/13(土) 10:14:12 ID:yreqn12m]
具体的な数値や列挙が書いてあるだけマシ
世の中には条件式を省略しようとする輩がいるから


453 名前:名前は開発中のものです。 mailto:sage [2009/06/13(土) 10:24:26 ID:yreqn12m]
だいたい

if(hoge()){

}

じゃ返値をひとつだけ判定することができないじゃないの
あとでhoge()の返値を増やしたら予期せぬ動作をする可能性が高い
hoge()の返値を絶対に増やさない!なんて自信満々に言える奴は少ないでしょ
==で結べば必ず1つの返値で動作するから安全




454 名前:名前は開発中のものです。 mailto:sage [2009/06/13(土) 13:01:19 ID:khmiiTOM]
>>453
C++は多値返せないよ

戻り値のとり得る値が増減する、とエスパーすると、

関数の戻り値っていうのは、関数本来の意味を参照すると、
関数の作用そのもの、すなわち関数が実装する機能そのもの。
(わからないならSchemeやHaskellとか関数型プログラミング言語を一度触ってくれ)

これが変更されるということは、すなわち関数の機能が変わったか、設計の錬度が全く足りてない
(どんな機能を実装するかすらあやふやだった)かどちらか。
どちらにせよその変更は、その関数を使用するコード全体に波及する。

だから
>あとでhoge()の返値を増やしたら予期せぬ動作をする可能性が高い
この指摘はずれてる。
繰り返しになるけど、戻り値の変更はそれを使用するコード全体に波及するから、
予期せぬ動作をする可能性が高い、じゃなくて、予期せぬ動作をしないようにコード
を変更しないといけない。

455 名前:名前は開発中のものです。 mailto:sage [2009/06/13(土) 15:58:30 ID:MRDz7JnU]
>>453
実装の修正は何度もやるとして
インターフェースや振る舞いはなかなか変えないもんだ

というか、戻り値の意味が2通りを超える時は
関数名も変えざるを得ない気がするが

456 名前:名前は開発中のものです。 [2009/06/15(月) 23:58:33 ID:FuxW1Dfe]
Windows 7 のペイントでpng保存しても
透明色指定しても透明にならない
bmp2pngが必要

457 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 01:46:16 ID:H4jkoMGr]
文字列を画面の中央に表示したいけど
何かいい方法あるかな?
x座標を調整するの面倒だ



458 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 02:10:16 ID:1CAlzcIC]
>457
自分は使ったことないんで分からないけど、

 GetDrawStringWidth
 GetDrawFormatStringWidth

というのはどう?
で、長さを調べてxを調整して、文字列を出力するところまでを1つの関数にしちゃうの。

459 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 02:19:38 ID:qN6akUYZ]
ドラクエみたいに停止してるキャラに足踏みさせるいい方法ないかな?
countを0と1でオンオフしてSleep(300)とかで歩行と同じように調整はできたんだけど、
歩き出しが時々ぎこちないので悩んでます。sleepじゃなくていい方法が思いつかない

460 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 02:28:14 ID:H4jkoMGr]
>>458
フォントを変えないならいける
CreateFontToHandleで作ったフォントデータだと駄目っぽい

>>459
countを範囲でオンオフ切り替えてみては
if(count%40<20)//ドロー
else //ドロー2
count++;

461 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 02:34:01 ID:wxVXqeT5]
>>460
GetDrawStringWidthToHandleがあるじゃん

462 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 02:36:09 ID:H4jkoMGr]
>>461
うわ・・・恥ずかしい・・ごめんなさい
ありがとねん

463 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 03:45:39 ID:1CAlzcIC]
>459
そもそもSleep使ったら何も出来なくなるんじゃ?

464 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 08:51:37 ID:mvp6g5dM]
歩行絵+右足踏み出し絵と左踏み出し絵を描けばいいだけじゃね?

465 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 09:09:09 ID:q6YxOHAd]
while(ProcessMessage()!=-1){
ClearDrawScreen();

if(count<20) 右足が前に出てるキャラ表示
if(count>=20&&count<40)左足が前に出てるキャラ表示
ScreenFlip();
WaitTimer(10);
count++;
if(count==40)count=0;

}

うーんよくわからん

466 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 09:54:16 ID:1CAlzcIC]
>465
基本的な考え方はそれでいいと思うよ。
あとせっかく答えてくれた>460の答えも読んどいた方がいいんじゃね?


467 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 10:06:16 ID:yTy6SiIo]
>>465
基準FPS値決めて、フレーム数と秒が変換できるようにしてみるといい
あとWaitTimer(10)とかいうのはジョークだよね?w



468 名前:466 mailto:sage [2009/06/16(火) 10:16:47 ID:1CAlzcIC]
とりあえず>466の日本語がおかしいってのはスルーしてくれると嬉しい。

>>467
おや、見逃してたw
もしかして>463(俺)の発言を勘違いしちゃったのかな……? だとしたらちょっと責任感が。

469 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 12:57:31 ID:zt3Tshey]
>>467
たぶんWaitTimer等の関数を使わないと高速足踏みに見えると感じて、
こういう手段で自然に見えるようにしたんじゃないかな。
一秒でひとつの動作をループさせる必要はないからこれはあまり良くないと思うけど。

470 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 13:19:46 ID:1CAlzcIC]
>469
count値20ごとに表示を変えてるみたいだし、それは大丈夫なんじゃないかしら?

471 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 14:04:12 ID:KbLsp5Ay]
ScreenFlipで垂直同期信号待ちが行われているかどうかで変わってくるような。

472 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 14:17:30 ID:MjcTUWQv]
WaitTimer使う位なら count<20 の値を増やした方がよくね

473 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 16:03:45 ID:rewLOGjy]
時分割で状態変移したいのなら、コルーチン使ってみては?
と上級者ぶってみるわ

474 名前:459 mailto:sage [2009/06/16(火) 18:26:00 ID:qN6akUYZ]
いろいろ意見ありがとう。
WaitやSleepは使わずにFPSとかFrameやらを使って試行錯誤してみます。
countを0と1でオンオフにしてたけど>>465のようにフレームカウントにしてやってみます。

475 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 18:35:39 ID:1CAlzcIC]
別人だったんか!

476 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 23:35:34 ID:8GILQKQT]
リフレッシュレートの概念がわからないと変なの書いちゃうぞ
レートは60ヘルツかも100ヘルツかもしれないし
65とか75とか微妙な数値になることもある
DXライブラリの教本にあるように書かないと、動作環境が変わった時に同じように動く保証がない

俺が以前に見た酷い例
FPSが60切ると点数がどんどん減る意味不明なゲーム
しかもどんなアルゴリズムか知らんが、FPS60でも点数が減りっぱなし
ああいう「自分の環境しか見ない」人間は駄目だな


477 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 23:40:46 ID:fYBFrBfu]
ゲーム機のゲームってその辺固定だからなにも考えなくていいんだよなー。



478 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 23:56:34 ID:1CAlzcIC]
>>476
と言っても、個人レベルの開発でどこまで他の環境を考えられるやら。

定番のアルゴリズムとかは書けるかもしれないけど、それだけじゃ意味ないし。
結局のところ「知らね」って言いきるしかできない。

479 名前:名前は開発中のものです。 mailto:sage [2009/06/16(火) 23:59:57 ID:+nd9Tj3k]
俺今作ってるゲームはリフレッシュレート無視しちゃってる。
ティアリングが気になるんだよなぁ。

他人が作ったゲームは60FPS超えるやつとかあるけど
ティアリングあまり気にならないんだよな。どうやってんだろ。

480 名前:名前は開発中のものです。 [2009/06/17(水) 00:27:22 ID:gsrBiXQc]
>>469
WaitTimer(10); 入れるとCPU使用率が下がる ただそれだけw


481 名前:名前は開発中のものです。 mailto:sage [2009/06/17(水) 00:32:32 ID:s0zhQi6M]
>>479
君みたいな人が駄目らしいよ
自分の環境しか見ない人間は駄目なんだってさ

ていうかさ、FPSが60切ると点数がどんどん下がるゲームかどうか
ソースもアルゴリズムも考えずにどうやって判別したのかねwプッw
偉いなぁこの人wプレイしただけでバグの原因分かっちゃうって>>476は神だねwプッw

482 名前:名前は開発中のものです。 mailto:sage [2009/06/17(水) 03:56:59 ID:moXGEW/H]
環境を合わせる方法としては
1,Sleepを使ってFPSを30ほどに落としてやる。
2,時間と同期をとる。
くらいしか思いつかない。

483 名前:名前は開発中のものです。 mailto:sage [2009/06/17(水) 07:52:50 ID:zFwmddUq]
関係ないけど、テクスチャに描画する場合ってZバッファ効かないんだね

484 名前:名前は開発中のものです。 mailto:sage [2009/06/17(水) 08:55:08 ID:Sg+3JQO3]
リフレッシュレートをAPIを使ってある固定値に設定する

485 名前:名前は開発中のものです。 mailto:sage [2009/06/17(水) 15:01:39 ID:v4ECr6VG]
セガの新人教育の本の人いわく、
作りやすいのは固定フレーム、性能を活かしやすいのは可変フレーム。


自分は面倒なので、60固定前提でやってるんだが
 (1)タイマ(ミリ秒)を取得して1フレームの規定時間(16msec)が過ぎるまで待つ
 (2)モニタのVSYNCを待つ
 (3)モニタのリフレッシュレートを変更する
の3パターン用意して、あとはユーザに適当に選んでもらおうかなと。

まずいかな?


486 名前:名前は開発中のものです。 mailto:sage [2009/06/17(水) 18:17:49 ID:V4BAg+VP]
ScreenFlip使えばFPS保たれるんじゃないの

487 名前:名前は開発中のものです。 mailto:sage [2009/06/17(水) 18:47:03 ID:A2Hqv0+b]
>ScreenFlip使えばFPS保たれるんじゃないの

・環境(グラボの設定)によっては垂直同期信号待ちがOFFになってる場合があるのでFPSは保たれない。

・垂直同期信号待ちがONだとして、FPS保てる状態でも、
 モニタのリフレッシュレートを60にしてたり70にしてたりってのはユーザーの好き好きなので、
 作り手の望んだとおりのFPSになってくれるとは限らない。




488 名前:名前は開発中のものです。 mailto:sage [2009/06/17(水) 20:28:42 ID:00woQzQy]
めんどくさいからゲーム機のゲーム作ろうぜ

489 名前:名前は開発中のものです。 mailto:sage [2009/06/17(水) 20:53:25 ID:00woQzQy]
www.gbadev.org/
www.pqrs.org/tekezo/gba/index.html.ja
omoshiro-joho.com/tech-center/cgi-bin/wiki/index.php?Linux%A4%C7GBA%A5%B2%A1%BC%A5%E0%B3%AB%C8%AF
nocash.emubase.de/gbatek.htm
belogic.com/gba/directsound.shtml

490 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 01:52:47 ID:lg5GVuaj]
>>481は得点表示も見れないようです

491 名前:名前は開発中のものです。 [2009/06/18(木) 04:16:26 ID:eqFlz8O1]
勝手にリフレッシュレート60に切り替える命令とかあればいいのに

492 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 04:54:12 ID:U/ILN7Qk]
>>491
一応あるっしょ。

493 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 05:03:47 ID:4gTcdCic]
別に少々速度違ってもいいじゃない

494 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 05:07:59 ID:U/ILN7Qk]
>493
アクションゲームのゲーム速度2割アップとか結構きついですぜ

495 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 07:25:22 ID:8Inai5Jq]
DXライブラリ3Dってどうなったの?
開発中止?

496 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 09:48:52 ID:obCaTvEe]
60FPSのゲームを70FPSとか、とんでもないぜw

497 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 16:23:14 ID:FAWLSPyh]
たまに弾幕シューティングが75FPSになったりするけど、
気づくのはいつもしばらくプレイしてからだった



498 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 16:53:46 ID:U/ILN7Qk]
>497
気付かぬうちに難易度が上がってたり、タイミングが変わってミスを誘発させたりするって
ちょっと怖いよな。

499 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 17:10:57 ID:4gTcdCic]
一般的に表示上のFPSが上がるとゲーム速度も上がるものなの?

ってことは2次元アクションでいえば1フレーム毎の移動量が固定なのか。
自分自身も楽だからそういう作り方をしているけど…

例えばあるゲームで
60FPSだと重いのでコンフィグで30FPSに変更って場合は
ゲーム速度そのものは変わらないものだと思っていた。

500 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 17:35:08 ID:u8KJWVMz]
>>499
時間で処理、描画だけFPSで更新なら変わらないよ。
全体をFPS60処理だと60より上に上がらないようにしてるのが一般的かなぁ。
ツールで簡単に上げれたり、処理間に合わないとFPS下がって全体の速度も低下する。

501 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 17:56:28 ID:U/ILN7Qk]
>499
フレームではなく時間単位で処理してるなら
ゲーム速度云々の話題にすらならんと思うよ。

502 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 21:48:15 ID:3XyNBKLr]
しかし時間単位で処理すると確実にティアリングが発生するので画質面で劣るという

503 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 21:57:55 ID:y4gPpvjp]
そんなの関係なくバッドノウハウ使わない限り起きるだろw

504 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 22:12:42 ID:4gTcdCic]
発想を逆転させるんだ
ユーザーをゲームに合わしちまえばいいんだ

505 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 23:01:35 ID:7QIAxIr+]
まともにゲーム作ったことある人手あげて〜?

506 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 23:19:36 ID:cOrVzTjy]
>>502

違うんじゃない?
モニタのリフレッシュレートが60だろうが70だろうが時間単位で処理するからこそ
スピード一定でティアリングも発生しないようにできるんでしょ。

垂直同期信号が切ってあるなら、そもそもティアリングは発生してあたりまえだろうし。

507 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 23:47:20 ID:3XyNBKLr]
モニタの画面更新のタイミングを無視してメモリ上の画面データを書き換えると言うことだから
1画面分のデータの構築途中でそのメモリイメージが画面に表示されて画面上部と下部でフレームがずれるということだから
ティアリングが発生するということじゃないの



508 名前:名前は開発中のものです。 mailto:sage [2009/06/18(木) 23:58:10 ID:cOrVzTjy]
「モニタの画面更新のタイミングを無視する」なら、時間単位で処理する意味ないでしょ?

なぜ時間単位で処理する必要があるかって言ったら、
垂直同期信号待ちをして、ティアリングを起こさないようにしたいけど、
ユーザーのモニタのリフレシュレートが60なのか70なのかが判らない、からでしょ?


509 名前:名前は開発中のものです。 mailto:sage [2009/06/19(金) 00:03:49 ID:Wkij18nv]
間違えた。逆だった。
実際の画面の更新途中でメモリ上の画面データが更新された場合に、描画済み画素と未描画画素でフレームがずれるためティアリングが発生する、だった。
要するにAPIでリフレッシュレートを60に設定して60前提で作ればよい。60に対応してないモニタを使ってるやつのことは知らない。






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

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

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