トップページgamedev
996コメント293KB

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名前は開発中のものです。2011/08/18(木) 17:18:15.54ID:vXmrN4yD
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/
DXライブラリ 総合スレッド その8
http://hibari.2ch.net/test/read.cgi/gamedev/1301818631/
DXライブラリ 総合スレッド その9
http://hibari.2ch.net/test/read.cgi/gamedev/1310904069/
0831名前は開発中のものです。2011/11/09(水) 18:23:14.88ID:Tj84qc8d
DXライブラリ界隈はちっともノウハウが蓄積しないよな

>>830
もっとましな解説サイト知ってるなら教えてくれよ
0832名前は開発中のものです。2011/11/09(水) 19:08:22.25ID:0mO+B9z8
それはあるな
このスレみても本当に浅い部分での話題しかない
深い技術的な話題がない
0833名前は開発中のものです。2011/11/09(水) 19:18:51.41ID:NartzqgO
そもそもプログラミングの話題自体ほとんど出ないじゃないかこのスレ
0834名前は開発中のものです。2011/11/09(水) 19:43:00.03ID:GKNT7Tvh
少し前まではプログラムの話自体スレ違いって止められてたし実践的な話題になりにくいのは当たり前
0835名前は開発中のものです。2011/11/09(水) 19:50:54.25ID:6nuVwSJa
DxLibFanと公式BBSの過去ログあればほとんど事足りるからな
所詮描画ライブラリなので後はどちらかというとC++のノウハウだし
0836名前は開発中のものです。2011/11/09(水) 21:10:42.12ID:hlCHSTSe
>>831
解説サイト作っても>>824みたいに言われるんだろうしな
実際にサイト作ってる人は偉いわ
0837名前は開発中のものです。2011/11/10(木) 00:03:09.56ID:fygmWcBb
wikiもないテンプレもないまとめサイトもない
知ったかが偉そうに否定だけしていく、それだけ
0838名前は開発中のものです。2011/11/10(木) 00:14:02.99ID:m2MTWY2i
>>836
ゲーム作りだってそうだろ?
それなりのクオリティの物をつくる奴は淡々としているけど。
何も作らない奴は口だけ五月蠅い。

同じだよ。
0839名前は開発中のものです。2011/11/10(木) 00:28:08.06ID:qfxfByep
よくある「漫画の描き方」とかのハウツー本を実際の漫画家が執筆する事はまずない。
0840名前は開発中のものです。2011/11/10(木) 00:38:35.54ID:AKmYMyEo
Dxlibの関数については公式で事足りるからな。
わからないことがあれば公式掲示板で管理人さんや常連さんが的確な回答くれるし…。
ここで話すことって言ったらアップデートで○○対応されたねーとか、○○って関数バグ持ちじゃね?とかくらいじゃん。
0841名前は開発中のものです。2011/11/10(木) 02:08:39.46ID:lLBYcWeU
イラストの描き方の本を出した絵描きは、メンヘラだったな……
0842名前は開発中のものです。2011/11/10(木) 15:20:00.48ID:X8OQdNx0
DxLibで動画取り込みたいんだけど、アルファ情報がうまく反映されてない気がする
まあ、動画側がアルファ情報持ってるかどうかが実はまだ怪しいんだが・・・

リファレンスにあるように_aもつけてみたけど、どんまいだった(そもそもそこは自動らしいし)
DxLibってアルファ情報扱えるよな?
0843名前は開発中のものです。2011/11/10(木) 15:27:36.25ID:9ARI0/qO
動画撮影に何使ってる?
自分の場合、グラッフィックドライバか何かがおかしいのか、
録画した動画ファイルを開こうとすると、Windowsが止まる…。
0844名前は開発中のものです。2011/11/10(木) 21:29:49.76ID:XA6nG28a
あれ?
アルファ付き動画ってもう対応したの?
0845名前は開発中のものです。2011/11/11(金) 01:18:48.65ID:myaTZalR
俺は、NiVEで簡単な動画作って使えるかなと思って、UtVideoコーデック
で.aviで出力したからおそらく動画はアルファ持ってると思うけど
実際にPlayMovieToGraphとDrawGraphで動画再生すると、背景は黒くなってる

