トップページ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/
0524名前は開発中のものです。2010/01/08(金) 22:16:19ID:5mIUw3Vj
>>523
言いたいことは分かるけど、おまいさんに突っ込む資格は無いだろうw
0525名前は開発中のものです。2010/01/08(金) 22:23:08ID:G0v30nLn
>>520,521,523,524
なんとか出来そうになりました
ありがとうございます
0526名前は開発中のものです。2010/01/08(金) 23:05:49ID:qPTthljo
ワロタ
0527名前は開発中のものです。2010/01/08(金) 23:08:41ID:hMOVMPlC
できそうってまだできてないのw
0528名前は開発中のものです。2010/01/09(土) 10:14:37ID:D2rGgWHr
ストライクウィ○チーズ保管庫画像取得
http://maniax.dlsite.com/work/=/product_id/RJ057302.html
結構使える
0529名前は開発中のものです。2010/01/09(土) 10:31:31ID:KNCSUVMR
>>528
wgetでおk
0530名前は開発中のものです。2010/01/10(日) 04:28:31ID:PNNRGsjZ
ゲームプログラマになる前に覚えておきたい技術を買ったんだけど
難しすぎるだろこれ
DXライブラリのサイトのほうがどれだけわかりやすいか

これは勉強する本じゃなくて、もう理解してる人が確認する
ためのもんか?
0531名前は開発中のものです。2010/01/10(日) 04:43:49ID:ePiCCxYA
少なくとも入門書レベルなら、他人に教えてあげられるくらいの実力は要ると思う。
それでもプロとしてみるなら初心者だろうね。
0532名前は開発中のものです。2010/01/10(日) 04:58:47ID:PNNRGsjZ
何をやってるかはわかるんだけど、自分の力だけではコード書けない
結局サンプル見ながらそれを打ち込むだけ
こんなんじゃ意味ないでしょ?

買うのまだはやかったなー
0533名前は開発中のものです。2010/01/10(日) 05:01:50ID:ePiCCxYA
とりあえず一番最初の倉庫番チャレンジしてみたらどう?
自分は昼から始めて夕方までかかった orz
0534名前は開発中のものです。2010/01/10(日) 07:32:15ID:JParRIfb
>>532
最初は意味わかんなくて、できる人のソースをコピペ。
次に少しずつソースを読解できるようになり改造していく。
そしてやっと自力ですべて書けるようになる…のが
普通の流れだと思うよ。

ひらしょー本は、初心者に構造的に説明しようと誠実に書いて
くれている結果、冗長で読みにくくなった部分はあるとは思うけど
必要なことは抑えてある本だと思うので、まずは本に書いて
ある事が分かるように勉強していけばいいんじゃないかな。

何が分からないかにもよるし、教え方の手腕の問題もある
だろうけど、すぐに理解できちゃうような内容しか書いて
いない本だとお金出して買う価値もないと思うし、
ゲーム関連技術がもし簡単に書けちゃう内容だと、こんなに
解説本も出ないと思う。
0535名前は開発中のものです。2010/01/10(日) 11:04:17ID:Rc1hlYFq
将来使うはずだと無理矢理クラスを使って書いてるけど
今のところ決定的にcに比べて便利だと思うところはないなぁ
確かに変数と関数を一塊にできるのは気持ちがいいのだが・・・
0536名前は開発中のものです。2010/01/10(日) 11:07:58ID:2OywdL5M
listとか両方で実装してみると大分ちがわね?
0537名前は開発中のものです。2010/01/10(日) 11:20:33ID:dmK/QlFI
>>532
Chapter13(I部 2次元のゲーム)までは頑張れ。

>>535
継承、カプセル化、ポリモーフィズム、演算子のオーバーロード、STLあたりを理解できるとメリットを感じられるようになるよ。
0538名前は開発中のものです。2010/01/10(日) 11:44:54ID:QNWx2gsU
最初はコピペ、それを改造、ってのはごく普通の流れだろうな。

