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

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2011/04/03(日) 17:17:11.99ID:liTmPO3j
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/
DXライブラリ 総合スレッド その5
http://pc11.2ch.net/test/read.cgi/gamedev/1259912953/
DXライブラリ 総合スレッド その6
http://hibari.2ch.net/test/read.cgi/gamedev/1267108154/
DXライブラリ 総合スレッド その7
http://hibari.2ch.net/test/read.cgi/gamedev/1286180687/
0196名前は開発中のものです。2011/04/22(金) 15:51:49.28ID:d2IDnen2
はい?
0197名前は開発中のものです。2011/04/22(金) 16:19:03.02ID:IbxgPKF0
「関数そのもの」と「関数呼び出し」と「ソースコードの一行」を使い分けろ
0198名前は開発中のものです。2011/04/22(金) 16:46:44.29ID:ZZbcrveS
はい?
0199名前は開発中のものです。2011/04/22(金) 18:14:26.01ID:vb0J5xwN
関数のぶんだけというか描画する画像の分だけ構造体をつくるんだな
0200名前は開発中のものです。2011/04/22(金) 18:30:53.52ID:5772Xp6L
手続きか
0201名前は開発中のものです。2011/04/22(金) 18:58:47.76ID:iP1DrzVR
CとC++勉強してから出直してきなっ が正解だと思う
もしくはゲームの基本設計
0202名前は開発中のものです。2011/04/22(金) 19:10:34.25ID:iUZtwWxy
んだな〜
とりあえず四聖龍神録のとこに誘導してみるか
http://dixq.net/rp/
とりあえずココ行って基礎を学んでくれ
0203名前は開発中のものです。2011/04/22(金) 19:16:48.12ID:rCUrQ5sm
画像をロードしてから、
DrawGraphやDrawExtendGraphといった複数の描画関数を使ってることだよね?
そしてこの場合、単純に>>160の方法では無理なんじゃない、って話?

俺は経験薄なんでこれがまともな方法か分からんが
どの描画関数を使うかのフラグと、全ての描画関数に対応したメンバを持つ構造体を作って
それに次々に値を放り込んだ後、ソート→フラグに応じた描画関数で描画、という流れにするかなぁ
0204名前は開発中のものです。2011/04/22(金) 19:41:48.50ID:WNlqzxto
描画系関数って、上位互換/下位互換的な関係のものが多いから
(例:DrawGraphで出来る描画はDrawExtendGraphでも可能)
どれぐらい複雑な描画をしたいか、に応じて使う関数を決めれば良いと思うよ。
0205名前は開発中のものです。2011/04/22(金) 19:48:39.62ID:mHWapd/x
>>203
流れから言って>>195はド初心者だ。
描画関数っていうのはLoadGraphScreenのことだと思われる。
プログラムを教えるときに初心者の説明が正しいと思って聞くことがまず間違い。
0206名前は開発中のものです。2011/04/22(金) 20:00:26.12ID:17mzfYEX
まずLoadGraph覚えて
DrawGraph等の描画関数使えるようにならないとだるい
0207名前は開発中のものです。2011/04/22(金) 20:21:32.51ID:ZZbcrveS
>>203
ありがとうございました
おかげで解決しました
0208名前は開発中のものです。2011/04/23(土) 04:07:37.85ID:+EnSFA7O
今までファイル読み込み関係の関数の存在意義がわからなかったのだが
もしかしてこれを使わないとDXアーカイブ内部のファイルが読めない?
0209名前は開発中のものです。2011/04/23(土) 04:19:37.94ID:96fUA2Yj
んだねー
0210名前は開発中のものです。2011/04/23(土) 09:58:05.21ID:8HtAA01M
>>208
もろDXアーカイブ用の為の関数よ。
0211名前は開発中のものです。2011/04/23(土) 10:01:41.96ID:tKjuaaW1
製作中はアーカイブにせずそのままだろうから
いざ最後にアーカイブ化してそのことに気づくというパターンはありそう
っていうか俺も今気づいた。
アーカイブにしたら動かないだろうな
0212名前は開発中のものです。2011/04/23(土) 10:10:56.27ID:8HtAA01M
>>211
DXアーカイブの強みは、DxLib内の関数のみを使用している意識せずに使えることなんだけど…。
ちゃんとリファレンスを読もう。
0213名前は開発中のものです。2011/04/23(土) 10:13:40.19ID:8HtAA01M
今日は起きたばかりなせいか文章能力がだいぶ欠落してるなw