つかやっぱり動画だとアルファに対応してないの?
0846名前は開発中のものです。2011/11/11(金) 23:51:55.52ID:kTo/VyVB
アルファ付き動画には対応依頼が来てて、「対応考えます」ってのは掲示板で見た気がするけど、「対応しました!」ってのは見てないな
だからまだなんだと思うよ
0847名前は開発中のものです。2011/11/12(土) 14:04:06.62ID:7bdxdQ/6
>>846
やっぱりか、ここ1週間くらいの努力が泡になりました
でも仕方ないね

さて、どうしようかな


0848名前は開発中のものです。2011/11/12(土) 14:10:02.28ID:bexUnWRY
アルファ付き動画って何やりたいの?
0849名前は開発中のものです。2011/11/12(土) 14:11:01.10ID:yKKt4n4m
エフェクトに使えそうではあるんだよな。
NiVEは画像出力も出来たと思うけど、ちょっと面倒くさい
0850名前は開発中のものです。2011/11/12(土) 14:16:45.50ID:bexUnWRY
ゲームのエフェクトには重すぎるよ
連番画像でもメモリ占有するから避けられてるのに
0851名前は開発中のものです。2011/11/12(土) 16:31:24.39ID:0bFrYxS8
まあマスク用の白黒の動画を用意すれば擬似的には出来るんじゃないの?

マスク用の白い画像を用意して、先にマスク用画像を減算で描画。
その後に描画したい所以外を黒く塗りつぶした描画したい画像を加算で描画すればそれっぽく描画できる
これを応用すれば動画を2つ重ねて出来るはず

アルファ画像が使えないツールでゲーム作ってた頃よくやってた方法
0852名前は開発中のものです。2011/11/12(土) 17:33:46.73ID:dK9G4kbD
俺もα付き画像なんて何に使うんだろうと思ってた。
スパロボみたいなカットインいれるくらい?
でもあの程度なら動画より普通に画像アニメさせたほうが楽だし早いしなぁ。

>>851

そういう工夫は大好きだw
使う機会ないけど。
0853名前は開発中のものです。2011/11/12(土) 18:00:47.33ID:7GY6HiCU
文字のフェードインって可能?
色の指定でRGBA入りませんよね?
0854名前は開発中のものです。2011/11/12(土) 18:06:32.18ID:bexUnWRY
blendmode
0855名前は開発中のものです。2011/11/12(土) 18:09:48.73ID:vx/VZdrV
>>853-854
SetDrawBlendMode()の解説によると DrawString も入ってるね
0856名前は開発中のものです。2011/11/13(日) 01:12:34.16ID:BCspkxt4
>>848
ステージの最初と最後に、Stage StartとかStage Clearとかのロゴをエフェクト付きで
入れたかった。
完全な動画としてなら動画再生でいいんだけど、ゲーム進行中にそのロゴ入れたかったから
アルファが必要だった

