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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものです。2009/03/31(火) 01:14:36ID:IgyJcgap
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「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/
0885名前は開発中のものです。2009/08/01(土) 18:31:27ID:Qfg9axiN
サンクス
なんとかなりそうです
0886名前は開発中のものです。2009/08/01(土) 18:49:30ID:XBQ0j9Rg
>>884
真面目に読んでて途中からワロタ
0887名前は開発中のものです。2009/08/01(土) 22:58:32ID:Qfg9axiN
GetWindowUserCloseFlagってエラーが起こった時の返り値ってわかりますか?
0888名前は開発中のものです。2009/08/02(日) 04:05:26ID:ioGay+hN
エラーって?
0889名前は開発中のものです。2009/08/02(日) 13:21:29ID:raZxXOJp
>>888
だいたいほかの関数だと成功:0、エラー:-1を返してるじゃないですか?
そいうのがこれにも無いのかなとおもって
0890名前は開発中のものです。2009/08/02(日) 15:42:36ID:kM+dLyLX
TRUEかFALSEか取得して返すのにエラーが出るとは思えないけど。
でも一応DxLibは関数の共通規約が-1=エラーぽいから-1だけ特別扱いでいいと思うよ
0891名前は開発中のものです。2009/08/02(日) 15:47:58ID:VhKHrAIb
エラーが起きない関数だってあるんだから、余計な処理はしなくていい。
0892名前は開発中のものです。2009/08/02(日) 18:18:51ID:kM+dLyLX
GetWindowUserCloseFlagってエラー起きないの?
ドキュメントに載ってない関数だから知らないんだけど
ソース見る気はしないし
0893名前は開発中のものです。2009/08/03(月) 13:33:57ID:Bkg1TOoK
暗号化した画像ファイルからDrawGraphで描画するまでの手順って

ファイルから読み込み複合化した色情報を配列にセット
→MakeARGB8ColorSoftImageなどでSoftImageのメモリ確保
→DrawPixelSoftImageなどで配列からSoftImageに書き込む
→CreateGraphFromSoftImageなどでグラフィックハンドルを作成
→DeleteSoftImageでメモリ開放
→DrawGraphとかで描画

でおk?
0894名前は開発中のものです。2009/08/03(月) 18:31:28ID:Iq3WkgiH
自分も用意したフォントが使いたくなったので>>757の方法を試してみたんだけど、
開放に成功しないんだよなぁ……
仕様上プログラムが終了すると開放されるみたいだし、大丈夫なのかなコレ
08958942009/08/03(月) 18:43:55ID:Iq3WkgiH
うわー引数ミスってただけでした……
こめんなさい
0896名前は開発中のものです。2009/08/04(火) 01:23:43ID:zuu4zu8S
おまいら名前空間ってどうしてる?
微妙にグローバルなのが邪魔くさいんだが、Dxライブラリのソースをまるっと書き換えるしかない?
0897名前は開発中のものです。2009/08/04(火) 01:44:29ID:HZG+0EA+
WIN98前後にプログラミングやってみたくなって、
とりあえずCだけ独学してすぐにDirectX見て
挫折した自分には今更ながら、ピッタリじゃないか。