>>210 用と為被ってておかしいのと、
>>212 DxLib内の読込関数を使用していれば意識せずに です。

ごめんなさい、許して。
0214名前は開発中のものです。2011/04/23(土) 10:16:12.31ID:YgZ77nNp
ゆるしますん
0215名前は開発中のものです。2011/04/23(土) 10:54:21.56ID:+IqGunXJ
ゆるせませんん
0216名前は開発中のものです。2011/04/23(土) 11:02:02.06ID:kMHIx+H2
スンスンスーン
0217名前は開発中のものです。2011/04/23(土) 12:14:29.86ID:VGABxqlM
FireRead_readをC標準関数のreadと同じ感覚で使おうとしたら
痛い目にあったことを思い出した。
0218名前は開発中のものです。2011/04/23(土) 12:15:37.75ID:VGABxqlM
FileRead_readをC標準関数のreadと同じ感覚で使おうとしたら
痛い目にあったことを思い出した。
0219名前は開発中のものです。2011/04/23(土) 12:16:51.97ID:VGABxqlM
生まれて初めて2重書き込みという物をやらかした。
すまん。
0220名前は開発中のものです。2011/04/23(土) 12:18:31.59ID:kMHIx+H2
気にするな
0221名前は開発中のものです。2011/04/23(土) 12:23:49.62ID:bPWS++pQ
どんまいだ
0222名前は開発中のものです。2011/04/23(土) 12:40:13.04ID:/QKrQh/6
責任を取って死ぬべき
0223名前は開発中のものです。2011/04/23(土) 13:46:37.99ID:tKjuaaW1
>>212
製作中はアーカイブにしないから
標準の読み込み関数を使ってしまって
そのためにアーカイブ化すると動かなくなるということ話ね。
0224名前は開発中のものです。2011/04/23(土) 17:29:32.03ID:8HtAA01M
>>223
あぁ、何も考えずに勝手に手が動いちゃってみたいな意味か。
0225名前は開発中のものです。2011/04/23(土) 17:53:52.76ID:Nu+ZK2JU
>>203
それだったらクラスでスッキリ解決するのでは
0226名前は開発中のものです。2011/04/23(土) 17:55:44.84ID:YC2BcyK4
自分もそのパターンだなあ。

俺用フレームワークを作ってる人は多いと思うけど、
拡張しながら使っているとは言え、新しい機能とか部分的に対応してなかったりするんだよなw
0227名前は開発中のものです。2011/04/23(土) 17:59:12.91ID:MULAonT8
64bit版ライブラリを作ろうとしてソース調べてたんだけど
DxWin.cppのWM_MOVEShred関数の
WinData.WindowRect.left = ( lParam << 16 ) >> 16;
を筆頭に変な書き方をしている部分が多くて挫折しそう
0228名前は開発中のものです。2011/04/23(土) 20:46:39.92ID:9baWLQqe
固定小数点の変数として見てて
上位16ビットを捨てて小数点以下にしてるとか?
0229名前は開発中のものです。2011/04/23(土) 20:58:50.32ID:MULAonT8
いや、lParamが32bitだと仮定して16bit左シフト16bit右シフトで
上位16bitをクリアしようとしてる
当然lParamが64bitであるx64では破綻する