色々考えるとDXlibでは、アルファ付き動画再生が無理となると、エフェクトは基本連番になるわけだから
あまり複雑だったり、大きいサイズや時間的長さだと無理なんだな
みんなどうやってるの?
0857名前は開発中のものです。2011/11/13(日) 01:16:13.65ID:e5uRPtOd
DxLibに限らずエフェクトは一枚絵を拡大縮小したり大量にばら撒いたりして作るのがセオリー 連番でも精々4〜5枚程度
ただしハードコーディングでやると大変なのでツールとかを作ったほうが良い
この間DXLibに対応したBishamonとかはそのツール。出来たファイルをプログラム側で読み込んで動的に再生する
0858名前は開発中のものです。2011/11/13(日) 02:07:39.87ID:wLtLlkEY
フツーに連結画像として扱えばいいんでないの?
DXlibはかなり大きな画像サイズでも問題なく読み込めるぞ
ムービー→連番画像→画像連結のソフトならいくらでもあるし
もしソフトがαに対応してなくても透明色を予め決めておけばいいだけのこと
0859名前は開発中のものです。2011/11/13(日) 02:16:49.05ID:etxKEEUe
ムービーのほうがよっぽど作るの時間かかるし実行するのにも時間もかかりそうなもんだが。
0860名前は開発中のものです。2011/11/13(日) 12:18:40.19ID:dd8ySnST
専用ツールとしてのアドバンテージ以外は、
ゲーム用エフェクト生成ツールとやってることは大して変わらない気がするよ。
0861名前は開発中のものです。2011/11/13(日) 15:45:50.31ID:xsW88Wld
LoadMovieGraphで読んだ動画をDrawGraphする時って
内部でWindowsのスレッド1本作ってた気がする
うろ覚えだけど
0862名前は開発中のものです。2011/11/13(日) 17:16:53.10ID:BCspkxt4
Bishamonとか高いな、手が届かない
でもこいつがあれば俺のゲームもカッコよくなるだろうな

>ムービー→連番画像→画像連結のソフト
あるのか、だったらそれ探してまたパラパラでまた挑戦してみるわ
0863名前は開発中のものです。2011/11/13(日) 17:24:04.31ID:dd8ySnST
>>862
単純に3万からだしねー。
0864名前は開発中のものです。2011/11/13(日) 17:27:44.67ID:Ttq42r1r
>>862
いい名前を聞いた
これで3万なら買おう
0865名前は開発中のものです。2011/11/13(日) 17:38:51.07ID:2+R+DPF3
よくわからんがMMEやアフターエフェクトとは違うのか?
0866名前は開発中のものです。2011/11/13(日) 17:44:56.69ID:e5uRPtOd
>>864
補足すると
一年間のライセンスが1万弱
SDK(買い切り)が2万弱
合わせて3万

>>865
>>857
0867名前は開発中のものです。2011/11/13(日) 19:27:47.07ID:dd8ySnST
>>866
DirectX系以外でも使おうとすると、その分だけSDKを買わなきゃならないから、
いろんな環境で開発してる人は、ターゲットを絞った方が良さそうだけどねー。

>>864
元は数百万の業務用を、10万くらいで個人用に販売できないか調整してたみたいね。
で、蓋を開けたら3万〜とw
0868名前は開発中のものです。2011/11/13(日) 22:18:23.21ID:c46xJnZd
MMEとか言ってるのはどのこ住人だw

MMEてMMD用のHLSLそのものだろw
0869名前は開発中のものです。2011/11/13(日) 23:12:59.02ID:v+WgiRfi
こういうソフト買っても結局使いこなせずいつも平凡に作る俺
0870名前は開発中のものです。2011/11/14(月) 01:22:23.70ID:QxEaDdNW
俺はGIMP卒業してフォトショ買ったからもう無理だな、ツールにそこまでつぎ込めない
次に買うのはAEかParticleIllusionのつもりなんだけどな、何年先になるやら

俺はフリーソフトで生きていくわ
0871名前は開発中のものです。2011/11/14(月) 01:24:03.87ID:vey8LKUY
金がないから自分で代用ツール作るわ
そして安価で売って儲けたい
0872名前は開発中のものです。2011/11/14(月) 02:04:07.40ID:odOcsdY8
便利そうなのに類似ソフトはないのか
0873名前は開発中のものです。2011/11/14(月) 02:20:32.87ID:8EhiSIXC
ツクールシリーズに非常に簡易なものならあるよ
0874名前は開発中のものです。2011/11/14(月) 05:30:03.10ID:Rpz+kmG6
BISHAMONに比べるとまだまだだけど、Effekseerなんてのもあるね。
少し前にDXライブラリに対応したって話を聞いた。
0875名前は開発中のものです。2011/11/14(月) 12:33:10.41ID:hrZl6RzT
Sleneの作者もBISHAMONのパチモンらしきものを開発してたな
0876名前は開発中のものです。2011/11/15(火) 04:46:42.24ID:V0o+21Uh
>>858
連番画像を連結できるソフトは結構あったんだけど、pngに対応してなかったり
対応しててもアルファに対応してなかったりと、結局のところいいのがなかった