俺も昔は雑誌に載ってたプログラムをぽちぽち打ち込んでたもんよ。
0539名前は開発中のものです。2010/01/10(日) 11:46:10ID:wtJzH8/F
俺も昔はラジオを録音してたもんよ
0540名前は開発中のものです。2010/01/10(日) 13:31:00ID:pKLMp+mv
今は3Dゲーならudkとかunityとか、2D紙芝居なら吉里吉里とかnスクとかがあるから、
趣味でゲーム作る程度ならプログラムまで手を出す必要はないよ。
0541名前は開発中のものです。2010/01/10(日) 15:45:18ID:sQQs0/m1
俺の場合は最初はソース呼んで理解するところから入ったがな
コピペがあまり意味あるとは思えん
そっから自己流のアレンジで打っていったがな
まあある程度コピペっちゃあコピペだけどな
まあコピペは動作確認には必要かも知れんがな
あとポリリズムとかは使ってったけどカプセル化は結局面倒になって公開しちゃえーて戻ったけどな
結局グローバル変数使いまくりに戻ったし、まあ使いまくりって程でもないが
カプセル化やろうと思えばできるけどだってアクセサ通すと速度落ちそうな気すんだもん、それが気になってな
小規模の個人レベルであまりカプセル化のメリット感じられんのだが
ポリポリなんちゃらは俺もlistで重宝してるな
まあポリポリ使うより天麩羅使う方がすっきり書ける場合もあるしなあ
0542名前は開発中のものです。2010/01/10(日) 17:31:32ID:/Tzv4S+1
そりゃあ、ポリリズムなんて使ってたらな。
0543名前は開発中のものです。2010/01/10(日) 17:36:55ID:ohvCsHNW
Javaなんかと違ってC++はクラス作るのが面倒なんだよな
場合によってはかえってミスしやすくなったり保守性が下がったりする
0544名前は開発中のものです。2010/01/10(日) 17:45:33ID:RHOGN5ub
質問なんですが、画像でいうLoadGraphのように文字列を先にhoge[数字]読み込んでおいて、
DrawString(x,y,hoge[数字],Cr) ;のように呼び出して使う…ような感じになる方法ってありませんか?
あと、文中に改行も含めたいのですが・・・。
できれば1行ずつ表示されると嬉しいです。
0545名前は開発中のものです。2010/01/10(日) 18:00:03ID:wtJzH8/F
外部ファイルを読み込みたいのか?
それなら龍神録にサンプルが載ってる。csv用だけどtxtにも転用できるはず
0546名前は開発中のものです。2010/01/10(日) 18:38:42ID:VQ1HZqsF
やりたい事がはっきりしてるんだから、自分で作ればいいだけでは。
0547名前は開発中のものです。2010/01/10(日) 18:52:06ID:RHOGN5ub
内部の別のクラスでTEXTの内容を変数に格納しておいて、
それをDrawString(x,y,hoge[数字],Cr) ;で呼び出したいんです…
char hoge[1]="AAA";
DrawString(x,y,hoge[1],Cr) ;
みたいな形です。
0548名前は開発中のものです。2010/01/10(日) 18:58:51ID:2OywdL5M
普通に読み込んで、文字列の位置を計算をして出力
0549名前は開発中のものです。2010/01/10(日) 19:01:30ID:TNXhxGf1
何を言っているのかわからないし
何をしたいのかもわからない
0550名前は開発中のものです。2010/01/10(日) 19:16:21ID:RHOGN5ub
画面に複数行の文字を表示したいんです。
通常はDrawString( 250 , 240 - 32 , "Hello C World!" , Cr );って書くと
Hello C World!
と表示されると思うんですけど、このHello C World!の部分を、
改行を含む、変数を入れたいんです。

0551名前は開発中のものです。2010/01/10(日) 19:20:29ID:3/rctmpl
#include <string>
using namespace std;

string str[10];
str[0] = "AAA";

DrawString(x,y,str[0].c_str(),Cr);