むしろ符号拡張絡みで32bitでもやばい気がしないでもない
Windows的にはHIWORD,LOWORDマクロで取り出すのが正攻法
0230名前は開発中のものです。2011/04/23(土) 21:32:25.30ID:l8bD6Lx5
>>229
公式で指摘してあげたらいんじゃね?
管理人さんも万能のスーパーマンというわけではないのだから
0231名前は開発中のものです。2011/04/23(土) 21:45:55.91ID:VcZqyLro
結局、質問掲示板のほうに言ったか
向こうも大混乱だな
0232名前は開発中のものです。2011/04/23(土) 22:48:29.18ID:MULAonT8
>>230
ネイティブ64bit対応なんてこのライブラリのユーザ層からして需要がないから
公式には書きにくくてね
0233名前は開発中のものです。2011/04/23(土) 23:55:35.46ID:96fUA2Yj
ネイティブで64bit対応するとどういう得があるんだっけ?おしえてくだちい
0234名前は開発中のものです。2011/04/24(日) 02:35:50.16ID:h1rovhXU
開発側が32bitを切りたいと思ってるなら役立つ?
少なくともXPは全滅しそう。
0235名前は開発中のものです。2011/04/24(日) 18:35:19.94ID:QtHel+Bq
>>233
doubleが64ビット
0236名前は開発中のものです。2011/04/24(日) 18:36:28.57ID:f3nRIpeu
メモリコピーがちょっと早くなるだけ?それってそんなにいるの?
0237名前は開発中のものです。2011/04/24(日) 21:07:31.04ID:/nQOPHyj
龍神録のHPのゲームプログラミングの館が一新されてる
0238名前は開発中のものです。2011/04/24(日) 21:08:50.83ID:/nQOPHyj
あ、古いのは下側にあったわ
0239名前は開発中のものです。2011/04/24(日) 21:13:01.00ID:v3pwyrnJ
初心者が詰まりそうなトコが個別に分かりやすくまとめられてるな ナイスだ
0240名前は開発中のものです。2011/04/24(日) 22:28:09.84ID:c1FilR2L
おおおおお
0241名前は開発中のものです。2011/04/24(日) 22:57:06.46ID:9GkRz4f/
SNS設置してねーわとか思ってたけど無くなったの?
やっぱり不評だったんだな。
まあ個人サイトをここでとやかく言うことではないか。
0242名前は開発中のものです。2011/04/24(日) 23:19:51.61ID:n/oFO+Nc
mixc++とかいうのがバーンとあるじゃん
0243名前は開発中のものです。2011/04/25(月) 00:09:14.76ID:cByZ1ecF
いや、前はSNSだったけど今はForumになってるみたい。
0244名前は開発中のものです。2011/04/25(月) 05:58:47.55ID:hAU7bdZk
あれはフォーラムにしてSNSだよ
0245名前は開発中のものです。2011/04/27(水) 16:41:50.17ID:SfWDnuLr
このゲームはDXライブラリ使ってるとか分かる方法ありますか?
0246名前は開発中のものです。2011/04/27(水) 16:50:07.54ID:IPJ0XE3+
何か根本的な勘違いをしてる気もするが……まあいいや。