仕方なくNiVEから連番をjpgで出して、jpgで連結した後、PSでUnMultiplyとかいうプラグインで
背景の黒取り除いたらなんとかなった

でもどんだけ遠回りしてんだ・・・
0877名前は開発中のものです。2011/11/15(火) 04:58:38.32ID:SxUfWT7o
aviutlの拡張編集を使って動画から直接連番RGBAビットマップまでなら楽に落とし込めそう
0878名前は開発中のものです。2011/11/15(火) 05:27:15.30ID:VctR7VN8
>>876
俺はAzJoinImageってソフト使ってる
α付きpng対応してる
08798782011/11/15(火) 05:49:49.54ID:VctR7VN8
悪い、出力ファイル見たらα情報欠落してた
カラーキーで抜いてたから気づかんかった
0880名前は開発中のものです。2011/11/16(水) 02:20:04.24ID:UpHEAMBO
ゲーム作るの飽きたんで、絵のトレーニング積んできます
0881名前は開発中のものです。2011/11/18(金) 17:43:32.89ID:xGsbmWsY
横スクロールアクション作るときに物理エンジン使ったりする?
Box2DとかBulletとかあるみたいだが
0882名前は開発中のものです。2011/11/18(金) 17:50:00.42ID:AoBJeac2
2D横スクアクション程度作るのになんで物理エンジンが必要なのかわからんが、
そういうコンセプトのゲーム作りたいならいいんじゃね。
0883名前は開発中のものです。2011/11/18(金) 17:50:28.94ID:dHElg5ki
横スクロールアクションでは使ったこと無いなあ
0884名前は開発中のものです。2011/11/18(金) 19:03:00.19ID:kdqmHHCX
Box2Dならそんな重くねーし使ってたが
大半の処理をKinematicでやったりセンサーとしてしか使ってなかったりで
結局はリアルさまったくないものになったな
0885名前は開発中のものです。2011/11/18(金) 19:26:59.17ID:dHElg5ki
>>804
面倒くさい処理を全部ぶん投げられるから楽ではあるんだけどなw
0886名前は開発中のものです。2011/11/20(日) 02:30:05.84ID:ebcOYj+U
オープニングで動画再生したら、めっちゃ重いんですけど・・・

これじゃ始まっていきなりドン引きされるじゃねーか
0887名前は開発中のものです。2011/11/20(日) 06:15:25.82ID:KupbTPbD
エンディングで再生すればいいんだよ
0888名前は開発中のものです。2011/11/20(日) 11:53:55.09ID:UCBFcllZ
天才あらわる
0889名前は開発中のものです。2011/11/20(日) 11:56:09.69ID:JrRqMQLe
動画が高解像度だったり60fpsだったりとかしないよな……?
0890名前は開発中のものです。2011/11/21(月) 02:22:51.56ID:M/VyhTLV
30fpsだし、解像度うんこだし、10秒くらいの動画なのに・・・

