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

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2009/12/04(金) 16:49:13ID:7SKA4I5z
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「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/
0767名前は開発中のものです。2010/01/31(日) 18:31:18ID:HHPX/Q69
基本的な考えを理解してないな。
例えば絵が1ドットずつ動くプログラムだとすると

  座標0に表示
    ↓
  座標1に表示
    ↓
  座標2に表示
    ↓
  座標3に表示
    ↓
     :

って書くんじゃなくて(これは>761の書き方)、

  座標xに表示 ←―┐
    ↓        |
  xを+1する      | 繰り返す
    ↓        |
    └―――――┘

って書くのを意識するといいよ
0768名前は開発中のものです。2010/01/31(日) 18:35:18ID:1VFB3DYv
かわいいなw
0769名前は開発中のものです。2010/01/31(日) 19:00:00ID:2P10BkIV
double owari;
do{
ClsDrawScreen();
static int a = 0;
DrawGraph(0,0,player[3+a],TRUE);
if(a<3)a++;

WaitTimer(500);
ScreenFlip() ;
owari = FALSE;
}while(owari == FALSE);
こうやってみました
aが0に戻らなくて[6]がずっと表示されてしまいます
あと、できればdo{}while();は使いたくないです

0770名前は開発中のものです。2010/01/31(日) 19:07:41ID:dC7YcGqj
static intがまずいんじゃなか?
0771名前は開発中のものです。2010/01/31(日) 19:10:47ID:PA+3lzr7
>>769
>aが0に戻らなくて[6]がずっと表示されてしまいます
わかってんならaを0に戻せよ…
whileでもforでも好きなもんを使えよ…
>>764-767無視すんなよ…
0772名前は開発中のものです。2010/01/31(日) 19:13:09ID:CfyGLtto
まずはC言語勉強してこい
0773名前は開発中のものです。2010/01/31(日) 19:23:57ID:2P10BkIV
>>771
すいませんでした
if(a>3)a=0;を追加したんですが止まってしまいます
>>764
考えて>>769をつくってみました!
>>765
そのサイト、アニメーションについて載ってなくて…
>>766
http://homepage2.nifty.com/natupaji/DxLib/dxfunc.html
このページでしょうか?
何回か読んだのですがアニメーションについて載ってなかったです…
>>767
座標を動かさないようにするんですか?
>>768
ありがとうございます
>>770
消してみたんですが、動きすらしなくなりました

0774名前は開発中のものです。2010/01/31(日) 19:32:13ID:JBJvvpkE
アニメーションでなく根本的な所から理解出来てない
龍神録一通りやってゲームプログラミングの基礎を学べ
0775名前は開発中のものです。2010/01/31(日) 19:36:09ID:2P10BkIV
すいませんでした
まだ自分はなにも理解していないみたいなので
もう一度最初から学び直してきます
みなさんありがとうございました
0776名前は開発中のものです。2010/01/31(日) 19:36:15ID:PA+3lzr7
>>773
もうDXライブラリ以前の問題だからVIPで聞け
http://yutori7.2ch.net/test/read.cgi/news4vip/1264908880/
0777名前は開発中のものです。2010/01/31(日) 19:36:48ID:GeAXL5Qw
a=3になってるから
0778名前は開発中のものです。2010/01/31(日) 19:37:45ID:Di+guFUQ
>>770
>>772

>>773
if(a<3)a++;
if(a>3)a=0;

こうしたんなら a=3 の場合はどっちも掛からないから a=3 のまま止まるわなあ
0779名前は開発中のものです。2010/01/31(日) 19:43:39ID:2P10BkIV
>>777
>>778
if(a>=3)A=0;
にしたらきちんと動いてくれました!
でも学び直してきます
ありがとうございました
>>776
ありがとうございます
次からはそこで質問しますね
0780名前は開発中のものです。2010/01/31(日) 19:44:26ID:2P10BkIV
うそです
Aじゃなくてaです
0781名前は開発中のものです。2010/01/31(日) 20:01:10ID:uYVfFOYk
このライブラリって64bit windowsでも
問題なく動くの?
0782名前は開発中のものです。2010/01/31(日) 20:09:34ID:CfyGLtto
動かないんじゃね?
ライブラリをDLLにすれば動くかも
0783名前は開発中のものです。2010/01/31(日) 20:09:49ID:0ATLaas4
なんで?
0784名前は開発中のものです。2010/01/31(日) 22:57:51ID:W0mdJ7eW
普通に動くよw
ネイティブでって意味ならたぶん動かないけど、そういう事じゃないだろ?
0785名前は開発中のものです。2010/01/31(日) 23:29:30ID:CfyGLtto
ゲームが実行出来るかじゃなくて
正常にビルド出来るかって意味かと思った
つーかそれだとDLLでも動かないねすまん
0786名前は開発中のものです。2010/02/01(月) 00:07:00ID:2kqPhNjN
ビルドもVSとか使ってるなら通るはずだよ
俺この間までWin7の64bitと、XPの32bitで出先<->家での開発してたし
0787名前は開発中のものです。2010/02/01(月) 01:01:10ID:YQ/gjtQh
本体のビット数とDLLのビット数が違うとダメだけどね。