Log.txtとDXライブラリ用アーカイブあたりで判別できることはある。
あとreadme
0247名前は開発中のものです。2011/04/27(水) 23:12:59.43ID:2C6l25XF
そのゲームのexeをメモ帳で開いてDxLibで検索してみ
0248名前は開発中のものです。2011/04/29(金) 19:09:37.42ID:DyYH5Z77
ふと思ったんだが
DXライブラリでつくられたゲームで売れているのってあるか?
0249名前は開発中のものです。2011/04/29(金) 19:16:58.08ID:kMqcAN+6
>>248
有名なのはディアドラエンプティとかかな
売れてるかはわからないけどアナザーアポカリプスってのも評判良かった
あと東方二次創作ではDXライブラリ製が結構多い
0250名前は開発中のものです。2011/04/29(金) 20:00:19.32ID:QpcweCtM
全部シューティングか
0251名前は開発中のものです。2011/04/29(金) 20:09:32.74ID:KkdA+cFq
ロックマンみたいなやつもあったね
0252名前は開発中のものです。2011/04/30(土) 00:40:51.92ID:32GM57KJ
>>251
あーそれ、さっきまで遊んでた
フロイデンシュタヘルとかいって喋るやつじゃない?
0253名前は開発中のものです。2011/04/30(土) 07:10:23.99ID:aEFMseaj
Rosenkreuzstiletteだね
あと古いゲームだけど、だんえたもそこそこ売れたんじゃないかな
調べてみるとフリーで有名なゲームにもDXlib使ってるのがちらほら
0254名前は開発中のものです。2011/05/01(日) 01:22:54.30ID:Ev0zZ5zF
SetAlwaysRunFlagをTRUEにして、GetActiveFlagがTRUEの時に
キー判定をするようにしても、VC++がアクティブ時だとキーが
反応してる気がする
0255名前は開発中のものです。2011/05/01(日) 06:52:06.21ID:IAjZNoGW
VC++が親プロセスになってるからかな?
単独で動かしたときはどうよ?
0256名前は開発中のものです。2011/05/07(土) 23:50:21.56ID:EtYXhAMI
DXライブラリからSeleneに移行したみたいな人っている?
3DならSeleneがいいみたいな話を小耳に挟んだのでちょっと興味が沸いた
0257名前は開発中のものです。2011/05/07(土) 23:57:59.16ID:2sm8OEH5
2.xの頃はたまに聞いたけど今はどうなんだろう
0258名前は開発中のものです。2011/05/08(日) 00:06:46.40ID:wp3inFii
DXライブラリに慣れてるならそのままがいいんじゃないかな
感覚そのままで3Dに以降できるし