連番に切り替えるのもありかもしれない
0891名前は開発中のものです。2011/11/21(月) 03:43:28.96ID:uAwZ4Qj7
思いってカクつくって意味か?単にCPUフルに使うだけとかじゃないよな
0892名前は開発中のものです。2011/11/21(月) 11:14:47.59ID:ntZtxrso
連番画像じゃ余計無理だろ
1コマ当たり640*480*32bit = 1.2MByte
1.2MByte * 300 = 360MB分の画像をメモリ上にロードする気か?
0893名前は開発中のものです。2011/11/21(月) 13:11:32.25ID:GoSLz0t5
オンラインのスコアランキングやりたいけど、自分でサーバー用意したりしなきゃできないのかな?
そういうことは都合上できないんだけど。
0894名前は開発中のものです。2011/11/21(月) 13:29:24.77ID:ntZtxrso
別にVPSでも借りりゃいいじゃん
0895名前は開発中のものです。2011/11/21(月) 15:12:00.36ID:gbe2kYbP
別にcgiでも置けばいいじゃん
0896名前は開発中のものです。2011/11/25(金) 17:16:42.26ID:BAy23hAg
頻繁に使う変数はグローバル変数にし、常にメモリを確保しておいたほうがいいのでしょうか?
それとも必要な時ごとにメモリを開放したほうがいいのでしょうか
具体的には
http://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_input.html#R5N28
というページの以下のコードです
char Buf[ 256 ] ;はグローバル変数にするか、場面によっては使わないようにするかで迷っています。
グローバル変数のほうが絶対にいいとは思うのですが、
HPによってはグローバル変数は絶対悪だ、みたいなこともかいてあります
それそもとれは大規模な開発の場面であって、個人では問題ないのでしょうか
どちらがよいでしょうか

char Buf[ 256 ] ;
GetHitKeyStateAll( Buf ) ;
if( Buf[ KEY_INPUT_Z ] == 1 )
{
// Zキーが押されている
}
else
{
// Zキーは押されていない
}
0897名前は開発中のものです。2011/11/25(金) 17:36:20.43ID:iXddPxkH
グローバル変数は絶対悪だってのは一部の職業プログラマの宗教みたいなもんだから無視していいよ
自分の管理しやすい方でやればいい
0898名前は開発中のものです。2011/11/25(金) 17:39:12.68ID:BAy23hAg
>>897
やったー
ありがとうございます
0899名前は開発中のものです。2011/11/25(金) 17:44:22.70ID:1SzTAqNb
Bufの内容をいろんな関数で参照したいならグローバルや静的変数でいいよ
1関数内で収まるなら256バイト位ならスタック上のローカル変数で十分
その変数が必要ないソースから見えなきゃグローバル変数は絶対悪でもない
0900名前は開発中のものです。2011/11/25(金) 18:14:44.87ID:GB5t8CRi
>>896
出来る限り変数のスコープは小さく保つべき。
同じ変数を使いまわすと今その変数に何の値が入ってるのか把握するのが難しくなり、思わぬバグを引き起こす。
特に初期化し忘れを防ぐために可能ならば宣言と同時に初期化値を代入するのが望ましい。

ちなみにメモリの確保と解放は確かに多少重くなるかもしれんが、
最近のコンパイラは最適化が優秀でそういうのは勝手にやってくれるため気にする必要は全く無い
0901名前は開発中のものです。2011/11/25(金) 18:17:36.24ID:9+8knjT5
将来的にキーコンフィグ(入力キー設定、キーバインド)の変更をしないならそれでもいいかもね
色々変更するかもしれないなら、コマンドクラスを作ったほうが保守性が高いんじゃないか?
0902名前は開発中のものです。2011/11/25(金) 18:48:39.04ID:X/JXm5DV
グローバル変数作り過ぎると後で痛い目みるからほどほどにな…

ソースは俺
0903名前は開発中のものです。2011/11/25(金) 19:50:24.03ID:girb6CSA
頻繁に使うから〜というのは確かに正しいけど、
全体の何%だよ!って部分を少しだけ速くしたところで、見た目に変わることがないというのも、やっぱり正しいと思うよ。
0904名前は開発中のものです。2011/11/25(金) 20:07:31.31ID:iXddPxkH
グローバル変数管理ツールを作ればいいのさ
0905名前は開発中のものです。2011/11/25(金) 20:16:08.85ID:0IE6eIFl
グローバル変数使うなってのは幾多のプログラマが痛い目にあった上で生まれた教訓
自分で問題点が分からないのなら実際にやってみた上で判断すればいいと思う
歴史に学ぶか経験に学ぶか、だな
0906名前は開発中のものです。2011/11/25(金) 20:27:54.71ID:D4NDQSDv
>>896 キー入力の状態ならグローバルでいいと思う。
0907名前は開発中のものです。2011/11/25(金) 20:31:32.79ID:Aue2OhIn
プログラム初心者だからこういう話すごい参考になる

