DXライブラリ 総合スレッド その5
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2009/12/04(金) 16:49:13ID:7SKA4I5zGUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
【公式】
http://homepage2.nifty.com/natupaji/DxLib/
【過去スレ】
DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/
DXライブラリ 総合スレッド その4
http://pc11.2ch.net/test/read.cgi/gamedev/1249822550/
0792名前は開発中のものです。
2010/02/01(月) 18:52:33ID:Lf2Nvhz50793名前は開発中のものです。
2010/02/01(月) 18:58:44ID:xufADCF/0794名前は開発中のものです。
2010/02/02(火) 13:39:47ID:EWwGB+Nl0795名前は開発中のものです。
2010/02/02(火) 13:53:12ID:ZXzo3Aq80796名前は開発中のものです。
2010/02/02(火) 13:54:59ID:6T1hs+2r0797名前は開発中のものです。
2010/02/02(火) 18:27:35ID:NU2kONNzコンパイラが対応しているかどうかは別として。(比較的最近のVisualStudioなら問題なし)
もちろん、32bitでも同様。
で、開発マシンが32/64問わず、
64bit用としてビルドしたアプリ本体 + 32bit用としてビルドしたDLL → 動かない
32bit用としてビルドしたアプリ本体 + 32bit用としてビルドしたDLL → たぶん動く
であると。
0798名前は開発中のものです。
2010/02/02(火) 21:43:09ID:ZXzo3Aq80799名前は開発中のものです。
2010/02/02(火) 22:29:37ID:ocqUn9yT0800名前は開発中のものです。
2010/02/02(火) 23:35:47ID:3geZi3lZ0801名前は開発中のものです。
2010/02/03(水) 05:04:33ID:U8Pd5rkG0802名前は開発中のものです。
2010/02/03(水) 05:54:02ID:XTUJJ4Iuその基本的って部分がちょっとだけ気になる。
0803名前は開発中のものです。
2010/02/03(水) 08:44:53ID:g7fkj8BM従前どおりの32Bitアプリが何の問題もなく動くので徒労。
メモリを4GB以上使いたい場合以外にあえて64Bit化する意味は薄い。
0804名前は開発中のものです。
2010/02/03(水) 14:05:09ID:5f3a6r9D0805名前は開発中のものです。
2010/02/03(水) 14:18:36ID:gyXnlokN長方形のキャラ(回転なし)とかだと後者の方が便利だし。
0806名前は開発中のものです。
2010/02/03(水) 15:51:20ID:U8Pd5rkG0807名前は開発中のものです。
2010/02/03(水) 22:19:22ID:WAfqMpru0808名前は開発中のものです。
2010/02/03(水) 22:40:10ID:U8Pd5rkG0809名前は開発中のものです。
2010/02/03(水) 23:31:20ID:y+n9ea+J思っていたより使い勝手悪いな…
0810名前は開発中のものです。
2010/02/03(水) 23:39:52ID:mUdTkHdF0811名前は開発中のものです。
2010/02/04(木) 01:32:44ID:9yr7SgZzAddFontResourceを使ってゲーム起動時に追加出来た
0812名前は開発中のものです。
2010/02/04(木) 10:22:35ID:B+CnvqXs0813名前は開発中のものです。
2010/02/04(木) 15:03:56ID:0uWBCETAパスワードってリテラルでEXEに埋め込んじゃってダイジョブなん?
0814名前は開発中のものです。
2010/02/04(木) 15:08:11ID:WAZ4oke50815名前は開発中のものです。
2010/02/04(木) 18:53:49ID:QxyExYir自分で何とかできないのなら諦めて普通に使うしかないだろう。
0816名前は開発中のものです。
2010/02/04(木) 18:55:51ID:0uWBCETA0817名前は開発中のものです。
2010/02/04(木) 19:04:15ID:1Mq3yDnQようは
「入力された文字」==「キー」
ってやってもだいじょうぶかきいてるんだろ?
キーはみえる
0818名前は開発中のものです。
2010/02/05(金) 01:25:04ID:a9qwHvOSそれをキーに使ったほうがわかりにくくていいんかな
0819名前は開発中のものです。
2010/02/05(金) 01:30:13ID:y9Rl8Gqjどうしてそこまで隠したがるのか知らないけど。
俺は、俺の作ったゲームをプレイした人が
「このゲームの生データ見てみたい!」
って思ってくれるほど魅力があるデータを作れた自信がないから
そこまで心配はしてないな。
0820名前は開発中のものです。
2010/02/05(金) 01:31:15ID:RCBVAjHS暗号鍵を何かでエンコードしてリテラルとしてソースコード埋め込んどいて、SetDXArchiveKeyStringにデコードして渡すとか?
0821名前は開発中のものです。
2010/02/05(金) 02:23:43ID:9VhG5z2Zどうしようもない気はする
0822名前は開発中のものです。
2010/02/05(金) 16:46:58ID:N9JJZcSG今のところ10000ポリゴンはあるんだが。
ちなみにメタセコでCark(分割)4の曲面化つかったデータね
ちなみに胴体だけです
これじゃ動かないかなあ
0823名前は開発中のものです。
2010/02/05(金) 16:50:07ID:qcSvBbHwNowLoading...のアニメーションを動かしながらロード、ってのをしたいんだけど、
読み込みとアニメーションを並行してやる方法が分からないんだ
0824名前は開発中のものです。
2010/02/05(金) 16:52:34ID:Ir4+43zS>>492
0825名前は開発中のものです。
2010/02/05(金) 19:50:51ID:EoD901Y80826名前は開発中のものです。
2010/02/05(金) 20:17:16ID:Ir4+43zS1フレームに1つずつファイルを読み込みながらアニメーション表示させる。
マルチスレッドを使ってもいいけどこっちの方が簡単。
0827名前は開発中のものです。
2010/02/05(金) 20:25:49ID:qcSvBbHw公式の掲示板の過去ログで、2007年にLoadGraphはマルチスレッドに対応してないみたいな事を管理人さんが・・・
>>826
音声ファイルとかだと1フレームの間にロードし終わってくれますかね・・・?
0828名前は開発中のものです。
2010/02/05(金) 20:30:27ID:g1+Hi/0aたしかにちょっと止まるな
0829名前は開発中のものです。
2010/02/05(金) 20:30:28ID:EoD901Y80830名前は開発中のものです。
2010/02/05(金) 20:38:57ID:XWwIt0Ve0831名前は開発中のものです。
2010/02/05(金) 20:58:53ID:Ir4+43zSそもそもプレイヤーにストレスを与えないようにするのが目的だし、実際「NowLoading...」と表示しておきながら読み込み以外の処理もしてたりするしね。
あと>>826の方法は確かに処理落ちする可能性はあるけど何か問題あるの?
どうせプログレスバーを表示させるぐらいじゃないの?
0832名前は開発中のものです。
2010/02/05(金) 21:03:23ID:g1+Hi/0a0833名前は開発中のものです。
2010/02/05(金) 21:04:42ID:qcSvBbHw起動時に全部読み込むと、読み込みファイルのサイズが大きくなったときにちょっと・・・。
できるだけ逐次ロードしたいから・・・。
あと、最初に読み込もうとすると数秒止まっちゃって、それが気にくわないというかストレス。
0834名前は開発中のものです。
2010/02/05(金) 21:37:34ID:RBAQ2+kz0835名前は開発中のものです。
2010/02/05(金) 21:58:05ID:RjYJfLjOttp://codepad.org/HMbYruHZ
0836名前は開発中のものです。
2010/02/05(金) 22:31:40ID:qcSvBbHwおお・・・ 参考にしてみまする
0837名前は開発中のものです。
2010/02/05(金) 22:43:27ID:Xzk70bELなんかループ{
なんかロード1コ
なんかナウローディングとか表示
なんか四角とか描画(x, y ,x+i, y);
画面更新
}
CとかDirectXライブラリの記述方法は忘れた
0838名前は開発中のものです。
2010/02/05(金) 22:55:33ID:9VhG5z2Z0839名前は開発中のものです。
2010/02/05(金) 23:11:28ID:a9qwHvOSwhile(!end())
{
read( Nバイト );
draw();
}
これならフレームレート安定するだろう
でもわざわざ読み込み速度を意図的に落としてまでやるべきなのかは疑問
0840名前は開発中のものです。
2010/02/05(金) 23:14:04ID:+ZQFEOdr>read( Nバイト );
ってどうやんの?
0841名前は開発中のものです。
2010/02/05(金) 23:19:28ID:qcSvBbHwやっぱりLoadGraphはマルチスレッド対応してないってことなのかな・・・。
>>839
kwsk
0842名前は開発中のものです。
2010/02/05(金) 23:29:20ID:ax38IgEf0843名前は開発中のものです。
2010/02/05(金) 23:31:09ID:9VhG5z2Z0844名前は開発中のものです。
2010/02/05(金) 23:45:43ID:tUrF1ELAある日突然落ちたりしてデバッグで泣くことになるぞ。
CPUのコア数によって出たり出なかったりとかするからな。
0845名前は開発中のものです。
2010/02/06(土) 02:01:00ID:npht8xA60846名前は開発中のものです。
2010/02/06(土) 02:46:06ID:Y+vgz54E0847名前は開発中のものです。
2010/02/06(土) 03:13:17ID:ryKI6KOb0848名前は開発中のものです。
2010/02/06(土) 04:54:47ID:sLGxAtvo0849名前は開発中のものです。
2010/02/06(土) 07:42:28ID:heYW4fwh静止画を表示しながら読み込み(2秒間)⇒「NowLoading...」(0.2秒)
本人曰く「ただ気分を味わいたかった」と。
でも実際のゲームを見てみるとプレイヤーからはそれは分からないし、むしろ「ロード早いなあ」という印象すら受けた・・・
これも一つの答えなんだと思ったよw
マルチスレッドを使う方法は↓に書いてある。
http://hpcgi2.nifty.com/natupaji/aska.cgi
あと画像はLoadDivGraphで分割読み込みができる。
0850849
2010/02/06(土) 07:48:32ID:heYW4fwh掲示板のリンクがダメですね・・・
記事No「1896」です。
0851名前は開発中のものです。
2010/02/06(土) 09:42:16ID:AjOTNEN+LoadDivGraphで分割読み込み、ってアレはひとつの画像を複数の画像に分割するんであって、
分割してひとつの画像読み込むわけじゃないっていう
マルチスレッドの方は読んでみた
応用してやれないか試してみる
0852名前は開発中のものです。
2010/02/06(土) 13:12:13ID:6i+WO82B要所要所で動作が若干止まったりしたほうが読み込んでるっぽくてユーザも安心するし
0853名前は開発中のものです。
2010/02/06(土) 13:15:04ID:m1I5HW8a0854名前は開発中のものです。
2010/02/06(土) 13:30:09ID:xpV9NzXE0855名前は開発中のものです。
2010/02/06(土) 14:19:32ID:heYW4fwh読み込みの進捗を表示させるようなタイプなら>>823で多少カクカクしても問題ないと思うし、むしろマルチスレッドにすると同期を取るのがめんどくさいし。
逆にもっと派手なアニメーションだと処理落ちすると見栄えが悪くなるのでマルチスレッドにするしかないと思う。
ただ個人的には同人ゲームなら静止画で「NowLoading...」と表示させておくだけで十分だと思うんだけど・・・
0856名前は開発中のものです。
2010/02/06(土) 15:27:53ID:hilmmGtE0857名前は開発中のものです。
2010/02/06(土) 16:16:36ID:+7JZw7l00858名前は開発中のものです。
2010/02/06(土) 16:21:12ID:AjOTNEN+0859名前は開発中のものです。
2010/02/06(土) 22:28:44ID:fMJ0B1gK0860名前は開発中のものです。
2010/02/06(土) 23:38:51ID:cCb1U7aqBlenderにも対応してる?
0861名前は開発中のものです。
2010/02/07(日) 07:39:53ID:cnkJTmx7>これって3dもつくれるんだよね?
作れるよ。
>Blenderにも対応してる?
モデリングソフトの対応状況は過去レスを見てみて。
BlenderはFBXが使えるみたい。
0862名前は開発中のものです。
2010/02/11(木) 23:41:27ID:AgKonL0CDXライブラリの範疇ではないのかな。
なにか調べる取っ掛かりはない?
0863名前は開発中のものです。
2010/02/12(金) 02:48:39ID:iGppiI+j0864名前は開発中のものです。
2010/02/12(金) 04:35:23ID:Z51oc7q7DXライブラリは知らんけどリアルタイムレンダリングがデフォじゃない?
0865名前は開発中のものです。
2010/02/12(金) 07:46:33ID:gSVuHgsF「コンストレイント」で検索してみるといいよ。
やり方は簡単で>>863の言う通り、「手」の移動と回転を「武器」に加えるだけ。
0866名前は開発中のものです。
2010/02/12(金) 15:42:11ID:9oJmNhGP0867名前は開発中のものです。
2010/02/12(金) 21:24:07ID:m/RgGbdM0868名前は開発中のものです。
2010/02/12(金) 21:53:10ID:5g1bekrX0869名前は開発中のものです。
2010/02/12(金) 22:17:37ID:gSVuHgsF試してないけど戻り値がLONGLONG型なので「%I64d」か「%lld」じゃないかな。
0870名前は開発中のものです。
2010/02/12(金) 22:39:37ID:3A3ijQ60サンクス!
やり方、納得です。
取り敢えず手の回転並進行列とって、そのまま武器に適用させてみる。
0871名前は開発中のものです。
2010/02/12(金) 23:19:30ID:gSVuHgsFチップグラフィックを使ったマップ描画
int MapWidth, MapHeight : マップデータ全体の幅と高さ
int *MapData : マップデータが格納されたアドレス
int ChipTypeNum : マップに使うチップの種類の数
int *ChipGrHandle : チップのグラフィック配列のアドレス
int TransFlag : 透過色処理の有無
int MapDrawX, MapDrawY : 描画するマップの起点となる左上座標
int MapDrawWidth, MapDrawHeight : 起点座標から描画するマップの幅と高さ
int ScreenX, ScreenY : マップを描画する画面上の座標
(2004/02/08)
2.11 DrawChipMap 関数を非公開関数に変更。
0872名前は開発中のものです。
2010/02/13(土) 00:47:58ID:lykIm1Dnサンクス!
lldでいけました。
0873名前は開発中のものです。
2010/02/13(土) 18:36:09ID:nVI35ftX何か簡単な方法って無いものかな?
拡縮してから回転させたときと、回転させてから拡縮するときとで結果が異なるけどさ。
無いなら無いで、自前で座標を計算してDrawModiGraph()に投げるつもりだけれど。
0874名前は開発中のものです。
2010/02/13(土) 19:30:01ID:pV6Ocbxc0875名前は開発中のものです。
2010/02/13(土) 22:38:54ID:nVI35ftX0876名前は開発中のものです。
2010/02/14(日) 21:14:56ID:9DOaOyQ2ClearDrawScreen()
SetDrawBlendMode( DX_BLENDMODE_ALPHA, ・・・
DrawGraph(・・・
ScreenFlip()
って書いたら、1箇所使っただけなのにかなり処理が重くなる
DrawGraphが悪い?
フレームスキップするしかない?
0877名前は開発中のものです。
2010/02/14(日) 21:20:54ID:lH/o5bwf本当にその四行だけで試してみた?
0878名前は開発中のものです。
2010/02/14(日) 21:21:28ID:I7ZtRrpB0879名前は開発中のものです。
2010/02/14(日) 21:24:26ID:9DOaOyQ2ClearDrawScreen()
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 )
DrawGraph(・・・ // 普通の画像
SetDrawBlendMode( DX_BLENDMODE_ALPHA, ・・・
DrawGraph(・・・ // 半透明させるの画像
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 )
DrawGraph(・・・ // 普通の画像
ScreenFlip()
こうやってます
画像を重ねる都合上、
SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 ) を2回やってます
もっと効率よい方法があるんでしょうか?
0880名前は開発中のものです。
2010/02/14(日) 21:26:43ID:9DOaOyQ2フレームスキップってどうやればいいでしょうか?
画面処理を別スレッドにして、処理時間オーバーしたら放棄、
でいいの?
0881名前は開発中のものです。
2010/02/14(日) 21:27:36ID:9DOaOyQ2880 は >>878へのレスです
0882名前は開発中のものです。
2010/02/14(日) 21:32:50ID:r2nQlTSvいちいち戻さない方が速いかも
0883名前は開発中のものです。
2010/02/14(日) 21:34:14ID:I7ZtRrpBググれば幾らかサンプルコードが出てくる。確か龍神録でも触れてたと思うし。
PC上で動くゲームを作るのなら秒間60回更新するように調整するのは基本中の基本。
DXLIBに限った話じゃない。CPU使用率が異常に高かったりしたら間違いなくこっちの問題でしょ。
0884879
2010/02/14(日) 21:58:05ID:9DOaOyQ2SetDrawBlendMode( DX_BLENDMODE_NOBLEND , 0 )
DrawGraph(・・・ // 普通の画像
が処理を重くしてる原因だったので、これを削ることにしました
ありがとうございます
龍神録というサイトを初めて知ったので、質問してよかった
>>883 ありがとうございます
0885名前は開発中のものです。
2010/02/15(月) 08:08:26ID:BUryD20y>873だが、色々な変形に対応させようと思うと結構面倒だな。引数も増えるし。
回転と拡縮だけにしてしまうか。
……とここまで書いて、
画像クラスを作ってしまえば簡単だということに気づいた。
0886名前は開発中のものです。
2010/02/15(月) 20:26:12ID:ccjc3ij8最後にその4点にあわせてDrawModiGraphするってのが汎用的で記述もわかりやすくていいんじゃね?
どっかからできの良い数学ライブラリ持ってきてもいいし
回転拡大スライド程度なら簡単な行列計算だけに絞れるから自分で作ってもいい
0887名前は開発中のものです。
2010/02/15(月) 20:55:41ID:BUryD20y>>886
結局のところ、妥協して回転、拡縮、左右/上下反転の3つだけ関数にしたんだが、
どっちかっていうと、コーディングよりも設計に悩んでた。
変形する順番によって最終的な結果が変わる場合があるから、
それらに対応しようとすると、その分だけ引数も増えるわけで、結果として使いにくい関数になっちゃうのよね。
で、画像をクラスにして
ImageClass img;
//中略
img.rotate(3.14); //180度回転
img.extend(1.0,2.0); //縦2倍
img.rotate(1.57); //90度回転
img.draw(0,0); //0,0に描画
とかでも良かったかな、と思った。
0888名前は開発中のものです。
2010/02/15(月) 21:00:03ID:K58uOKXK・上の基準点が実際に描画される位置
・基準点を中心としたスケール
・基準点を中心とした回転角度
で十分だと思うけど
0889名前は開発中のものです。
2010/02/15(月) 21:57:09ID:BUryD20yそれだけで引数7つあるぜ?
各変形の優先度を決める(もしくは同じ変形を複数回行う)とか、
回転と拡縮以外の変形も出来るようにするなら、どれだけ増えるんだ。
0890名前は開発中のものです。
2010/02/15(月) 22:01:20ID:8F/ucvej基点となる座標が変われば別だが
0891名前は開発中のものです。
2010/02/15(月) 22:17:52ID:BUryD20yゲームの都合上、縦横で別々に拡大率を設定できるようにする必要があった。
正方形を、90度回転させてから、横に2倍
□□ → ■□ → ■■□□
■■ → ■□ → ■■□□
横に2倍にしてから、90度回転
■□
□□ → □□□□ → ■□
■■ → ■■■■ → ■□
■□
みたいに変わる。
■ このスレッドは過去ログ倉庫に格納されています