昔selene使ってみようとしたことがあったけど、
色々用意されすぎてて独自ルール満載のseleneプログラミングを勉強しなおす事になっちゃう
0259名前は開発中のものです。2011/05/08(日) 01:22:47.21ID:6B61UFdu
ちょっと見てみたけど確かに難しそうだったな。
やっぱ慣れてるほうのがいいか。ありがとう。
0260名前は開発中のものです。2011/05/08(日) 02:26:03.19ID:Q+cfEXU/
dxライブラリで物足りなくなったら大人しくdirectx直叩きに移行するかなぁ
0261 [―{}@{}@{}-] 名前は開発中のものです。2011/05/08(日) 14:34:35.09ID:RMol3l5C
やっぱり読み込む画像のサイズが小さい方が描画速度が速いようだぞ
画像を読み込むときに画像を16x16毎に分けて個別に配列に格納して描画するようにしたら
めっちゃ早くなったわ。処理を見直すよりよっぽど効果があるわ。
画像が小さい方がビデオメモリに画像データをキャッシュさせやすくなるとかなのかな。
0262名前は開発中のものです。2011/05/08(日) 14:43:22.94ID:RBZRN1AF
例えば横513ピクセルだと1024まで拡張しちゃう的ななにかかもしれない
0263 [―{}@{}@{}-] 名前は開発中のものです。2011/05/08(日) 14:50:31.40ID:RMol3l5C
なんでソフト屋様がハード仕様を意識してコーディングしないといけないんだよふざけんあよ
0264名前は開発中のものです。2011/05/08(日) 14:58:04.98ID:jie80BC+
高級言語プログラマ様はお偉くていらっしゃるw
0265名前は開発中のものです。2011/05/08(日) 15:01:59.49ID:RBZRN1AF
と思ったけどDxライブラリってそこ勝手に分割してくれるとかなんとか
フラグ建てないとだめなんだっけ?そんな感じの記述をどっかで読んだ覚えが
0266名前は開発中のものです。2011/05/08(日) 15:03:18.18ID:zclMRG66
というよりそんなことしないといけないような重いプログラムのほうが問題だったりしないか
0267名前は開発中のものです。2011/05/08(日) 15:07:00.89ID:u3+kLa6f
軽くできるなら軽くだぜ
0268名前は開発中のものです。2011/05/08(日) 16:06:55.79ID:rUzvphcT
DXライブラリの通信プログラムを触ってゲームつくりたいんだけど
詳しく載ってるサイトない?
0269名前は開発中のものです。2011/05/08(日) 16:40:31.79ID:4k77N9pL
軽くできるならそうすべきだけど、他に原因があんじゃね?って話だよな
普通に考えるとBlt回数減らした方が早いと思うんだけど
0270 [―{}@{}@{}-] 名前は開発中のものです。2011/05/08(日) 16:46:24.33ID:RMol3l5C
いや16x16のマップチップを画面左上から右下方向に順に画面全体に表示させるということをやっていて、
マップチップ画像全体を読み込んで表示位置をIDに従って切り替えるんじゃなくて
16x16毎に画像を切って読み込んだら早くなったっていうことなんだけど、
Blt回数減らせるかね?
0271名前は開発中のものです。2011/05/08(日) 17:05:45.08ID:zclMRG66
>>270
以前は一部だけ描画する関数を使ってたってこと?
それなら比較すれば早くなるだろうけど
0272 [―{}@{}@{}-] 名前は開発中のものです。2011/05/08(日) 17:13:04.05ID:RMol3l5C
>>271
マップチップ画像の事をマップ画像だと思ってる?
マップ画像は持ってなくて、マップチップ画像からチップIDに従って16x16を抜き出して適切な位置に表示してる
描画回数はどちらも(ウィンドウの幅/16)*(ウィンドウの高さ/16)回ですよ
0273名前は開発中のものです。2011/05/08(日) 17:21:00.55ID:6HW1OX7i
DrawRectGraph?
それとも1マス毎にDerivationGraph+DrawGraph?
0274 [―{}@{}@{}-] 名前は開発中のものです。2011/05/08(日) 17:24:04.24ID:RMol3l5C
DrawRectGraph
0275名前は開発中のものです。2011/05/08(日) 17:37:06.78ID:6HW1OX7i
マップチップ画像をLoadDivGraphで分割読み込みすればDrawRectGraphより速くない?
あ、でもマップチップ画像が2のn乗サイズじゃないと重いかも
マップチップ画像のサイズは幅・高さ何?
0276名前は開発中のものです。2011/05/08(日) 18:40:29.78ID:4k77N9pL
大きな画像があってそれを分割転送してるのかと思って。マップ並べる話ね。ごめん
俺はLoadDivGraphだと元画像でチップの境目がわからなくなるので、
普通にLoadGraphしてDerivationGraphでチップに切り分けるLoad関数を作って使ってる
線引いて格子状にした上と横に番号振った画像用意すると、どこに何が割り当たってるのかわかりやすいので
0277名前は開発中のものです。2011/05/08(日) 19:47:03.68ID:0iFMBARD
格子&ナンバリングした画像を用意するのと、LoadDivGraph云々の関係が分からなかったorz
0278名前は開発中のものです。2011/05/09(月) 03:05:02.19ID:jLb61kJW
>>277
LoadDivGraphだけで画像分割ロードを一括して行なった場合
画像内全てに対して切り出しを行うから格子だのナンバリングだの落書きできるスペースがない
でもLoadGraphしてDerivationGraphした場合は好きな場所から切り出すことができるので
画像内に落書きしてあっても利用したい画像同士が離れていても問題ない
0279名前は開発中のものです。2011/05/09(月) 08:00:21.68ID:BAc8nyqH
この話ってすごく有益な情報じゃね?
なのにこんがらがってよくわからん…
0280名前は開発中のものです。2011/05/09(月) 10:49:02.99ID:cCCnXiw+
なんとなく分かったような分からんような。
画像を出してくれれば一発な気がする。
0281名前は開発中のものです。2011/05/09(月) 18:24:49.96ID:W/56kxUa
はい、こんなん
これの黒く塗りつぶされた所を32*32で切り出すのはLoadDivGraphじゃ出来ない
ttp://gmdev.xrea.jp/st/up/270.png
0282名前は開発中のものです。2011/05/09(月) 18:31:07.26ID:QRzj4t2Z
最初っから言ってることは理解できるけど、
それをやる意味が理解できない。