配列に値を一括で入れたい場合って宣言のときしか無理だよね
こういうのはグローバルにしてもいい?
それともコンストラクタか何かでループで入れていった方がいい?
0908名前は開発中のものです。2011/11/25(金) 20:39:02.38ID:YLcAYCYj
>>896
calss KeyStatus {
private:char Buf[ 256 ] ;
public:getHitKeyStateAll(){GetHitKeyStateAll( Buf ) ;} ;
public:char getKeyBuf(int key_input){return Buf[ key_input]; }
};
とりあえずこうしとけ、クラスはグローバルにしていいから
0909名前は開発中のものです。2011/11/25(金) 21:53:03.64ID:8iac4M0d
ちょっとテストさせてください
0910名前は開発中のものです。2011/11/25(金) 22:04:45.85ID:OU9WDBg2
3つ教えてください。
よろしくお願いします。

(1)
ウィンドウの右上の「×」や「Ctrl+Alt+Del」で強制終了した際に、「DxLib_End();」を実行するにはどうすればいいのでしょうか?
このような場合は、「DxLib_End();」をしなくても良かったりしますか?
今のところは異常を見たことがありませんが。

(2)
ウィンドウモードで起動して、ウィンドウを動かせるようにしたいのですが、どうすればいいですか?
「玉当てゲーム」のソースコードを読んでみているのですが、そういう設定を行う関数を呼んでいるところを見つけられないです。
関数か、ソースコードの行番号か、教えていただけませんか。

(3)
「SetWindowSize」という関数がヘッダにありました。
リファレンスには載っていません。使ってほしくない関数なのでしょうか?
09119102011/11/25(金) 22:06:08.08ID:OU9WDBg2
(2)の質問は、「ウィンドウを動かせるようにしたい」が訊ねたいところです。
言葉足らずですみません。
0912名前は開発中のものです。2011/11/25(金) 22:21:40.39ID:hjCazteI
普通はBufは外部に公開せずに
is_push_key();
みたいな関数経由で中でBufを見るかな
0913名前は開発中のものです。2011/11/25(金) 22:32:39.23ID:RwVxSi+4
>>903
>見た目に変わることがないというのも、やっぱり正しいと思うよ。

見た目変わらないというのはそうかもしれないが、見た目以外は変わるのも正しい
以前にも言ったかもしれないが「そんな事しなくてもいまどきのPC性能なら問題ねーよ」と
よく言われるような事を実装したところ、確かに見た目は変わらなかったが
それまでうるさかったCPUファンが急に静かになった、ということがあった。
だから俺は「たとえ0.01%だろうと軽くするほうが正しい」と確信を持って主張する。
むしろ「やらなくても一緒だ」と主張する人達は実際に試して比較してもいないんだろうと思ってる。
(前述の件とは別件でそういう主張する人達に、実際に計測した結果を示して
 それぞれの環境でも計測してくれるよう頼んだところ急に黙り込んだという事があった)
0914名前は開発中のものです。2011/11/25(金) 22:36:50.46ID:b5Tmlmkb
>>907
用途に因るがテーブルとして持ちたいならconst付ければOK

>>910
1. 終了時に何か特殊な動作をさせたいならそういう関数はあるがDxLib_End()を呼びたいだけなら気にする必要は無い

2. ウインドウを動かすって何?
ウインドウの位置を決める関数なら

// ウインドウモードのウインドウの位置を設定する( 枠も含めた左上座標 )
int SetWindowPosition( int x, int y ) ;