実際の所はオブジェクトで書いていけないと、ツラいの?
0898名前は開発中のものです。2009/08/04(火) 02:36:14ID:I3xbLsIe
さぁ?
俺はオブジェクトが何かも知らないが
DXライブラリのおかげでゲームは作れてる。
0899名前は開発中のものです。2009/08/04(火) 03:09:27ID:2NLtwfy5
main.cppとヘッダファイルだけでゲーム作ってる俺もいるし
0900名前は開発中のものです。2009/08/04(火) 06:22:55ID:6mk+vC8F
>>897
あると便利
0901名前は開発中のものです。2009/08/04(火) 07:58:54ID:jjYfmP92
何か途中でフル⇔ウィンドウ変えれるようにしたらフルにした時に画面がチラつくんだが
画像を読み直すだけでは駄目なのか
0902名前は開発中のものです。2009/08/04(火) 08:02:04ID:jjYfmP92
と思ったら事故解決した
SetDrawScreen( DX_SCREEN_BACK ) ;死直さないと駄目なのか
0903名前は開発中のものです。2009/08/04(火) 10:32:21ID:sPOvaCTT
>>897
ちょっと勉強すればいいだけのことを避けて
ずいぶんと無駄に自分の幅を狭めてると思わない?
0904名前は開発中のものです。2009/08/04(火) 17:23:09ID:gMr+p3zp
みんなDxLibのラッパークラスとか作っちゃったりするの?
0905名前は開発中のものです。2009/08/04(火) 17:27:28ID:xk/uaGqe
>>904
ラッパーというか、あのまんまじゃゲーム作りに面倒だから、
あれにもうちょっと色々と処理類を追加して、作りやすくはしてる。
0906名前は開発中のものです。2009/08/04(火) 17:27:59ID:zuu4zu8S
ラッパを作らずに、ゲームを作れるのだろうか。
0907名前は開発中のものです。2009/08/04(火) 19:53:27ID:sPOvaCTT
device->DrawImage((Image*)image); みたいな?
さすがにこんなラッパーが必要になるようなら他のC++用のライブラリ使った方がいいと思うよ
0908名前は開発中のものです。2009/08/04(火) 20:01:54ID:vP8Ikyop
ゲームなんてラッパみたいなもんだ
0909名前は開発中のものです。2009/08/04(火) 20:43:25ID:ODeu4gp1
そんなことせんでもゲーム作れるようにするのがDXライブラリが目指す所だと思うし
0910名前は開発中のものです。2009/08/04(火) 20:48:39ID:YerTetmP
そんなことしたいならDirectX覚えろっていう
0911名前は開発中のものです。2009/08/04(火) 21:06:21ID:nYiQO+FG
併!用!
0912名前は開発中のものです。2009/08/04(火) 22:48:47ID:tCn5IwcP
誰がラップ歌えと。
0913名前は開発中のものです。2009/08/04(火) 22:57:08ID:ODeu4gp1
>>912のお陰でやっと気付いた
0914名前は開発中のものです。2009/08/04(火) 23:06:20ID:l5hPySed
うまいな
0915名前は開発中のものです。2009/08/05(水) 00:19:33ID:SP3G2Rzn
>>911
は、その才能を別のところに生かすべきだったと思う

ところで、あえてゲームのジャンルを指定せずに聞くが
ChangeFontType( この辺とか ) ;
ChangeFont( "この辺て" ) ;
何入れてる?

ChangeFontType( DX_FONTTYPE_ANTIALIASING_EDGE ) ;
ChangeFont( "MS P明朝" ) ;

とかだと、どうにも汚い
メイリオとかオーサカつかえりゃいいんだろうけど
0916名前は開発中のものです。2009/08/05(水) 01:41:03ID:6IxCn2Gg
640x480のwindowモードで1秒に60回メインループを回してClearDrawScreenとScreenFlipするだけのプログラム
書いたらCPU使用率が20%超えてるんだけどこんなもん?WaitTimer(10);は入れてます。
0917名前は開発中のものです。2009/08/05(水) 02:13:38ID:tpv/Q7sN
>>915
>>757使ってBDF M+やVL Gothic使うと汚くはないしライセンス的なものもきれいで好きです
0918名前は開発中のものです。2009/08/05(水) 02:27:07ID:uKOy3PVl
>>916
そんなものじゃない?自分の環境でも、だいたい20%前後で推移してるし。
ScreenFlipには、アイドリングループもやってるような事を>>70-95当りに書いてるし
きっと大体そんな感触。
だから、多少負荷を掛けたループを入れても、いきなり100%とかにはならないし。
0919名前は開発中のものです。2009/08/05(水) 05:21:50ID:Nty2bj+r
A:あるXというパソゲーがあったとして、そのゲームをDXライブラリで再現したとしたら
 どっちの方が処理速度が速い?