配布するときは画像差し替えるのか?
面倒だし意味なくね。
0283名前は開発中のものです。2011/05/09(月) 18:36:42.25ID:5OamKCzT
改善前と改善後のコード貼ってくれよもう
お前の脳内を知ってること前提で話しててわけわからん
0284名前は開発中のものです。2011/05/09(月) 18:41:40.67ID:nBnRiOww
たぶん、本人の糞コードが一部書き直したら改善されたんだが
本人はなぜ改善されたのかを誤った解釈をしている、というパターン
有益な知見は含んでいそうにない
0285名前は開発中のものです。2011/05/09(月) 19:10:30.39ID:aNjjzIs9
あなたはすごいエスパーなんですね
02862802011/05/09(月) 20:00:02.26ID:cCCnXiw+
画像の方にばかり意識が集中してて、
元々の話題がコードを修正したら速くなったって話だったのを忘れてたぜ!

>>281
なるほど、実際に使う機会があるかどうかは別として
確かにLoadDivGraphじゃ難しいな。
0287名前は開発中のものです。2011/05/09(月) 20:17:17.03ID:ySCJuBxg
ペイントツールのレイヤーで対応できることだな
素材レイヤーだけを出力するだけだし
0288 [―{}@{}@{}-] 名前は開発中のものです。2011/05/09(月) 21:39:19.39ID:wT+RcLKY
こんだけ説明してんのになんでわかんないんだよ馬鹿か。
読み込む画像サイズが小さい方が高速化するからもともと256x2560(適当)とかのサイズのマップチップ画像を
16x16の小さい画像にプログラム内部で切って分割して読み込んだら早くなったってことだろうがよ。
あと俺はBlt回数減らせるかね?と質問してるわけだが答えてないよね。
0289名前は開発中のものです。2011/05/09(月) 21:45:23.74ID:aNjjzIs9
min(縦幅, 横幅)を超えない最大の2のn乗サイズの正方形を使えばちょうどいいんじゃないかな
0290名前は開発中のものです。2011/05/09(月) 21:45:44.68ID:ktFVo4T1
そうだといいですね。
0291名前は開発中のものです。2011/05/09(月) 22:05:01.12ID:5OamKCzT
Bltとか言ってるのに内部でどういう処理してるのかわかってないように思える
「大きいサイズのマップチップ画像を読み込んでた」のと
「16x16の小さい画像にプログラム内部で切って分割して読み込んだ」っていうのが具体的にどんな処理の違いなのか、
抽象的というか>288の脳内でのみの定義を前提にしてるから理解しにくいんだよ

ちなみにブリットに関しては何も変わらない というかこの場合全く関係ないし

正直串の人は頭良く見られてたい馬鹿にしか見えないにゃー やきとりもぐもぐ
0292 [―{}@{}@{}-] 名前は開発中のものです。2011/05/09(月) 22:23:27.58ID:wT+RcLKY
あっそ。俺の問題は解決したからもうどうでもいい。
情報を提供したところで俺には何のメリットもないし。
0293名前は開発中のものです。2011/05/09(月) 22:26:21.91ID:4KKSHyv9
DXLIBはもう覚えてないけどたしか配列にして画像ロードするやつでしょ?

uv座標の計算をあらかじめしておくだけで画像は分割しないと思うよ。
同じ画像を繰り返し描画(描画時にUV座標で一部を切り出す)をするのが
drawIndexedPrimitive()で速いんだから。
0294名前は開発中のものです。2011/05/09(月) 22:29:13.88ID:aBBSVPJM
正直、全然意味がわからん

1チップが64*64ピクセルで、512*512ピクセルのBMPファイルに8*8チップ分描いた場合、
通常は
「64*64を1チップとして切り出し、ハンドルを64(8*8)個作成する」
が、
「1チップをさらに16分割(4*4)し、ハンドルを1024個(32*32)作成する。描画時は16チップを一まとめに扱う」
ってことか?
0295名前は開発中のものです。2011/05/10(火) 02:52:47.39ID:4bIfXYea
公式で高速化のことどっかで見たなと思ったら過去ログにあった、No.4の下のほう
ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=1162
これ見る限りだとでかい画像にチップを全部書き込んでLoadDivGraphなり
DerivationGraphなりで分割使用した方が速いはず
■ このスレッドは過去ログ倉庫に格納されています