3. 説明省いてるだけで普通に使って良し
0915名前は開発中のものです。2011/11/25(金) 22:41:14.57ID:5Y0bAE1t
(1)このあたり?
SetWindowUserCloseEnableFlag
SetDxLibEndPostQuitMessageFlag
0916名前は開発中のものです。2011/11/25(金) 22:42:19.50ID:b5Tmlmkb
>>913
>だから俺は「たとえ0.01%だろうと軽くするほうが正しい」と確信を持って主張する。
その主張が出来るのはコンパイラ毎の最適化の内容を熟知してアセンブラ叩ける奴だけ
組み込みには正義だろうよ
普通の開発ではソースコードがやたら難読化して要らぬバグを引き起こす事がほとんど
0917名前は開発中のものです。2011/11/25(金) 22:44:21.25ID:8iac4M0d
>>910
>ウィンドウの右上の「×」や「Ctrl+Alt+Del」で強制終了した際に、「DxLib_End();」を実行するにはどうすればいいのでしょうか?
「×」を押すなどして強制終了されるときはProcessMessage()が-1を返すので、そこで分岐すればOKだった気がする。


>ウィンドウモードで起動して、ウィンドウを動かせるようにしたいのですが、どうすればいいですか?
DxLib_Init()を呼ぶ前にChangeWindowMode( TRUE );を追加すればOK

ウィンドウサイズはここを読んでみるといいかもしれません。
ttp://www.play21.jp/board/formz.cgi?action=quote&resno=57924&id=dixq&lognum=177

私の見当違いだったら申し訳ない・・・。
09189172011/11/25(金) 22:45:13.87ID:8iac4M0d
うわああ
リロードすればよかったorz
09199102011/11/26(土) 01:00:02.64ID:OK82FRmW
皆さんレスありがとうございます。910です。
>1. 終了時に何か特殊な動作をさせたいならそういう関数はあるがDxLib_End()を呼びたいだけなら気にする必要は無い
そうでしたか。呼ばずに終了すると、何かとてつもないことになる、とどこかで見た気がしたのですが、妄想だったようです。

>SetWindowUserCloseEnableFlag
>「×」を押すなどして強制終了されるときはProcessMessage()が-1を返すので、そこで分岐すればOKだった気がする。
おぉぉ!勉強になります。

>3. 説明省いてるだけで普通に使って良し
ありがとうございます。リファレンスだけではなく、ヘッダも読むようにします。

(2)についてなのですが、私が作ったプログラムでは、タイトルバーをつかむことも、×を押すことも出来ない、というか、ウィンドウ内にマウスアイコンが入るとマウスアイコン表示が消えてしまいます。
何を言っているかわからないと指摘を受けたので、「DrawTriangle3D」のサンプルに対して、「ChangeWindowMode(TRUE);」を追記して試したところ、普通にウィンドウバーをつかむことができ、移動も×も出来ました。
どうも、おかしなことになっているようです。チェックしてみます。

ここはとても暖かいスレッドですね。また、どうぞよろしくお願いします。

0920名前は開発中のものです。2011/11/26(土) 01:14:20.19ID:hoqn6g74
>>913
そりゃ速度を改善する行為なんだから正しいさw
「やるだけ無駄」って言うやつや、実測値を見て黙るやつなんて、元からPG以外の人間なんじゃないの?

0,1%の改善を狙うよりも *先に* 他のところを高速化したほうが良いんじゃないの?とか、
ソースを難読化、定番から外れるような作り方をするだけのメリットがあるの?とかさ。