管:それはおそらくオリジナルのゲームになるでしょう。
  しかしそれは仕方ありません。DXライブラリは DirectX を意識しないでプログラムを
 組めるように出来ているので、どうしても DirectX を意識して、DirectX にとって最適な
 方法を念頭にいれて作られたソフトには敵いません。
  ですが、それは DirectX と密接に関わらないと出来ない表現や処理が出きるか出来
 ないか程度の違いで、処理速度的には目を凝らさない限りわからない程の差だと
 思います。

これみて思ったが前に

hot スープ なんとかってベーシックみたいなやつ使ったことあるけど

あの処理の遅さには萎えた
0920名前は開発中のものです。2009/08/05(水) 06:49:21ID:pLHczCar
HSPのことかあああああああああ
0921名前は開発中のものです。2009/08/05(水) 07:07:46ID:m9BmQxuD
そもそも比較対象とするほうがおかしくないか。
0922名前は開発中のものです。2009/08/05(水) 07:11:20ID:b5+ghAk/
HSPはインタプリタだし

過去にGameMaker使ってた俺はC++に乗り換えて処理の早さに感動した
弾10000個出しても一切処理落ちなしとか
0923名前は開発中のものです。2009/08/05(水) 09:28:27ID:6IxCn2Gg
家庭用ゲーム機ってCPU使用率どのくらいなの
0924名前は開発中のものです。2009/08/05(水) 09:35:09ID:b5+ghAk/
>>923
ゲームによる
PS2の後期作品は常に100%近いものも多いと思う
0925名前は開発中のものです。2009/08/05(水) 10:03:45ID:BDIkZ1Lk
メイリオはXPならダウンロード可能になってるから、
・XP以上でやれ
・メイリオ自分で落とせ
と割り切った動作環境なら使えなくもない
まぁ、そこまでするより>>917がベターな気はする
0926名前は開発中のものです。2009/08/05(水) 13:28:59ID:rAOud/k3
>>919
初期化に関してはDXライブラリの方が遅い
なぜなら使わない機能まで実装してしまうから
初期化のプロセスさえ我慢してしまえば、DirectXを使っている以上、ほとんど処理に差は出ない
0927名前は開発中のものです。2009/08/05(水) 13:40:07ID:b5+ghAk/
初期化も他のライブラリに比べればかなり早くないか?
初期化→モデル読み込み→表示ってプログラム組んでるけど
起動から表示まで1秒も掛からないぞ
0928名前は開発中のものです。2009/08/05(水) 16:15:24ID:OhVzEwVo
え?
0929名前は開発中のものです。2009/08/05(水) 20:39:22ID:QIPk2n9v
クライアントがウィンドウのタイトルバーをつかむとかして処理が停止したことを判別する方法はある?
0930名前は開発中のものです。2009/08/05(水) 21:20:02ID:5Y+5L7IB
アクティブかどうか判定する関数があったような
0931名前は開発中のものです。2009/08/05(水) 21:57:12ID:tpv/Q7sN
>>929
もし直接DxLibのAPIになかったとしても、
最悪隠れAPIのSetHookWinProcを使っていけちゃうのであきらめずに頑張ってください
0932名前は開発中のものです。2009/08/06(木) 00:09:50ID:HbTQ3knb
フルスクリーンにすればいいのに
0933名前は開発中のものです。2009/08/06(木) 00:17:40ID:jDGBXq4e
フルスクリーン・ウィンドウの切り替え時って画像はDeleteGraphする必要なし?