DXライブラリでもゲーム制作の話でもないけど
この間それで問題が起きてね……w
0788名前は開発中のものです。2010/02/01(月) 16:57:45ID:Lf2Nvhz5
なんで?
0789名前は開発中のものです。2010/02/01(月) 17:45:18ID:ooYrGYNe
なんだっていいさ
0790名前は開発中のものです。2010/02/01(月) 18:32:39ID:864q13BL
long doubleとか使って試せば
787かいいたいことがわかるとおもう
たぶん
0791名前は開発中のものです。2010/02/01(月) 18:36:19ID:PxBHY40/
いや、32bitアプリからは64bitDLLは使えないし
64bitアプリからは32bitDLLは使えない。
だから通常、DLLまで用意する場合じゃ無けりゃ32bitで作ればいいんだけど
.NET FrameworkでAny CPUで作った場合はまることがある。
DLLはネイティブで32bit固定なのに、EXEは実行環境によって32/64変わるから
開発時の環境が32bitだと気がつかない。

ということじゃないかなあ。
0792名前は開発中のものです。2010/02/01(月) 18:52:33ID:Lf2Nvhz5
それで?
0793名前は開発中のものです。2010/02/01(月) 18:58:44ID:xufADCF/
ググレカス
0794名前は開発中のものです。2010/02/02(火) 13:39:47ID:EWwGB+Nl
libを32bitで作って64bitマシンでコンパイルしたオブジェクトとリンクしても問題ないの?
0795名前は開発中のものです。2010/02/02(火) 13:53:12ID:ZXzo3Aq8
なんで?
0796名前は開発中のものです。2010/02/02(火) 13:54:59ID:6T1hs+2r
ビルド時のターゲットはビルド環境とは関係ない
0797名前は開発中のものです。2010/02/02(火) 18:27:35ID:NU2kONNz
「64bitマシンでビルドする」というのと、「64bit用アプリとしてビルドする」というのは別物ってことよね。
コンパイラが対応しているかどうかは別として。(比較的最近のVisualStudioなら問題なし)
もちろん、32bitでも同様。

で、開発マシンが32/64問わず、
 64bit用としてビルドしたアプリ本体 + 32bit用としてビルドしたDLL → 動かない
 32bit用としてビルドしたアプリ本体 + 32bit用としてビルドしたDLL → たぶん動く
であると。
0798名前は開発中のものです。2010/02/02(火) 21:43:09ID:ZXzo3Aq8
それで?
0799名前は開発中のものです。2010/02/02(火) 22:29:37ID:ocqUn9yT
なにが?
0800名前は開発中のものです。2010/02/02(火) 23:35:47ID:3geZi3lZ
つーか64Bitアプリにするほどメモリ使うゲームを作るのかと。
0801名前は開発中のものです。2010/02/03(水) 05:04:33ID:U8Pd5rkG
なんで?
0802名前は開発中のものです。2010/02/03(水) 05:54:02ID:XTUJJ4Iu
基本的には32bitアプリでも動くって話だけど
その基本的って部分がちょっとだけ気になる。
0803名前は開発中のものです。2010/02/03(水) 08:44:53ID:g7fkj8BM
64BitOSで動かすことを気にしてるなら
従前どおりの32Bitアプリが何の問題もなく動くので徒労。

メモリを4GB以上使いたい場合以外にあえて64Bit化する意味は薄い。
0804名前は開発中のものです。2010/02/03(水) 14:05:09ID:5f3a6r9D
シューティングの画像ってサイズ奇数にして中心にオブジェクトのxyを持ってきた方が作り易い気がするんだが、みんな普通にx1y1x2y2でやってるの?
0805名前は開発中のものです。2010/02/03(水) 14:18:36ID:gyXnlokN
場合による。

