DXライブラリ 総合スレッド その3
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/03/31(火) 01:14:36ID:IgyJcgapGUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリの詳細ついては
http://homepage2.nifty.com/natupaji/DxLib/
を参照して頂きたい。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
過去スレ:DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
0101名前は開発中のものです。
2009/04/16(木) 05:02:47ID:XS+5u9bOOSはVistaかい?
VistaだとDesktopWindowManagerが自動でティアリング防止するように描画順を待機するようになるからティアリング無いかもね。(未検証でゴメン)
詳しくはここ。http://d.hatena.ne.jp/enra/20081014#p2
で、XPでDirectX7環境だとティアリングが発生します。でもXPでもDirectX9が検出できた場合に限ってScreenFlipで垂直同期待ちになる模様。
(もしくはティアリングが発生していても、線がウィンドウの領域と被ってないので見えてないだけかもしれない)
0102名前は開発中のものです。
2009/04/16(木) 05:18:57ID:WR6HuXg0なるほどなるほど
VSync まちでいろいろやってるループより sleep の方が軽いのは当然てことか
0103名前は開発中のものです。
2009/04/16(木) 05:27:06ID:12a1chsH2000/XPです。
下方向に高速スクロールする画面で、Vsync同期/非同期を切り替えられるようにしてます。
明らかに違いが出てきますね。
ティアリングに敏感な人なら確実に分かると思います。
同期してないとガリガリしてるような気がします。
でも、フルスクリーンの方がさら〜って感じでさらにきれいに見えるのも謎。
60Hzと70Hzじゃ描画回数が違うので当然なんだけど。(見た目にも描画回数が多いのがはっきりわかる)
でもこれはウィンドウモードとフルスクリーンじゃ絵柄自体の大きさが違うので錯覚してるだけかも。
>でもXPでもDirectX9が検出できた場合に限ってScreenFlipで垂直同期待ちになる模様。
これはかなり興味深いですね。初めて聞きました。
ウィンドウモードでも間違いなく同期してると思ってる派なので調べてみます。
0104名前は開発中のものです。
2009/04/16(木) 15:55:17ID:U7PVHoMj>70の時は1/70だから1/60よりも速いからその分だけ待てばいいのでは
そしたら70FPSになるんじゃないか。
70FPSは60FPSより1秒間に10フレーム多い事になるから、
6フレームごとに1回、空待ちさせれば60FPSを実現させる事はできるけど、
ゲームの処理時間が、「60FPSだと余裕があるが、70FPSだと足りない」
って時に処理落ちがひどくなる。
0105名前は開発中のものです。
2009/04/16(木) 19:22:11ID:/YbqE5Rhって本に間違いってないですか?
何度書き直しても、サンプルプログラムにエラーが発生します
(P118です)
0106名前は開発中のものです。
2009/04/16(木) 19:37:00ID:D5YSrYi0よくわからないけど、4章-01の最後、P125まで全部入れてひとつのプログラムだぞ。
・main.cpp
・gameframe.h
・gameframe.cpp
0107名前は開発中のものです。
2009/04/16(木) 19:41:32ID:D5YSrYi0gameframe.h の先頭で、#include "DxLib.h" 宣言しておかないとむりぽ
これ、本文に書いてない。
P120上の画面写真のプログラムには、しれっと入ってるけど。
0108名前は開発中のものです。
2009/04/16(木) 20:44:04ID:uc3ezfKA0109名前は開発中のものです。
2009/04/16(木) 23:14:39ID:BmH0FmoL誤植多いそうです
0110名前は開発中のものです。
2009/04/16(木) 23:53:51ID:LfSelEBA0111名前は開発中のものです。
2009/04/17(金) 00:52:02ID:EZBCVXFEint 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;
}
}
こんな感じでScreenFlip()の前に書いてみて。
今ちょっと60Hz以外選べない環境なので今は確かめられないけど、
たしか以前試したときはちゃんと60Hz以外でも60fps出てたはずだよ。
0112名前は開発中のものです。
2009/04/17(金) 05:23:57ID:WaZv4/Kc0113名前は開発中のものです。
2009/04/17(金) 05:51:08ID:Zvoaz6Vb俺もそんな気がしてきた
0114名前は開発中のものです。
2009/04/17(金) 09:10:19ID:Ulw/lN4/CPU使用率100%から0%になった/(^o^)\ナンテコッタイ
例えばタイトル画面とか即時性のない入力待ちの時って
ちょっと長めにSleep入れたりするほうがいいのかな?
20msぐらいなら問題ないのだろうか・・・
0115名前は開発中のものです。
2009/04/17(金) 09:45:55ID:0V/Re1GH>ちょっと長めにSleep入れたりするほうがいいのかな?
少なくとも俺は入れてる。
>20msぐらいなら問題ないのだろうか・・・
全然問題ないと思う。
もっと入れてもいいくらいでしょ。
実際にやってみて自分でストレス感じるなら減らせばいい。
0116名前は開発中のものです。
2009/04/17(金) 13:46:09ID:WaZv4/Kc20msぐらいなら大丈夫だけどね。
0117名前は開発中のものです。
2009/04/17(金) 16:20:15ID:Zvoaz6Vb0118名前は開発中のものです。
2009/04/17(金) 19:34:30ID:LNYxAbHWあと音楽のループ再生する時はScreenFlipを毎フレーム呼ぶ必要があるみたいだし
0119名前は開発中のものです。
2009/04/17(金) 20:21:09ID:jcPGGnUFマジサンクス
0120名前は開発中のものです。
2009/04/17(金) 20:22:40ID:xbUmRi3d0121名前は開発中のものです。
2009/04/17(金) 20:22:58ID:erDEgGZV0122名前は開発中のものです。
2009/04/17(金) 22:03:28ID:EZBCVXFE音楽再生とScreenFlipは関係ないと思うよ。
CPUが100%になるのは明らかに異常だからちゃんとProcessMessage()かSleep()出来てるか確かめた方がいいよ。
たぶんウィンドウ自体をドラッグすらままならない状態だと思うから。
OSにタスクさえ返してあげられてればCPUが多少高くても気にしなくていいと思うけどなぁ。
ゲームって常駐させたり多重起動させたりするものじゃないし。
0123名前は開発中のものです。
2009/04/17(金) 22:17:35ID:ZoeUfmZ70124118
2009/04/18(土) 02:18:14ID:k17DhjXo素で間違えてたorz
何と言う勘違い 恥ずかしい限りです しばらくROMってます
0125名前は開発中のものです。
2009/04/18(土) 21:37:09ID:okbqytId片側のディスプレイだけ明らかに画面がぼやけるんだけど
DirectXの設定かビデオカードの設定がおかしいんだよなこれ?
0126名前は開発中のものです。
2009/04/18(土) 22:23:48ID:okbqytIdSetEmurationやSetGraphModeで画面を引き延ばすと起こるっぽい
ディスプレイの設定なのかよく分からん・・・
0127名前は開発中のものです。
2009/04/19(日) 00:37:44ID:BefQR+3B同意求められても答えられる人ほとんどいないんじゃない?
0128名前は開発中のものです。
2009/04/20(月) 22:52:47ID:eX32oi4P0129名前は開発中のものです。
2009/04/21(火) 15:00:56ID:UkM4PCidScreenFlipは裏画面と表の内容を交換するで
ScreenCopyは裏画面の内容を表に上書きコピーなんだったんだなー
0130名前は開発中のものです。
2009/04/24(金) 01:45:21ID:Zjz+Ahwz0131名前は開発中のものです。
2009/04/25(土) 02:57:38ID:jgu2I7ssシャギるな。俺もだ。
設定次第ではどうにかなるのかもしれんけど。
どっちにせよわざわざウィンドウを引っ張って画面を跨らせることもなかろう。
0132名前は開発中のものです。
2009/04/27(月) 18:31:23ID:FIDn8lAk0133名前は開発中のものです。
2009/04/27(月) 21:58:22ID:z25pzrXj0134名前は開発中のものです。
2009/04/28(火) 00:04:23ID:eksjqOvu大学生が入門書に読んでちょうどいいレベルだろコレ
0135名前は開発中のものです。
2009/04/28(火) 00:10:39ID:HkJlrRjH0136名前は開発中のものです。
2009/04/28(火) 00:34:07ID:m4cMSkq6俺はBASICがせいぜいだったが、
マシン語とかやってる友人もいたし
決して無理じゃないだろう。
0137名前は開発中のものです。
2009/04/28(火) 00:45:01ID:NnZtX6wz0138名前は開発中のものです。
2009/04/28(火) 01:53:08ID:OFMPoMrl0139名前は開発中のものです。
2009/04/28(火) 08:20:28ID:6tVcbqW6簡単に作れるように自前ライブラリ用意してるけど
そのせいでDxLib関数なのか自前関数なのかごっちゃになってるし。
間に20章ぐらい入れて10本以上ゲーム作って、本の厚さが倍になってもいいぐらい。
0140名前は開発中のものです。
2009/04/28(火) 09:19:39ID:nBjz8W9Wそしたら、値段も倍になるがな
0141名前は開発中のものです。
2009/04/28(火) 10:17:56ID:eksjqOvu小学生 ゲーム遊ぶのおもしれえwww
中学生 ツクールおもしれえwww
高校生 VisualBASICとかC言語を始めるか
大学生 C++とかJAVAで2Dゲームでも作るか
20代 3Dゲーム、オンラインゲーム作るよ!
30代 何でこんな仕事を選んだんだろう……
40代 クビになった。新しい仕事探すか……
50代 息子よ。おれは昔、ゲーム開発をやっててなあ
60代 年金安いのう……
70代 孫よ。わしは昔、ゲーム開発を(ry
80代 開発の仲間……もうみんなこの世におらん……
90代 ゲーム? 何のことかいね
100代 「おじいちゃん! それはご飯じゃないよ、ゲームだよ!」
晩年 「おじいちゃんは亡くなる前に、大好きな『ハレハレユカイ』を唄っていました」
0142名前は開発中のものです。
2009/04/28(火) 10:28:58ID:FvUt88Xp0143名前は開発中のものです。
2009/04/28(火) 16:15:43ID:6TTz0S/cいまここ
0144名前は開発中のものです。
2009/04/28(火) 22:07:41ID:MfOPTYG9これいじる方法はDXライブラリには無いんですか?
0145名前は開発中のものです。
2009/04/28(火) 22:15:25ID:GpFUP3xeつSetGraphMode
0146名前は開発中のものです。
2009/04/28(火) 22:24:39ID:MfOPTYG9ありがとうorz
すみません。ウインドウモードの項ばかり探してました
0147名前は開発中のものです。
2009/04/28(火) 23:44:24ID:AAXsWLBJ0148名前は開発中のものです。
2009/04/29(水) 00:04:40ID:fznxD5WLやあ、俺
0149名前は開発中のものです。
2009/04/29(水) 00:57:49ID:8JDzhdlg何でこんな仕事を選んだんだろう……相談する同僚がいない
>30歳 ←いまここ
俺
0150名前は開発中のものです。
2009/04/29(水) 12:12:40ID:0KNrHYhz中学生 PC98買ってもらってtakeruとかでゲーム買ったりベーマガ買ってBASICで遊ぶ
高校生 女遊びでPCなんていじらない
大学生 にはならずにバイト生活。PCなんて無縁
20代 実家に帰るとWindows98とネットがあったので暇だったのでいじってみる。
ここでwebの世界やプログラミング熱再発。色々物色する。
そしてそのまま引きこもり。
30代 ←もうすぐここ
0151名前は開発中のものです。
2009/04/29(水) 12:23:18ID:Id8MNKk30152名前は開発中のものです。
2009/04/29(水) 13:15:43ID:0KNrHYhz0153名前は開発中のものです。
2009/04/29(水) 14:34:34ID:DcEbzAT60154名前は開発中のものです。
2009/04/29(水) 14:49:56ID:eqm+L+6k0155名前は開発中のものです。
2009/04/29(水) 15:17:03ID:GO8Ds4lj0156名前は開発中のものです。
2009/04/29(水) 19:22:33ID:sy8jjFeIプランナーや絵描きなどで生きられるだけの資産がなければ、そのままスクラップだ
ゲーム会社も高齢化が進んでて、新しい概念が作れなくなってきている
0157名前は開発中のものです。
2009/04/29(水) 19:25:35ID:eqm+L+6k新しい概念が作れないのはゆとりが増えたから
0158名前は開発中のものです。
2009/04/29(水) 20:32:14ID:2b50vk1R0159名前は開発中のものです。
2009/04/29(水) 21:37:02ID:Dpfb2ylv0160名前は開発中のものです。
2009/04/30(木) 00:27:05ID:JN4PBkevDXライブラリで実現できますでしょうか?
GetDragFilePath()の使い方がいまいちわかりません。
ご教授お願い致します_ _
0161名前は開発中のものです。
2009/04/30(木) 00:58:25ID:qZvDrEy3D&Dに関しては、GetDragFilePathでググって出てきたページの内容を見る限り、
この関数は毎フレーム呼び出し、戻り値はD&Dされていれば0、されていなければ-1となる。
D&Dされてたら、引数で渡したバッファにD&Dされたファイルのパスが入ってくる。
ちなみにD&Dされたファイルの個数はGetDragFileNum()で取得できる。
複数ある場合は、その数だけGetDragFilePathを呼べば1つずつファイルパスを取得できる。
ちなみにこれらは毎フレームに一度DragFileInfoClear()で初期化してから使うべき。
ただ情報が古い可能性もあるし、実際試したわけじゃないから、
今のDXライブラリでできるかどうかは知らない。
0162名前は開発中のものです。
2009/04/30(木) 01:05:34ID:qZvDrEy30163名前は開発中のものです。
2009/04/30(木) 01:56:07ID:JGk3snwAint WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow){
ChangeWindowMode(TRUE);
SetMainWindowText("(´・ω・`)");
if(DxLib_Init() == -1 ){return -1;}
int open,tdn,cc;char file[256];
SetDragFileValidFlag(TRUE);SetDrawScreen(DX_SCREEN_BACK);SetFontSize(32);
while(ProcessMessage()==0){
ClearDrawScreen();
open=GetDragFilePath(file);//D&Dでファイル獲得する open:ファイル獲得が成功か失敗か判定
if(open==-1&&CheckMusic()==0)DrawFormatString(0,100,-1," なんか音楽を食わせろ!ESCキーで終了");
if(CheckMusic()==0&&cc==0){SetMainWindowText("(´・ω・`)");cc=1;}
if(CheckMusic()==1)DrawFormatString(0,100,-1," 音楽を止めるのならスペースを押せ!");
if(CheckHitKey(KEY_INPUT_SPACE)==1)StopMusic(); //スペースで音楽を止める
if(CheckHitKey(KEY_INPUT_ESCAPE)==1)break; //エスケープで終了
if(open!=-1){ //ファイル獲得成功
cc=0;SetMainWindowText(file);tdn=PlayMusic(file,DX_PLAYTYPE_LOOP);}
ScreenFlip();Sleep(20);
//音楽ファイル以外を食わせた場合w
if(tdn==-1){MessageBox(NULL,"(゚Д゚)ゴルア!"," それ再生できねーし",0x0000030);StopMusic();break;}
DragFileInfoClear();
}
InitSoundMem();
DxLib_End() ;
return 0 ;
}
0164名前は開発中のものです。
2009/04/30(木) 02:04:43ID:JN4PBkev>>163さんにはサンプルまでご用意いただいて感激です!
これでBGMをプレイヤーに指定させることができます。
即レス感謝!ありがとうございました!!
0165名前は開発中のものです。
2009/04/30(木) 09:08:28ID:QAaf0WGA0166名前は開発中のものです。
2009/04/30(木) 13:16:31ID:Nu0gAO100167名前は開発中のものです。
2009/05/01(金) 08:16:49ID:OvJuayUs見栄えや諸々の理由で画像ファイルとして文字を作ることにした。
インストールされてるフォントを使って12x16のサイズのカタカナを
ほぼそのまま描いてるんだけど、どうしてもエッジが目立っちゃう。
縁取りとか、影とか、ぼかしとか色々試したんだけど難しい。
みんなはどうやってるの?あと、デザインとか凝ったりするの?
0168名前は開発中のものです。
2009/05/01(金) 09:46:27ID:g5JaObohその辺は、普通に。 まずは、見栄えとかよりも、完成が先だしね。
「文字 CG 講座」とか「ロゴ 制作」とかで検索すrば、やりたい事の方法が見つかると思う。
0169名前は開発中のものです。
2009/05/01(金) 10:22:40ID:SX1l7Niwセリフとかそんなヤツなら、何も工夫せずにそのままDrawStringで表示してる。
>デザインとか凝ったりするの?
デザインが大事なのは理解してるが、センスが壊滅的なので
あきらめて最低限で済ませてる。
0170名前は開発中のものです。
2009/05/01(金) 14:38:00ID:OvJuayUsありがとう。俺もデザインが壊滅的です。
しょぼ画像で今まで普通にやって来たんだけど、
先日ゲーセンで業務用のゲームを見たのがいけなかったw
最近はフォントを一文字ずつ手打ちでドット修正して、
気付いたら4、5時間経ってて結局上手くいかなかったとかあって。
まあでも、「この方法では出来ない」っていうのが少し分かったのは収穫だけどw
ゲーム作るのってやっぱり色々な知識が必要だね。
0171名前は開発中のものです。
2009/05/01(金) 21:45:00ID:n+u5dqvm0172名前は開発中のものです。
2009/05/02(土) 08:08:52ID:Sn/Kauilそれで飯食っている奴がいるくらいだから奥が深いよな。
フォントの選定とか字間とか決めるだけでも大変。
0173名前は開発中のものです。
2009/05/02(土) 13:50:47ID:BkuXnv3v台詞に使って日本語漢字とかまでなるとやってられないから普通に既存フォントのでやってるな。
フリーのフォントいくらでもあるから、それ使えばいいんじゃないか?
テキストに文字書いておけば、指定フォントのを画像ファイルにして出力するソフトなかったっけか。
0174名前は開発中のものです。
2009/05/02(土) 14:40:37ID:M7HWaCGQ0175名前は開発中のものです。
2009/05/04(月) 16:41:52ID:FkdRsV2LSetAlwaysRunFlagで非アクティブでも処理を実行し続けるようにして
アクティブ時はCPU使用率15〜20%ぐらいでスムーズに動いてるけど
非アクティブ時は、CPU使用率が0近くになってしまいます。
処理もカクカクになってしまうのですが、
どうにも原因や解決法について手詰まりになってしまったので
何かアドバイスをいただけませんでしょうか?
0176名前は開発中のものです。
2009/05/04(月) 16:47:43ID:dGZpGfbHこれが参考になるかも
ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1224
0177名前は開発中のものです。
2009/05/04(月) 17:21:31ID:FkdRsV2LΣ (゚Д゚;)うおー解決したー!!
DXライブラリ自体の仕様的問題だったとは・・・
ありがとうございましたー
0178名前は開発中のものです。
2009/05/05(火) 23:39:46ID:klIXgzed0179名前は開発中のものです。
2009/05/06(水) 01:59:46ID:36dZu90f0180名前は開発中のものです。
2009/05/07(木) 01:34:26ID:cIvk0VJgどんな簡単な条件でもだめ
whileは全然問題なし、仕方ないからfor文で代用した
0181名前は開発中のものです。
2009/05/07(木) 01:39:44ID:AtAjM9gE0182名前は開発中のものです。
2009/05/08(金) 13:06:52ID:H40Fz4tQ条件を逆にしてみれば?
0183名前は開発中のものです。
2009/05/08(金) 17:28:23ID:mPd9shMxhello world的なコンソールアプリだとなんともないのに
DXライブラリだと動かないのか?
またまたご冗談を○ノ
0184名前は開発中のものです。
2009/05/08(金) 21:29:41ID:1gmuUpcC3Dも触ってみたくなったら次はどの辺のライブラリがお勧めかな?
0185名前は開発中のものです。
2009/05/08(金) 21:43:28ID:mPd9shMxライブラリを使うにしても。
0186名前は開発中のものです。
2009/05/08(金) 23:03:24ID:1gmuUpcC直かー、興味はあるけど難しそうだね
その辺もライブラリのソースを見てみたい感じ
DXライブラリ3Dを引き継いでる(?)のがSiv3Dで公開はまだしていないのか
0187名前は開発中のものです。
2009/05/09(土) 03:40:25ID:lfg6KlkW0188名前は開発中のものです。
2009/05/09(土) 10:18:06ID:K91OINFM現時点ではDarkGDKがお勧め。
DarkBasicをC言語で使えるようにしたライブラリだが、DXライブラリ並に簡単に3Dが使える。
資料もDarkBasicのものが使えるから検索すればかなり見つかると思う。
0189名前は開発中のものです。
2009/05/09(土) 11:47:43ID:kLkdvUF6直叩きはいいけど、ウインドウズと付き合うのがイヤなんだ俺は。
今の俺の技術なら、WinProcの多重switch〜caseの悪夢から逃れられるかもしれないけど。
ここが奇麗にラッピングできたら、DxLibから離れられる。
0190名前は開発中のものです。
2009/05/09(土) 19:21:56ID:jAmZ4VAacでも動く?
0191名前は開発中のものです。
2009/05/09(土) 19:40:27ID:E8u7Mo3p意味も分らずに質問してるのか?それとも釣りか?荒らし?
>(使用する際はC言語の知識だけで大丈夫です)
と、Topページにすら書いてあるが・・・・・
0192名前は開発中のものです。
2009/05/09(土) 19:55:55ID:lCTV4YZ7その回答だと、それはそれで微妙じゃないか?
0193名前は開発中のものです。
2009/05/09(土) 20:07:46ID:IQdWMaEzOpenGLも基礎の基礎ぐらいは分かる。
しかしC++は全くやったことないから、Cのソースコードでも動くのかなぁって思ってさ
つうかこの俺のこの程度のレベルで開発できるのか?w
0194名前は開発中のものです。
2009/05/09(土) 20:14:03ID:trjZI4JPBASICくらいしかまともに使えなかった俺でも作れてる。
0195名前は開発中のものです。
2009/05/09(土) 20:46:52ID:eADherQO0196名前は開発中のものです。
2009/05/09(土) 20:58:33ID:IQdWMaEz自分も通らなかったから、やっぱりcppでやらないとダメか…。
でもcとc++の違いって引数の所とかreturn 0;を入れる事ぐらいだよね
それなら俺にも作れそうだ
0197名前は開発中のものです。
2009/05/09(土) 21:35:15ID:mrxl7P60http://gamdev3.hp.infoseek.co.jp/cgi-bin/up/No_0415zip.html
0198名前は開発中のものです。
2009/05/09(土) 21:37:34ID:lCTV4YZ7そりゃ細かいところは違うけど。
0199名前は開発中のものです。
2009/05/09(土) 22:24:26ID:yqvEK1UxCのつもりで書いてるけど特に問題は起こってない。
0200名前は開発中のものです。
2009/05/09(土) 22:42:09ID:trjZI4JPきっぱり乗り換えた方が早いと思うよ。
■ このスレッドは過去ログ倉庫に格納されています