>>932
でもやっぱウィンドウのほうがやりやすいゲームとかあるよ
0934名前は開発中のものです。2009/08/06(木) 15:04:25ID:jDGBXq4e
グラフィックハンドルが有効かどうかを調べるにはどうすればいいんだろう
GetGraphSizeしてエラーだったら無効なハンドル?
0935名前は開発中のものです。2009/08/06(木) 15:39:23ID:8f5EjUmV
消したら-1を入れておくとか
0936名前は開発中のものです。2009/08/07(金) 07:56:39ID:C0s8VGZe
ttp://burakura.hp.infoseek.co.jp/Folder.html
これってファイル隠蔽に使えないかな
パスの指定の際にも.{87D62D94-71B3-4b9a-9489-5FE6850DC73E}とか
つけなきゃいけないけど
0937名前は開発中のものです。2009/08/07(金) 09:16:54ID:XMny16vo
・アンインストーラー必須になる可能性がありそう
・ユーザーから見たら普通に気持ち悪い
・コマンドプロンプトからコピー余裕でした
0938名前は開発中のものです。2009/08/07(金) 09:40:07ID:iOeiMAXC
というわけで素直にDxEncodeしてSetDXArchiveKeyString使え
0939名前は開発中のものです。2009/08/07(金) 10:02:45ID:C0s8VGZe
よく考えたらvistaじゃ意味ないしやっぱり駄目かな
面白そうだったんだけど……
0940名前は開発中のものです。2009/08/07(金) 10:10:30ID:CmW3m8K+
DxEncodeって安全なの?
0941名前は開発中のものです。2009/08/07(金) 10:24:55ID:XMny16vo
ゲームのデータの暗号化なんてのは、玄関の鍵を植木鉢に隠す程度のもの。どうせ
何をやっても安全じゃないから諦めが肝心。ネトゲの通信も同じ。
ちなみに銀行やネットショッピングなんかの暗号は別物で、「解読方法は理論的に
鯖にしか分からない(に等しい)」という仕様だから安全に使える。

ゲームの暗号化が脆弱なのは、クライアント側が解けなきゃ仕様上どうしようも
ないから。どう解くかを解析すればそれで終了。ただ、一般人には無理だから、
誰かがツールでも配らない限り一般人は見ることができません、ってだけ。
0942名前は開発中のものです。2009/08/07(金) 10:35:31ID:6dDwwnG+
使用してるデータよりもセーブデータの暗号化の方が大事だよな
0943名前は開発中のものです。2009/08/07(金) 10:39:51ID:CmW3m8K+
そうかー
まあなんにしろ俺が自分で作るよりかは安全だろうな・・・
0944名前は開発中のものです。2009/08/07(金) 10:49:59ID:XMny16vo
逆に、広く使われてるライブラリはツールが作られやすいから、自作した方が安全な
可能性もあるけどな。
まぁどっちにしろ、本気出せばすぐ解けるから。市販ゲームのデータ抜き出しツール
なんてごろごろしてるだろ。商売でやっててもあんなもんだ。
要するに、そんな労力があれば他に割いた方がいい。
0945名前は開発中のものです。2009/08/07(金) 10:50:21ID:d+3hvGJn
>>942