文中に改行を含めたいってのはたぶん\nとか文中に入れたいんだと思うから
C++ splitとかでググってなんかフォントの縦幅とかなんたらやればいいんじゃないかな…
0552名前は開発中のものです。2010/01/10(日) 19:42:52ID:TNXhxGf1
何言ってるのこいつ?
0553名前は開発中のものです。2010/01/10(日) 19:43:31ID:z71TR0/5
sprintf(str, "Hello C world!\n");
DrawString(x, y, str, Cr);
0554名前は開発中のものです。2010/01/10(日) 19:59:40ID:2OywdL5M
for(i = 0; i < numof_lines; ++i) DrawString(x, y + i * font_size, str[i], color);
0555名前は開発中のものです。2010/01/10(日) 21:11:56ID:dmK/QlFI
>>544
そういう関数は用意されてないので自作するしかないよ。
改行文字を検索して文字列を一行ずつに分割、forループでY座標をずらして描画すればいいんじゃない?
0556名前は開発中のものです。2010/01/10(日) 21:40:30ID:MFEe7NV6
DrawFormatStringの関数の
デフォルトのフォントの大きさってどれくらいなの?
書いてないから分かんないよ
0557名前は開発中のものです。2010/01/10(日) 21:57:23ID:/Tzv4S+1
作者が悪いみたいな言い方で気に入らねえなあ。
コードみりゃ書いてあんだろ、16だ。
0558名前は開発中のものです。2010/01/10(日) 23:42:22ID:ePiCCxYA
話の流れとは全然関係ないんだが、画面サイズを2パターン用意したら、なんかすげぇ面倒なことに(笑)
「なんとなく」ってだけで実装するもんじゃねーなあ。

単純に拡縮するだけなら簡単なんだろうけども。

0559名前は開発中のものです。2010/01/10(日) 23:46:51ID:2OywdL5M
ルートレイヤ(固定サイズ)に描画→スクリーンに拡大描画でいいじゃん
0560名前は開発中のものです。2010/01/10(日) 23:52:21ID:PVCd/Cxa
16 : 9 って今後は用意すべき?
05615582010/01/11(月) 01:11:32ID:HJnYHrsQ
>>559
それは>>558の3行目で否定してる「単なる拡縮」だw

もともと800x600でゲームを作ってたんだけどさ、
とある理由により、小さいウィンドウのバージョンを作らなきゃならなくなったんだ。

でもそのまま縮小すると、特にドット絵なんかは見てられなくなるし、
元が800x600用(あくまで縮小版はオマケ)なので、縮小版を基準にして800x600用に拡大するのも納得いかず。

そんなわけで、それぞれの画像の大きさを変えずに、ゲームの中身を変えようと思ったのが色々と失敗だった(笑)