ただ、特に悪意があるわけじゃないんだけど、
冷静にツッコミを入れたり、事実のみを言ったりすると、敵対してると思われることはあるよね…。
0921名前は開発中のものです。2011/11/26(土) 01:31:44.66ID:jFrD62uW
CPUファンの回転が変わるレベルの負荷の違いが出るなら、効率に激しい違いがあったはずで
ここで「たとえ0.01%だろうと軽くするほうが正しい」と結論が出るのは変だろw
0922名前は開発中のものです。2011/11/26(土) 01:37:10.00ID:hoqn6g74
>>921
それもそうだw
誰もが見逃してたけど、致命的な部分がその0.1%から見つかることもある、くらいか?
0923名前は開発中のものです。2011/11/26(土) 02:27:57.61ID:DhGX758L
関係ないけどメーカー品のノートでCPU負荷が1桁%なのに常時60度近いのはどこかおかしいと思っていいんだろうか
0924名前は開発中のものです。2011/11/26(土) 10:13:58.10ID:OEZEPVDp
埃詰まってんじゃね
二年くらい使うとよくあること
0925名前は開発中のものです。2011/11/26(土) 23:17:39.27ID:QH0bOgq0
ウィンドウサイズ変更したらそれにバックバッファのサイズを合わせるような挙動させたいんだけど

GetWindowCRect( &Rect ) ;
if( Rect.bottom - Rect.top != WinY | Rect.right - Rect.left != WinX )
{
WinX = Rect.right - Rect.left;
WinY = Rect.bottom - Rect.top;
SetGraphMode(WinX,WinY,32);
}

このコードだとウィンドウサイズが次々変化してしまうんだが
何がおかしいのか分からん
0926名前は開発中のものです。2011/11/26(土) 23:44:57.27ID:2yTQNpig
とりあえず、SetGraphModeはせずに
それぞれの数値表示させてみればわかるんじゃないかな?

知らんからわからんが、GetWindowCRectのright,bottomって「右下の座標」を返すんだよな?
だとしたら640*480なら639,479だったりするんじゃないのかな。
0927名前は開発中のものです。2011/11/26(土) 23:59:51.82ID:OK82FRmW
DXライブラリの関数は、「DxLib」という名前空間に入っているじゃないですか?
「namespace DxLib{}」

でも、「DxLib::」と書かなくても使えますよね?
ヘッダのどの部分がそのようにしているのですか?

と、ここまで書いてみて、ヘッダを眺めていたのですが、ファイルの最後の方に書いてある「using namespace DxLib ;」ですよね?
おぉ、納得。
これは初心者がとっつきやすくするためでしょうか?
確かにc言語しか知らなかった私が、「DxLib::DxLib_Init()」とか書かれたら、盛大に挫折したと思います。
他に何か良い点があれば、せっかくなので教えて欲しいです。
0928名前は開発中のものです。2011/11/27(日) 00:47:50.41ID:hpd7z3rf
>>927
ヘッダファイル読むと、結構世界が変わるんだよねー。
向こうでは、ちょっと厳しい言い方になってしまってすまない。

ご想像通り、DXライブラリは基本的にC++用のライブラリだが、
C言語だけの知識だけでも使えるような設計になっている。これは昔から変わっていないはず。

そういった設計思想に従い、最初は名前空間なんかも用意してなかったと思うんだけど、
作者さん自身も、VisualStudioのクラスビューが使い物にならないと感じていたらしい。
たぶん規模が大きくなると追加しにくくなるし、他にやりたい機能もあるだろうし、ということで後回しになってたんだろうね。

しかし、そこは仕事の早いことで有名なDXライブラリ作者さん。
BBSで名前空間の要望が出された直後、テスト版ライブラリにて実装してしまったという。

で、確か2.25cあたりから、名前空間が設定されるようになった。
using〜 がセットで記述されているのは、ライブラリとしての互換性を維持するためというのもある。
0929名前は開発中のものです。2011/11/27(日) 04:02:26.21ID:ebscUfh5
どうしよう

FFTとかタクティクスオウガみたいな2.5Dのゲームのシステムを
DXLibで作るのってとてつもなく難しそうなんだけど・・・
0930名前は開発中のものです。2011/11/27(日) 04:08:43.98ID:OmS8bxuY
そうでもない
だってFFTのアレは奥行きを考慮せずに3Dで描画してるだけだもの
レス数が900を超えています。1000を超えると表示できなくなるよ。