それこそネトゲでもない限りどうでもいいかとw
0946名前は開発中のものです。2009/08/07(金) 11:05:54ID:6dDwwnG+
セーブデータメモ帳で開いてみてチラチラ生データが見えたり、
適当に文字書き込むだけで要素全開放とかできちゃうと萎えるのは俺だけ?
0947名前は開発中のものです。2009/08/07(金) 11:34:05ID:nv30ydBi
ふつうそんなことしないし
0948名前は開発中のものです。2009/08/07(金) 11:43:52ID:Qwqa7qWf
小説って実はいきなりオチから読むことができる
0949名前は開発中のものです。2009/08/07(金) 12:40:00ID:d+3hvGJn
>>946
そんなのやるヤツの勝手だし。
それによって他人に迷惑かけるのでなければどうでもいい。
つーかテキストでセーブデータ作るなよw
0950名前は開発中のものです。2009/08/07(金) 13:17:28ID:CmW3m8K+
原点回帰してセーブ無しのゲームを作ればおk
0951名前は開発中のものです。2009/08/07(金) 13:25:06ID:6vUntQWV
暗号化なんてしなくてもチェックサムつけとけばいいじゃん。
0952名前は開発中のものです。2009/08/07(金) 20:59:10ID:V6Jr42BU
チーとされてもいいゲーム作るとかな
0953名前は開発中のものです。2009/08/07(金) 22:16:20ID:R/yU7/kg
ちょいごめん。
DXライブラリで作ったゲームって、DirectX9.0以上ないと動かないよね?
0954名前は開発中のものです。2009/08/07(金) 22:49:20ID:FR9Ry4Z7
>>953
ムービー機能使わない限りは7.0a以降でおk
0955名前は開発中のものです。2009/08/07(金) 22:51:06ID:R/yU7/kg
>>954
mjd? ありがとう、助かった。完全に9.0いるって思いこんでたわ。
0956名前は開発中のものです。2009/08/08(土) 12:13:43ID:HzUDJDzb
98ででも動かすつもりなのか
0957名前は開発中のものです。2009/08/08(土) 16:03:22ID:jt7y/fVk
ファイルをロードするときにパスに代数使えたりしないだろうか
キャラクター名の画像を開くとか
0958名前は開発中のものです。2009/08/08(土) 16:08:15ID:irbfFcCJ
ちょっとゲームは置いといて文字列操作勉強してみよう
0959名前は開発中のものです。2009/08/08(土) 16:45:54ID:jt7y/fVk
こんなかんじで
いいんだろか
ほんとに?


char Filename[20]=hoge
file_hundl = fopen( Filename , "rb" ) ;
0960名前は開発中のものです。2009/08/08(土) 17:00:40ID:qbEagQ+F
こうなんじゃないの?
char Filename[20]="hoge.ext";
FILE *file_hundl = fopen( Filename , "rb" ) ; // ファイル名が hoge.ext のファイルをバイナリ読み込みモードで開く
0961名前は開発中のものです。2009/08/08(土) 17:02:51ID:TUp5Mpej
>>959
2chにどれだけ書いてもコンパイル通らないぜ。
実際に書いて動かしてみたら?
0962名前は開発中のものです。2009/08/08(土) 17:35:29ID:jt7y/fVk
なるほどポインタを指定しなきゃだめなのか
コンパイル通ったぜ!ありがとう
必要ないかもだけどフィードバック
char Filename[20]={"hoge\\piyo.ext"};
File *hndl=fopen(Filename,rb)
0963名前は開発中のものです。2009/08/08(土) 17:41:02ID:7PEYw4hg
        まもなくここは 乂1000取り合戦場乂 となります。

      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                       ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )
0964名前は開発中のものです。2009/08/08(土) 18:09:55ID:VZIInWJO
さすがにここじゃなくてC言語の超初心者向けのスレに行くべきだなぁ。
0965名前は開発中のものです。2009/08/08(土) 18:33:34ID:jt7y/fVk
FileRead_openで使いたかったの
できればいらんAPI読みたくないなと
0966名前は開発中のものです。2009/08/08(土) 21:09:05ID:irbfFcCJ
勉強したくないだけだろ?
パスの文字列を直接いじればどうとでもなる
Cの標準ライブラリを使うだけだから使用を避ける意味は全く無い
0967名前は開発中のものです。2009/08/08(土) 21:09:52ID:VZIInWJO
ぶっちゃけC言語として致命的にまともに書けてない。C言語そのものを勉強しなきゃ
いけない段階。
あまり初心者を無碍にしたくないが、C言語そのものの取り扱いが全然駄目となると、
ライブラリを語るスレとしては対象外。
0968名前は開発中のものです。2009/08/08(土) 22:59:48ID:WpR4R+bj
プログラムって、調べて書いてコンパイル通らなかったら直して……
を繰り返して覚えるもんだと思うんだけどなぁ
勉強っていうと知識だけ集める感覚があって言語習得とはなんか違う気が。
0969名前は開発中のものです。2009/08/09(日) 02:08:32ID:NNOs+ttH
きっと、>>968は教科書や参考書を一度読めば全部覚えられた天才だからそう思うだけだよ。
普通、大学受験だって、教科書や参考書を読んで、問題集をやって
間違ったら、もう一度参考書読んで、間違わなくなるまでやって、知識を身につけていくもんだ。
プログラミング言語も自然言語も数学も社会も美術も学習過程はそんな感じで、みんな一緒っしょ。
0970名前は開発中のものです。2009/08/09(日) 03:07:59ID:PEaokWcC
文法くらい間違えずに書いてほしいんだが
そうでなくても、明らかにバグの原因になるような考えの足りないコード書く奴多いのに
0971名前は開発中のものです。2009/08/09(日) 06:41:01ID:yY5+Xf3s
よく ; を忘れてコンパイラに怒られます
0972名前は開発中のものです。2009/08/09(日) 09:41:37ID:/uJahesY
面倒だからstd::stringとかboost::formatとか使っちゃうよ
そりゃsprintfだろうがsnprintfだろうがstrcatだろうが、絶対必要なら書くけどさぁ…
PCでそこまで切迫すること無いしなぁ
0973名前は開発中のものです。2009/08/09(日) 12:33:09ID:TMuPKyBy
なに話してるんだ?
0974名前は開発中のものです。2009/08/09(日) 13:41:42ID:gf1YMdsn
>>757のほう方法で読み込んだフォントをプロジェクト内全域で使いたい場合
何かスマートな方法ないものだろうか
フォントのハンドルをグローバルに定義するとかしかないかな
0975名前は開発中のものです。2009/08/09(日) 14:31:25ID:hOV2IouW
俺はそのままフォントハンドルをグローバルにして使ってる
文字表示多用するゲームだと、どうせフォント開放するのは終了時になるしね
0976名前は開発中のものです。2009/08/09(日) 16:37:23ID:gf1YMdsn
絶対に破棄し忘れるから複数のハンドル作るとかは避けたいしね
やっぱりグローバルで宣言しちゃうのが一番か
0977名前は開発中のものです。2009/08/09(日) 17:05:48ID:/uJahesY
下手にシングルトンとかやると逆にマルチスレッドでこけたりするしな。
使いすぎなければグローバルはシンプルで軽くて便利。罠もあるけど。
一番の罠は、RAIIによるAPI隠蔽と相性悪いとこだな。
0978名前は開発中のものです。2009/08/09(日) 17:49:29ID:/Pr5d8OB
質問です
http://monoganac2.sakura.ne.jp/src/milktea26846.txt
裏画面を初めて使ってみたのですが、何も表示されません
どなたかミスの指摘をお願いします
0979名前は開発中のものです。2009/08/09(日) 18:07:09ID:vaLESxnj
なんという気持ち悪いインデント
DxLib_Initを使う前にGetColor使っちゃだめだ
0980名前は開発中のものです。2009/08/09(日) 18:14:34ID:/Pr5d8OB
できました
ありがとうございました
0981名前は開発中のものです。2009/08/09(日) 20:25:54ID:gf1YMdsn
コンパイル通ることにびっくりした俺ガイル
0982名前は開発中のものです。2009/08/09(日) 21:00:54ID:TrjuCGgx
ところで>>21のテンプレで次スレ立ててきていい?
個人的にはスレタイとテンプレのDXの表記を公式と同じ全角にしたいんだけど
0983名前は開発中のものです。2009/08/09(日) 21:39:58ID:JommlOMg
俺は半角のままがいいなぁ。
検索する時、アルファベットは大抵半角で検索するから。
0984名前は開発中のものです。2009/08/09(日) 21:41:12ID:DNAG5Uj0
俺も半角がいい
レス数が950を超えています。1000を超えると書き込みができなくなります。