長方形のキャラ(回転なし)とかだと後者の方が便利だし。
0806名前は開発中のものです。2010/02/03(水) 15:51:20ID:U8Pd5rkG
なんで?
0807名前は開発中のものです。2010/02/03(水) 22:19:22ID:WAfqMpru
お前を食べるためさ!
0808名前は開発中のものです。2010/02/03(水) 22:40:10ID:U8Pd5rkG
変態
0809名前は開発中のものです。2010/02/03(水) 23:31:20ID:y+n9ea+J
DxLIBだとインストール済みのフォントデータしか使えないのかな?
思っていたより使い勝手悪いな…
0810名前は開発中のものです。2010/02/03(水) 23:39:52ID:mUdTkHdF
よくわからんがフォントリソースとして読み込んでから使えとか見た気がするな
0811名前は開発中のものです。2010/02/04(木) 01:32:44ID:9yr7SgZz
d
AddFontResourceを使ってゲーム起動時に追加出来た
0812名前は開発中のものです。2010/02/04(木) 10:22:35ID:B+CnvqXs
思っていたより使い勝手悪いな…
0813名前は開発中のものです。2010/02/04(木) 15:03:56ID:0uWBCETA
DXLIBのデータファイルの暗号化機能を使おうかと思うんだけど
パスワードってリテラルでEXEに埋め込んじゃってダイジョブなん?
0814名前は開発中のものです。2010/02/04(木) 15:08:11ID:WAZ4oke5
思っていたより使い勝手悪いな…
0815名前は開発中のものです。2010/02/04(木) 18:53:49ID:QxyExYir
なにがどう大丈夫なのか解らんが、
自分で何とかできないのなら諦めて普通に使うしかないだろう。
0816名前は開発中のものです。2010/02/04(木) 18:55:51ID:0uWBCETA
いや、キーがバイナリエディタとかで見えちゃうんじゃないかなと思って・・・
0817名前は開発中のものです。2010/02/04(木) 19:04:15ID:1Mq3yDnQ
>>816
ようは
「入力された文字」==「キー」
ってやってもだいじょうぶかきいてるんだろ?

キーはみえる
0818名前は開発中のものです。2010/02/05(金) 01:25:04ID:a9qwHvOS
乱数とかつかって謎の文字列を生成する関数とか作って
それをキーに使ったほうがわかりにくくていいんかな
0819名前は開発中のものです。2010/02/05(金) 01:30:13ID:y9Rl8Gqj
自分でそれができるのならやればいいのでは。
どうしてそこまで隠したがるのか知らないけど。

俺は、俺の作ったゲームをプレイした人が
「このゲームの生データ見てみたい!」
って思ってくれるほど魅力があるデータを作れた自信がないから
そこまで心配はしてないな。
0820名前は開発中のものです。2010/02/05(金) 01:31:15ID:RCBVAjHS
>>816
暗号鍵を何かでエンコードしてリテラルとしてソースコード埋め込んどいて、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:qcSvBbHw
みんな画像や音声のロードってどうしてるの?
NowLoading...のアニメーションを動かしながらロード、ってのをしたいんだけど、
読み込みとアニメーションを並行してやる方法が分からないんだ
0824名前は開発中のものです。2010/02/05(金) 16:52:34ID:Ir4+43zS
>>822
>>492
0825名前は開発中のものです。2010/02/05(金) 19:50:51ID:EoD901Y8
マルチスレッドじゃね
0826名前は開発中のものです。2010/02/05(金) 20:17:16ID:Ir4+43zS
>>823
1フレームに1つずつファイルを読み込みながらアニメーション表示させる。
マルチスレッドを使ってもいいけどこっちの方が簡単。
0827名前は開発中のものです。2010/02/05(金) 20:25:49ID:qcSvBbHw
>>825
公式の掲示板の過去ログで、2007年にLoadGraphはマルチスレッドに対応してないみたいな事を管理人さんが・・・