>>560
主流が16:9になるか16:10になるかは別として、今後は4:3のモニタは減っていくだろうからなあ。
とはいえ現状ではモニタ側で4:3に対応(レターボックスや引き延ばし)してくれたりするし、作りやすい方でいいんじゃない?
0562名前は開発中のものです。2010/01/11(月) 01:27:26ID:1pzIf3AP
今すぐ用意すべき
0563名前は開発中のものです。2010/01/11(月) 01:44:29ID:Rz8RXzhw
ドット絵が汚くなるってのは補完してるからじゃなくて?ニアレストネイバーでやれば綺麗に縮小されないかな
0564名前は開発中のものです。2010/01/11(月) 02:18:06ID:HJnYHrsQ
>>563
ドット絵は無理じゃない?
あとクリティカルな部分はともかく、1つの画像ファイルでなんとかしたいよね。
0565名前は開発中のものです。2010/01/11(月) 02:25:08ID:b9O3GovE
ペイントでキャラの画像を作る。保存をするとふちの部分の色が変わるのは何でだろう(´・ω・`)
0566名前は開発中のものです。2010/01/11(月) 03:05:07ID:Rz8RXzhw
ペイントの拡大縮小は補完処理が働くから確実にドット絵が汚くなるよね
0567名前は開発中のものです。2010/01/11(月) 03:06:28ID:/BVVeYOc
565は拡大縮小してるとは言ってないけどね。
0568名前は開発中のものです。2010/01/11(月) 08:45:34ID:50WrHthA
>>565
色が劣化する形式で保存してるんじゃないの?
0569名前は開発中のものです。2010/01/11(月) 09:45:29ID:MF6sCU3I
文字の回転ってどうやってやるんですか?
△の記号を90度回転させたものがほしいんだけど・・・・
0570名前は開発中のものです。2010/01/11(月) 09:52:18ID:bJEynoIQ
>>565
画像をRGBにすれば解決する サイズは大きくなるがな
0571名前は開発中のものです。2010/01/11(月) 10:18:00ID:32xuNCiI
文字入れられるだろ
それ回転すればいいだけ
0572名前は開発中のものです。2010/01/11(月) 10:18:14ID:8N572MW3
>>569
画像にでも描いて回転描画させろ
0573名前は開発中のものです。2010/01/11(月) 10:22:10ID:bJEynoIQ
>>569
DrawVString
0574名前は開発中のものです。2010/01/11(月) 10:27:58ID:MF6sCU3I
>>572
それはやれると思ってたけど
変だったんで。
結局、文字を回転させる方法はないのか?
よくゲームである
△(90度回転)6 △(90度回転)な感じにしたい。
0575名前は開発中のものです。2010/01/11(月) 10:32:32ID:dSgt7dTb
>>574
方法はいくらでもある。
そして、いくらでもやってる人がいる。
以上
0576名前は開発中のものです。2010/01/11(月) 11:01:12ID:MF6sCU3I
>>575
でもやり方は知らないんでしょ?
知ってる人お願いしますね。
0577名前は開発中のものです。2010/01/11(月) 11:40:02ID:yFPTqlzr
>>561
そうか、ワイドもあったか
ゲームやるならドットバイドットでやりたいよね
0578名前は開発中のものです。2010/01/11(月) 11:40:28ID:bJEynoIQ
で、>>573は試したのかね
0579名前は開発中のものです。2010/01/11(月) 11:43:03ID:JhPE/M8b
>>569
興味があったから探してみた。初心者なんで見当違いだったらスマソ
ttp://bbs.wankuma.com/index.cgi?mode=al2&namber=42794&KLOG=73
ttp://msdn.microsoft.com/ja-jp/library/cc428368.aspx
05805652010/01/11(月) 12:24:49ID:b9O3GovE
色々試したらできました
ありがとうでした。
0581名前は開発中のものです。2010/01/11(月) 15:35:07ID:C8nZ8yZZ
 |> <| こういうことだろ?
0582名前は開発中のものです。2010/01/11(月) 15:43:43ID:32xuNCiI
<| |> だと思ってた
0583名前は開発中のものです。2010/01/11(月) 16:11:51ID:i9YgsXIH
  (゚д゚ )
 <| y |>
0584名前は開発中のものです。2010/01/11(月) 16:25:44ID:MF6sCU3I
>>582
が正解
0585名前は開発中のものです。2010/01/12(火) 00:34:41ID:Lz7AOqT1
>>581>>582の違いはなんだ?
abをbaと書く程度の差じゃないか
0586名前は開発中のものです。2010/01/12(火) 19:18:12ID:fpWsGGI2
オブジェクトのy座標が-0.2のときそれを描画ルーチンにわたすと
0の位置に描かれそうな気がするんですけど
(つまり-0.9〜0.9が同じ位置に表示されそう)
DXLibにそのままわたすとどうなりますか?

あと固定小数点のたとえば int y100;の1/100が1ドットとするとき
 int y_for_draw;
 if (y100 < 0)
 {
  y_for_draw = (y-99) / 100;
 }
 else
 {
  y_for_draw = y / 100;
 }
でfloorになる?これは一般的にどう書かれる?
0587名前は開発中のものです。2010/01/12(火) 19:32:24ID:UxS4I4g/
言っている意味がよく分からない。もっと要点絞ってくれ
0588名前は開発中のものです。2010/01/12(火) 19:52:43ID:vZoY7Utz
>>586
>オブジェクトのy座標が-0.2のときそれを描画ルーチンにわたすと
>0の位置に描かれそうな気がするんですけど
>(つまり-0.9〜0.9が同じ位置に表示されそう)
>DXLibにそのままわたすとどうなりますか?
C言語では小数から整数への変換は小数切捨てになる。
「型キャスト」で調べてみて。

>でfloorになる?これは一般的にどう書かれる?
ならない。もっと言えばコンパイルすら通らない。
「y_for_draw = (y-99) / 100;」は小数点以下を切り上げしていないので。
一般的かどうかは分からないけど、固定小数点数を浮動小数点数にしてmath.hのfloor関数を使った方が簡単だと思う。
0589名前は開発中のものです。2010/01/12(火) 19:57:29ID:fpWsGGI2
>>587
質問は2つです

1つめはDXLibでたとえば描画ルーチンのXY座標に(-0.3, -0.9)をわたしたときと(0.1, 0.9)をわたした時が同じ場所になってしまうのでは?

2つめは
たとえば、キャラクターの座標の内部的な整数の変数(たとえばint x_naibu, y_naibu;(前質問ではint y100;))が
100移動すると「1ドット」動いたことになるとすると、
描画ルーチンには基本 (x_naibu / 100) を x座標としてわたすことになりますが、
もし x_naibu が -99 でも 99 でも (x_naibu / 100)はゼロになってしまいます。
これを解決する一般的なやりかたが知りたいという話です。

書き込みに間違いが
 y_for_draw = (y-99) / 100; は y_for_draw = (y100-99) / 100;
下は  y_for_draw = y100 / 100;
0590名前は開発中のものです。2010/01/12(火) 19:57:59ID:MSorSp1h
>>535
最初はそんな感じやね
C++実用レベルは理解しなきゃいけないこと多くて投げ出しがち
でも使い続けることをおすすめする
何よりまず慣れることが大事、慣れれば勝手にクラスありきになる
次第に理解が深まってゲーム製作には大いに役立つ
0591名前は開発中のものです。2010/01/12(火) 20:04:11ID:VTukhXVT
C++はタブーとイディオムがある程度わかってくればいいんだがそこまでがしんどい
0592名前は開発中のものです。2010/01/12(火) 20:11:01ID:fpWsGGI2
>C言語では小数から整数への変換は小数切捨てになる。
ありがとう
>「型キャスト」で調べてみて。
型のサイズの順位とか知らないことがたくさんありました。

>>でfloorになる?これは一般的にどう書かれる?
>ならない。もっと言えばコンパイルすら通らない。
ちょっと間違えました。
>>589のようにしてコンパイルはとおってますが、何か穴があるかもと心配でした。

ちなみにdoubleを使ってたらたとえば加算する数値をきっちり1.0にすることができないことによる不具合を味わったことがあり、
固定小数点なら100を加えるときっちり1ドットだけ動くのが確定している利点があると思うんです。
0593名前は開発中のものです。2010/01/12(火) 20:36:56ID:vZoY7Utz
>>592
誤:y_for_draw = (y100-99) / 100;
正:y_for_draw = (y100+99) / 100;
やりたいのはこういうことじゃない?

固定小数点数にもデメリットはあるし、個人的には浮動小数点数を使った方が良いと思うんだけどなあ・・・
・表現として分かりづらい(ソースコードが見づらい)
・扱える数値の範囲が狭い
・浮動小数点数を扱う標準関数やその他のライブラリが使用できない
0594名前は開発中のものです。2010/01/12(火) 20:50:28ID:efhBp1Rb
ふと思ったんだけど -0.5 の小数点以下を切り捨てってのは
普通は 0 になると考えるのか -1 と考えるのか。
0595名前は開発中のものです。2010/01/12(火) 21:01:29ID:fpWsGGI2
>>593
>誤:y_for_draw = (y100-99) / 100;
>正:y_for_draw = (y100+99) / 100;
いえ、修正後を再掲すると
 if (y100 < 0)
 {
  y_for_draw = (y100-99) / 100;
 }
 else
 {
  y_for_draw = y100 / 100;
 }
で、"y100"が 0〜99 のときは描画ルーチンはゼロの座標をわたしたくて、
y100が -100〜-1 のときは「-1」の座標、-101のときは「-2」にしたいので
それにはこれで合ってると思います。

ちなみに固定小数点は今回だけのミニゲームで試しにやってみようって感じです。
次からはまた浮動小数点使うようになりそうです。
>・表現として分かりづらい(ソースコードが見づらい)
「y100」って感じの変数名で意外と解決されそうだったり^^;
0596名前は開発中のものです。2010/01/12(火) 23:19:04ID:q3clJG+f
俺も全く同じことしてたわw
変数名の付け方も
マイナスは考慮してなかったけど
y100は表現的にある程度解決できてもそれ以外、それに関わる他の変数とか範囲とかがややこしくなってくるんだよねえ

>・浮動小数点数を扱う標準関数やその他のライブラリが使用できない
キャストすればいいんじゃないの?
0597名前は開発中のものです。2010/01/13(水) 00:33:55ID:c62gE9Ki
>>595
ごめん、勘違いしてたみたい。
floor関数の動作なら>>595で大丈夫そう。

>>596
>キャストすればいいんじゃないの?
誤差を無くすために固定小数点数を使っているのでそれをやると駄目だと思うんだけど・・・

「y100」という変数名が分かり易いというのはかなり疑問を感じるな。
最初に見たとき「y+100」か「y-100」の書き間違いかと思ったし。
あと小数第2位までしか扱えないのはかなり精度が低いと思う。
アクション性の高いゲームだと誤差の影響が出そう。
0598名前は開発中のものです。2010/01/13(水) 00:47:43ID:ikjcXzx3
そもそも固定小数点使ってるのは誤差を無くす為だったのか
まあ y100 というのは苦肉の策でそのまま yを使うよりはまだ分かり易いだろうということと、
そら他人からみたらあれっとは思っても自分で使う分には若干間違い減らす可能性が上がるかなといった程度だろ
あくまで少数第2位までを使うのは表示上の問題だけじゃないの?
表示する場合は整数しか扱えないが内部的には小数で記憶しておきたいという
そもそも別に少数第2位までしか扱えないわけではないと思うがなあ
ただ座標の値を少数第2位まで持ちたいってだけで
計算まで少数第2位までしか使えないってわけじゃないでしょ
0599名前は開発中のものです。2010/01/13(水) 11:01:12ID:5DwaMjit
log.txtを勝手に生成されるんですけど
生成しないようにするには可能?
0600名前は開発中のものです。2010/01/13(水) 11:13:13ID:c62gE9Ki
>>599
SetOutApplicationLogValidFlag(FALSE);
0601名前は開発中のものです。2010/01/13(水) 11:54:25ID:e0BJb6Ws
2.25bなんだが、
vista で CheckHitKey( KEY_INPUT_RSHIFT );
がうまく動作しない。
XPだと動く。RSHIFTだけ動かないんだよな。
なんでだろう?
0602名前は開発中のものです。2010/01/13(水) 12:44:41ID:c62gE9Ki
>>601
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1352
0603名前は開発中のものです。2010/01/13(水) 13:01:04ID:b/PQw5gR
質問です。
画像などをロードするとっきって、パスをいつもちまちま指定しないといけないのでしょうか?

例えば、画像をロードする場合、
Load("Data\\img\\hoge.png");
みたいな感じではなく、単に
Load("hoge.png");
のようにロードできたら楽なのになぁと思った次第です。
ファイルが増えるに従って、管理がしやすくするためにパスも長くなっていきますし……。

もちろん自分でパスをセットしてくれる関数を組むのもアリなのですが、
VC#みたいに、リソース追加&ファイル名指定でさっくり使えたら楽だなと思ったので……。

リソースからの読み込みができる関数はみつけたのですが、
IDでの指定なので、どのファイルがどのIDなのか覚えるのが面倒となってしまい使いにくいorz
0604名前は開発中のものです。2010/01/13(水) 13:22:01ID:qeehEc52
>>603
自動的にDataフォルダを検索してhoge.pngを探してロードするってこと?
win32APIの関数使えば出来なくも無いと思うけど多分労力に見合うほどのメリットはないと思うよ
何回もロードするもんでもないし
0605名前は開発中のものです。2010/01/13(水) 13:26:47ID:HfkhU9/3
>>601-602

俺は601じゃないけど、2.25bをまだ使ってる。
で、601の様な現象知らなかったわけだが、602の解決してる時点で9月だよな。
俺が持ってる2.25bはタイムスタンプが5月だし、公式でDLできる2.25bも5月のものだ。

602の示してるレスで公開されてるtestバージョンはバージョンアップされるたびに上書きされてるから、
(今落として確認したが)つい先日のものになってるな。

2.25bバージョンの最新って管理人さん持ってるかなぁ……。
0606名前は開発中のものです。2010/01/13(水) 13:35:20ID:c62gE9Ki
>>603
>IDでの指定なので、どのファイルがどのIDなのか覚えるのが面倒となってしまい使いにくいorz
IDをファイル名と同じにするとか分かり易い名前に変えてしまえばいいだけでは?
0607名前は開発中のものです。2010/01/13(水) 13:46:41ID:H0QsxNXz
最近バージョンだと何か問題でもあるのか?
0608名前は開発中のものです。2010/01/13(水) 15:49:43ID:Yyh3OrXE
DXライブラリが最新バージョンだと動画をLoadGraphで読んでPlayMovietoGraph使って表示したとき透明色が適用されない
(といっても透明色にするにはエンコード方式は古いMicrosoft Video 1くらいしか使えない諸刃の剣)
0609名前は開発中のものです。2010/01/13(水) 16:07:06ID:HfkhU9/3
俺が過去に作ったゲームを最新のDXライブラリでリコンパイルすると透過色が無視されるてるなー。
0610名前は開発中のものです。2010/01/13(水) 16:39:46ID:fVXUl//w
孔明の罠
0611名前は開発中のものです。2010/01/13(水) 17:47:10ID:b/PQw5gR
>>604
その通りです。
ロードする際に使った文字列を、ハンドル代わりにつかっているので、
メリットとしては、指定をいちいちしなくてすむので楽になります。

たとえば、
Draw("hoge.png");
とかで、色々操作できるような設計にしています。

Win32APIの関数でできるのですか。
直接MSDNから探し出すスキルがない残念スキルですが、調べてみようと思います。

>>606
おおなるほど、これは盲点でした……。
0612名前は開発中のものです。2010/01/13(水) 19:35:30ID:KRarygD9
>>611
良い方法じゃないかもしれないけど、マクロと
stringかsprintf系の関数使って文字列つなげば
一応Load()には、ファイル名渡すだけでもすむよ。
//--------------------------------------
#define HOGE_PATH "..\\iData\\img\\"

void Hoge::LoadData(const char* data_name)
{
char path[255];
sprintf(path, HOGE_PATH "%s.png", data_name);
Load(path);
}
//--------------------------------------
みたいな感じで(エラー処理とかは省略)。
ちなみにHogeのコンストラクタ内とかで、APIのFindFirstFile()
とか使って、フォルダ内の任意の形式のデータ名を列挙して
読み込むようにすれば、Hogeの生成時にpngの形式だけ自動で
読み込むとかも可能。

ただスクリーンショット取れるゲームとかでない限り、画像
データの名前や数は変わらないはずだから、ハードコーティング
するよりパス含んだデータ名を列挙したテキストとかを作って
おくのがいい気もする(もちろんこれも手動では作らない)。
そうしておけば、画像の数とかに変更あってもプログラムの方は
何もいじる必要ないし。
0613名前は開発中のものです。2010/01/13(水) 20:53:47ID:fVXUl//w
なんというレベル・・・
0614名前は開発中のものです。2010/01/13(水) 22:45:52ID:K/6CPc2l
俺はstd::mapを使ってるな。値を画像ハンドルにしてる。
キーを文字列にすれば分かりやすいし。
0615名前は開発中のものです。2010/01/14(木) 02:11:03ID:842AZX10
同じファイル名が来ることはないのか
0616名前は開発中のものです。2010/01/14(木) 02:36:14ID:Y9GNPZz3
画像ファイル名一覧(分割するなら分割数なども)を
外部のテキストファイルに置いて、それを読み込む手法は便利ちゃ便利だし美しいな。

ツクール系や画像ビューワなどのアプリを作りたいというなら別にしても、
結局、その画像を使うにはプログラムの修正が必要だったりするわけで、
そこまで外部化するメリットが無い気がする。

それならファイル名をプログラム側で固定してしまうというのも十分アリじゃないかな。
「趣味で!」「勉強のため」というなら好きにやるべきだし、そういうこだわりは重要だと思うけれど。


>>615
拡張子無しとか、拡張子を固定するとか、
あとは最初はbmpで次はjpg…みたいに読み込む優先度を決めておくとか。

06176162010/01/14(木) 02:42:40ID:Y9GNPZz3
送信してから思った。

最近は個人レベルのゲームプログラミングでも、
ゲームの内容を外部のスクリプトファイルで定義するスタイルが増えてきてるみたい。

全部をスクリプト化しろとは言わないけど、
例えばメニュー画面の挙動とか、何らかのキャラクターのアニメーションの仕方とか、
そういう部分的にでも外部に出しちゃう作りにすれば活かせるかもね。

まあ、非常に手間ですが。
0618名前は開発中のものです。2010/01/14(木) 10:10:33ID:DPt8d+Sq
外部ファイルにパスや必要な情報書いて読み込み、
それをクラスに格納して処理、コンテナに追加して保持、分割も自動でやってる
ハンドルはアドレスをクラスに用意したポインタのメンバ変数に格納して
再ロードしても画像ハンドルへのアクセス先は変わらないようにしてる
SetRestoreGraphCallbackに↑で書いたコンテナから再ロードする関数登録

ハンドルの情報が消えてしまうときって、それまでに画像読み込んで取得したハンドル全て消えるよね?
何が消えるかよくわからなかったから
描画関係全て再設定させてるんだけど、皆さんは再ロード処理どのようにしてますか?
0619名前は開発中のものです。2010/01/14(木) 11:35:51ID:f9B4N6q6
>>618
何を言っているのかわからない
0620名前は開発中のものです。2010/01/14(木) 11:42:32ID:Wuk1wnH6
>>618
>ハンドルの情報が消えてしまうときって、それまでに画像読み込んで取得したハンドル全て消えるよね?
まずこれがよく分からない・・・
リファレンスに全部書いてあると思うけど。
0621名前は開発中のものです。2010/01/14(木) 12:57:05ID:GEhjs3wb
ドラクエとかマップとかキャラ動かすプログラムは1個つくったら
流用が基本だよな あとはちょくちょく改造

現にSFCのドラクエ3ってSFCドラクエ6の流(ry
06226182010/01/14(木) 12:59:53ID:DPt8d+Sq
ごめん、書き方悪かった
何が消えるってか何が初期化されるのか、
ハンドル以外にもあったようなのでそれもききたかった
(DXライブラリのスレだったかな?カメラがどうとか)
ってハンドルは全て消えるよね・・・

で、リファレンスに全部書いてあるのか
見落としてたっぽい、すまねえ見てくる
0623名前は開発中のものです。2010/01/14(木) 13:11:27ID:GEhjs3wb
ffshowの取り込み機能使うと紙芝居のような連番のjpgが作れる
(例:0.jpg〜1000.jpg (画像の形式:jpgにフレーム番号の桁数は0に設定))
(画像の形式はpngやbmpとかできるけどファイル容量が馬鹿でかくなる)
プログラムテストで使う大量の連番JPG1個ずつくるのめんどせーって人はおすすめ
■ このスレッドは過去ログ倉庫に格納されています