>>826
音声ファイルとかだと1フレームの間にロードし終わってくれますかね・・・?
0828名前は開発中のものです。2010/02/05(金) 20:30:27ID:g1+Hi/0a
俺も>>826の方法だけど
たしかにちょっと止まるな
0829名前は開発中のものです。2010/02/05(金) 20:30:28ID:EoD901Y8
起動時に全部読み込んで後でNowLoadingだけ表示しとけばいいんじゃね
0830名前は開発中のものです。2010/02/05(金) 20:38:57ID:XWwIt0Ve
本末転倒w
0831名前は開発中のものです。2010/02/05(金) 20:58:53ID:Ir4+43zS
個人的な感覚でだけど>>829の方法が可能ならこれでいいんじゃないかな。
そもそもプレイヤーにストレスを与えないようにするのが目的だし、実際「NowLoading...」と表示しておきながら読み込み以外の処理もしてたりするしね。
あと>>826の方法は確かに処理落ちする可能性はあるけど何か問題あるの?
どうせプログレスバーを表示させるぐらいじゃないの?
0832名前は開発中のものです。2010/02/05(金) 21:03:23ID:g1+Hi/0a
>>829はネタレスだろw
0833名前は開発中のものです。2010/02/05(金) 21:04:42ID:qcSvBbHw
>>831
起動時に全部読み込むと、読み込みファイルのサイズが大きくなったときにちょっと・・・。
できるだけ逐次ロードしたいから・・・。
あと、最初に読み込もうとすると数秒止まっちゃって、それが気にくわないというかストレス。
0834名前は開発中のものです。2010/02/05(金) 21:37:34ID:RBAQ2+kz
マルチスレッドなしならなうろーでぃんぐはアニメーションさせないのが一番
0835名前は開発中のものです。2010/02/05(金) 21:58:05ID:RjYJfLjO
かなりいい加減なコードだけど、スレッドを使った Now Loading のサンプル
ttp://codepad.org/HMbYruHZ
0836名前は開発中のものです。2010/02/05(金) 22:31:40ID:qcSvBbHw
>>835
おお・・・ 参考にしてみまする
0837名前は開発中のものです。2010/02/05(金) 22:43:27ID:Xzk70bEL
i=0;
なんかループ{
  なんかロード1コ
  なんかナウローディングとか表示
  なんか四角とか描画(x, y ,x+i, y);
  画面更新


CとかDirectXライブラリの記述方法は忘れた
0838名前は開発中のものです。2010/02/05(金) 22:55:33ID:9VhG5z2Z
DXライブラリはともかく、Cの表記とゲームプログラミングの作法は忘れんなw
0839名前は開発中のものです。2010/02/05(金) 23:11:28ID:a9qwHvOS
ファイル単位で読み込もうとするからデカイファイルのせいで処理落ちするコマが出てくるんじゃね?

while(!end())
{
read( Nバイト );
draw();
}

これならフレームレート安定するだろう
でもわざわざ読み込み速度を意図的に落としてまでやるべきなのかは疑問
0840名前は開発中のものです。2010/02/05(金) 23:14:04ID:+ZQFEOdr
DXライブラリで
>read( Nバイト );
ってどうやんの?
0841名前は開発中のものです。2010/02/05(金) 23:19:28ID:qcSvBbHw
スレッド使ってロードしようとしたらエラー吐いて落ちた・・・。
やっぱりLoadGraphはマルチスレッド対応してないってことなのかな・・・。

>>839
kwsk
0842名前は開発中のものです。2010/02/05(金) 23:29:20ID:ax38IgEf
>>835のコードだったらわざわざマルチスレッドにせずとも>>826でやればいいような気もするが
0843名前は開発中のものです。2010/02/05(金) 23:31:09ID:9VhG5z2Z
自己満足で!(超重要
0844名前は開発中のものです。2010/02/05(金) 23:45:43ID:tUrF1ELA
スレッド系はきっちり作らないと他人の環境限定で
ある日突然落ちたりしてデバッグで泣くことになるぞ。

CPUのコア数によって出たり出なかったりとかするからな。
0845名前は開発中のものです。2010/02/06(土) 02:01:00ID:npht8xA6
Now loading...のアニメーションを動画にしたらどうかな?
0846名前は開発中のものです。2010/02/06(土) 02:46:06ID:Y+vgz54E
その動画を読み込ん出る間のNow Loading画面が欲しくなるね!
0847名前は開発中のものです。2010/02/06(土) 03:13:17ID:ryKI6KOb
Now loading...をLoading Complete!に修正すればよくね
0848名前は開発中のものです。2010/02/06(土) 04:54:47ID:sLGxAtvo
「ロードした」なら使ってもいい!
0849名前は開発中のものです。2010/02/06(土) 07:42:28ID:heYW4fwh
>>829はネタのつもりで書いただろうけど、実際にやってる人を見たことあるよ。
静止画を表示しながら読み込み(2秒間)⇒「NowLoading...」(0.2秒)
本人曰く「ただ気分を味わいたかった」と。
でも実際のゲームを見てみるとプレイヤーからはそれは分からないし、むしろ「ロード早いなあ」という印象すら受けた・・・
これも一つの答えなんだと思ったよw

マルチスレッドを使う方法は↓に書いてある。
http://hpcgi2.nifty.com/natupaji/aska.cgi

あと画像はLoadDivGraphで分割読み込みができる。
08508492010/02/06(土) 07:48:32ID:heYW4fwh
すみません。
掲示板のリンクがダメですね・・・
記事No「1896」です。
0851名前は開発中のものです。2010/02/06(土) 09:42:16ID:AjOTNEN+
>>849
LoadDivGraphで分割読み込み、ってアレはひとつの画像を複数の画像に分割するんであって、
分割してひとつの画像読み込むわけじゃないっていう

マルチスレッドの方は読んでみた
応用してやれないか試してみる
0852名前は開発中のものです。2010/02/06(土) 13:12:13ID:6i+WO82B
そもそも円滑にアニメーションさせる必要なくね?
要所要所で動作が若干止まったりしたほうが読み込んでるっぽくてユーザも安心するし
0853名前は開発中のものです。2010/02/06(土) 13:15:04ID:m1I5HW8a
じじいの酷い言い訳
0854名前は開発中のものです。2010/02/06(土) 13:30:09ID:xpV9NzXE
じじいくらべならまけませんよ?
0855名前は開発中のものです。2010/02/06(土) 14:19:32ID:heYW4fwh
アニメーションの種類によるんじゃなかな?
読み込みの進捗を表示させるようなタイプなら>>823で多少カクカクしても問題ないと思うし、むしろマルチスレッドにすると同期を取るのがめんどくさいし。
逆にもっと派手なアニメーションだと処理落ちすると見栄えが悪くなるのでマルチスレッドにするしかないと思う。
ただ個人的には同人ゲームなら静止画で「NowLoading...」と表示させておくだけで十分だと思うんだけど・・・
0856名前は開発中のものです。2010/02/06(土) 15:27:53ID:hilmmGtE
静止画1枚だとフリーズしてんのかな?って不安になる
0857名前は開発中のものです。2010/02/06(土) 16:16:36ID:+7JZw7l0
カクカクでもいいならマルチスレッド必要ないよな
0858名前は開発中のものです。2010/02/06(土) 16:21:12ID:AjOTNEN+
せめてNowLoading... [ ココ ]   で何かのアニメーションはさせたいよね
0859名前は開発中のものです。2010/02/06(土) 22:28:44ID:fMJ0B1gK
そこは操気弾のアニメを
0860名前は開発中のものです。2010/02/06(土) 23:38:51ID:cCb1U7aq
これって3dもつくれるんだよね?
Blenderにも対応してる?
0861名前は開発中のものです。2010/02/07(日) 07:39:53ID:cnkJTmx7
>>860
>これって3dもつくれるんだよね?
作れるよ。

>Blenderにも対応してる?
モデリングソフトの対応状況は過去レスを見てみて。
BlenderはFBXが使えるみたい。
0862名前は開発中のものです。2010/02/11(木) 23:41:27ID:AgKonL0C
メタセコで武器だけ作って、それを3Dのキャラモデルに持たせるのはどうやるんだろう。
DXライブラリの範疇ではないのかな。

なにか調べる取っ掛かりはない?
0863名前は開発中のものです。2010/02/12(金) 02:48:39ID:iGppiI+j
位置とか角度の親子関係を作れればいいんじゃないかな
0864名前は開発中のものです。2010/02/12(金) 04:35:23ID:Z51oc7q7
>>862
DXライブラリは知らんけどリアルタイムレンダリングがデフォじゃない?
0865名前は開発中のものです。2010/02/12(金) 07:46:33ID:gSVuHgsF
>>862
「コンストレイント」で検索してみるといいよ。
やり方は簡単で>>863の言う通り、「手」の移動と回転を「武器」に加えるだけ。
0866名前は開発中のものです。2010/02/12(金) 15:42:11ID:9oJmNhGP
DrawChipMapってどうやって使うの
■ このスレッドは過去ログ倉庫に格納されています