DXライブラリ 総合スレッド その17
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2013/11/07(木) 12:40:45.76ID:qXzfRGmE「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
【公式】
http://homepage2.nifty.com/natupaji/DxLib/
【関連スレ】
C/C++ゲーム製作総合スレッド Part4
http://toro.2ch.net/test/read.cgi/gamedev/1376262450/
ゲームプログラムなら俺に聞け29(プログラム技術板)
http://toro.2ch.net/test/read.cgi/tech/1381578085/
●DXライブラリではなくDirectXの質問ならこっちへ
【C++】DirectX初心者質問スレ【C】(プログラム技術板)
http://toro.2ch.net/test/read.cgi/tech/1370015791/
0453名前は開発中のものです。
2013/12/17(火) 08:27:14.77ID:l+XOoEU80454名前は開発中のものです。
2013/12/21(土) 23:08:36.29ID:Yi4v4ieN圧縮不要なくらい色数が少ない画像ならBMPを使う方が断然良いってことでしょうか?
ちなみに16色以下の4ビットBMPで保存した場合で比較してみたところ
画像によってはPNGよりもファイルサイズが小さくなることもありました
0455名前は開発中のものです。
2013/12/21(土) 23:12:07.18ID:Z2trQXsX0456名前は開発中のものです。
2013/12/21(土) 23:22:11.86ID:JXrxEU1J0457名前は開発中のものです。
2013/12/21(土) 23:38:55.19ID:Yi4v4ieNキチッと色を調整して16色以下に抑えれば
bmpでもpngの時とさほどファイルサイズは変わらないようです
ということは配布する時の「ファイルサイズを小さくできる」といったpngのメリットは消えて
ゲーム実行時の「展開処理を必要とする分だけ処理が遅くなる」というデメリットだけになるのでは?ってことです
実のところどうなんでしょうか?
0458名前は開発中のものです。
2013/12/21(土) 23:52:38.60ID:JXrxEU1Jそんなに容量きりつめなくてはいけないほど大量の画像使ってるの?
いやぁ俺の場合音楽データばっか大きくて、画像データなんてそれに比べれば微々たるものだからさ……。
0459名前は開発中のものです。
2013/12/22(日) 00:36:46.08ID:VxmegpWF.jpgもありますが、画質劣化するので使いません。透明もありません。
DirectXでは、.DDSが一番良い。 画質劣化、透明、速度に関して
0460名前は開発中のものです。
2013/12/22(日) 11:48:10.15ID:aPRmSWB9・ファイルフォーマットってのはHDDやなんかのストレージに収めておくときのファイル形式で、
展開が云々ってのは、それをロードする時の話。
・ロードする処理と、描画する処理はプログラム的に全く別物。
この辺の入門レベルの切り分けを踏まえた上で考え直して。
0461名前は開発中のものです。
2013/12/22(日) 11:51:24.34ID:aPRmSWB9基本pngでいい。bmpでも構わない時だけbmpでも、いい。
20数年前の16bitマシンでも使ってるなら悩んだ方がいいが。
0462名前は開発中のものです。
2013/12/22(日) 22:11:32.46ID:CXw2CLht0463名前は開発中のものです。
2013/12/22(日) 22:16:20.61ID:h1ulpp9F2ビットに減らして4色にしたとかいうならVRAMの節約にもなるだろうけど……
0464名前は開発中のものです。
2013/12/22(日) 22:21:00.64ID:bhg3zs8jシェーダー内で使うならパレット形式でも使えるだろうけど処理が無駄すぎる
配布サイズなら7zでbmpのが圧縮される可能性あるけど
展開後のサイズのが気になるからpngのほうが良いかと
0465名前は開発中のものです。
2013/12/23(月) 02:10:02.27ID:UXb3wWt0それはpngやbmpみたいなファイル形式の話じゃなくて、こっち↓の話。
http://msdn.microsoft.com/ja-jp/library/ee415202(v=vs.85).aspx
ごっちゃにしちゃいかんよ
0466名前は開発中のものです。
2013/12/24(火) 17:47:14.48ID:Akz3xHfB0467名前は開発中のものです。
2013/12/25(水) 10:48:52.64ID:CUbWJvC80468名前は開発中のものです。
2013/12/25(水) 10:54:53.86ID:itMCNQc1これでFOVをセットできます。視野角です。
参考までに、35mmカメラ換算として
14mm 114度 魚眼
28mm 75度 広角
50mm 47度 標準レンズ
300mm 8度 望遠
0469名前は開発中のものです。
2013/12/25(水) 11:18:20.73ID:Z3xFHWMlペイントソフトで出来るような変化をさせる関数GraphFilterがあるから
レンズ越しの変形っぽくする関数があっても不思議じゃないなーと思って
0470名前は開発中のものです。
2013/12/26(木) 00:22:20.27ID:xyR7W7tqDXライブラリでゲーム作るときこれらのファイルは不要ですか?
かっこつけたいから作ってみたいっていう単純な理由ですけど
あえて作る必要ないですか?exeファイルとjpgファイルだけじゃ
簡素だなーって思われるのが嫌なんですよ。
0471名前は開発中のものです。
2013/12/26(木) 00:31:48.63ID:xyR7W7tq文字を出力し、hellowolrdと打ち間違えたら「2文字間違えました!」って
指摘するゲームです。このゲームでconfファイルを作りたいです。
技術者のみなさん知恵を貸してください。
0472名前は開発中のものです。
2013/12/26(木) 00:32:21.87ID:PC8hDA8aだから変更されていい内容なら使えばいい
0473名前は開発中のものです。
2013/12/26(木) 00:33:09.14ID:PC8hDA8a技術もないのに小手先でカッコつけようとすんな
0474名前は開発中のものです。
2013/12/26(木) 00:42:30.01ID:xyR7W7tqフォルダにconfという拡張子があれば俺はそれで構わない、何も望まない
0475名前は開発中のものです。
2013/12/26(木) 00:43:38.47ID:PC8hDA8a0476名前は開発中のものです。
2013/12/26(木) 00:46:20.79ID:xyR7W7tqそのconfファイルってexeファイルとどう関連してるんですか?
0477名前は開発中のものです。
2013/12/26(木) 00:50:03.01ID:PC8hDA8a0478名前は開発中のものです。
2013/12/26(木) 00:50:32.38ID:M1U0vCCJ0479名前は開発中のものです。
2013/12/26(木) 00:56:51.32ID:xyR7W7tq無くても大丈夫なのは何故ですか?
0480名前は開発中のものです。
2013/12/26(木) 00:58:31.60ID:PC8hDA8aDXライブラリに関した質問じゃないのはわかるんで、C++の質問スレにでも行って来い
0481名前は開発中のものです。
2013/12/26(木) 08:43:17.90ID:o1nZNR82DXライブラリ関係なく、普通にC/C++でファイルReadして好きに利用する処理書いたらいいだけなのに、何を質問する事があるの?
ちなみにiniに関しては知ってて当然レベルだけど、win32のレイヤーにAPIあるから利用してもいい。
http://wisdom.sakura.ne.jp/system/winapi/win32/win156.html
0482名前は開発中のものです。
2013/12/26(木) 08:43:51.75ID:w6BxfUND0483名前は開発中のものです。
2013/12/26(木) 08:54:27.11ID:o1nZNR82ただDXライブラリ利用者の中には、それ以前の当たり前レベル、前提レベルの知識や考え方なんかを
色々とすっ飛ばして利用しようとしてるちぐはぐな初心者を時々見かけるので、なんだかなぁと思った。
あとファイル操作関連のド基礎も含めてこれも貼っとく。
http://www.cppll.jp/cppreference/
0484名前は開発中のものです。
2013/12/26(木) 09:23:53.15ID:ee84aAfK0485名前は開発中のものです。
2013/12/26(木) 10:01:45.62ID:o1nZNR82せめてテストコード継続して書くとか、なんか簡単なツール作るとかして具体的に理解深めた後で色々話して欲しいと思った。
どうせゲームなりなんなり作る段階では当たり前に使う物だし。キリが無いし。
0486名前は開発中のものです。
2013/12/26(木) 12:22:23.48ID:hUAF7K9V後inifファイルとconfファイルは同じ?
この二つだけ答えて欲しい。
答えてくれたらゲーム制作に戻ります。
0487名前は開発中のものです。
2013/12/26(木) 12:28:10.04ID:8itBnJa5ググっても出ないし、みんなどうやってるの?
0488名前は開発中のものです。
2013/12/26(木) 12:37:27.45ID:6Dv7eyM4そのファイルの意味する所が不明ですけど、
一般的に、設定ファイルや記録ファイルとしてテキストファイルを使う。
例えば、画面の大きさ設定などをファイルに記録しておき
次に起動した時にそれを使うように。
また、ゲームの最高得点を記録として残して一覧表として
表示されるように、ファイルに記録して残したりする。
このファイルの操作は、C言語のファイルの取扱で解説してある
ので、C言語の教科書を読んでみてください。
0489名前は開発中のものです。
2013/12/26(木) 14:47:36.42ID:hUAF7K9Vそれだけが知りたいです。
0490名前は開発中のものです。
2013/12/26(木) 15:23:27.36ID:YzzOhDal0491名前は開発中のものです。
2013/12/26(木) 16:24:18.30ID:ZMschiXc0492名前は開発中のものです。
2013/12/26(木) 16:40:43.47ID:o1nZNR82お前が決めたんならそうだよ。
つまり製品によって違うってだけ。好きにしろよ。マジで。
0493名前は開発中のものです。
2013/12/26(木) 17:54:42.12ID:NW8oapoeバカだろお前
0494名前は開発中のものです。
2013/12/26(木) 18:11:59.76ID:2u/e5+2P0495名前は開発中のものです。
2013/12/26(木) 19:25:10.38ID:w6BxfUND何故この板のこのスレで質問しようと思った?
0496名前は開発中のものです。
2013/12/26(木) 20:28:26.67ID:lVR90Y110497名前は開発中のものです。
2013/12/26(木) 23:05:28.06ID:HxPOzWOfそれとも外部ファイルから読み込む?
その場合はどんな拡張子にする?
0498名前は開発中のものです。
2013/12/26(木) 23:22:07.48ID:PC8hDA8a0499名前は開発中のものです。
2013/12/26(木) 23:42:20.52ID:fCfxjEwLキャラクターのAIを外部ファイル(dll)にするのは手間が掛かるから
簡単な数値設定も含めて基本的に直に書いてる。
0500名前は開発中のものです。
2013/12/27(金) 09:41:40.37ID:othLuvJF拡張子はdatとか適当。
0501名前は開発中のものです。
2013/12/27(金) 11:13:51.69ID:n1oY/10v0502名前は開発中のものです。
2013/12/27(金) 11:30:05.53ID:NnhvuRa/その必要性がわかるようになった時に外部ファイルに出せばいい
外部ファイルを使うってのは
自分でフォーマットを決めて格納して
プログラム外で編集とか自力でやるという前提だよ
0503名前は開発中のものです。
2013/12/27(金) 12:04:03.70ID:7chRzBy0ツール作ってて、それで編集するときだけだな外部は
0504名前は開発中のものです。
2013/12/27(金) 12:50:15.11ID:n1oY/10vいずれにしても理由あって手段を決めるだけなので。
0505名前は開発中のものです。
2013/12/27(金) 12:52:38.55ID:7chRzBy00506名前は開発中のものです。
2013/12/27(金) 17:04:48.94ID:KNd0z8Kk好きな形で表示できるようにしてる
独自形式でもファイル読み込みさえ出来れば
データ追加が楽になる
0507名前は開発中のものです。
2013/12/27(金) 19:19:56.75ID:RI0IXlJk最初からゲームに含まれているステージは内部データ(配列として直書き)、
エディットモードで作成されたステージや、追加ステージ配信なんかは外部ファイルにしたことがある。
なんでそんな面倒な作りにしちゃったのか10年前の俺…
0508名前は開発中のものです。
2013/12/27(金) 21:05:50.26ID:qR2PkovD俺は直書きだな。
外部ファイルにする技術と根性がなかったのが主な要因だけど
ステージ切り替えなどのたびにいちいち読み込んでテンポ壊さずに済んだのはむしろ良かった。
0509名前は開発中のものです。
2013/12/27(金) 22:51:31.10ID:VZhm7cNPって話になってそうするとこの外部ファイルはこのクラス、っていう分岐処理が必要になって
そもそもなんで外部ファイルに値を書いておくのがわからなくなる
0510名前は開発中のものです。
2013/12/27(金) 23:03:43.17ID:RcX+Zbl3トップダウンで最初からファイルフォーマットとか決めても
あとで変更する手間が増える。
0511名前は開発中のものです。
2013/12/27(金) 23:13:15.24ID:x+/UZ836俺のはぶっちゃけ隠すようなもんじゃないしガチガチじゃなくてもいいんだけど、
プレイヤーのモチベのための最低限のブロックは必要かなぁって思ってるんだよね。
・キーワード(文字列@)→ハッシュ化(文字列A)
文字列Aで暗号化、文字列Aをコーディング
これくらいでいいのかな?それとも
・キーワード(文字列@)→ハッシュ化(文字列A)→ハッシュ化(文字列B)
文字列Bで暗号化、文字列Aとハッシュ関数をコーディング
これくらいやるのかな?
0512名前は開発中のものです。
2013/12/27(金) 23:19:10.45ID:7chRzBy00513名前は開発中のものです。
2013/12/27(金) 23:19:34.53ID:VZhm7cNP1.キャラクター共通のデータを持つ定数クラス(最大HPとか経験値テーブルとか)
↓基礎パラメータに固有パラメータを加減算する(ポケモンでいう努力値)
2.そのキャラクター固有のパラメータを持つクラス(Lvとかフィジカルボーナスとか)
↓
3.実際に動くキャラクタークラス(当たり判定とかダメージ処理がある)
って感じで分けてるんだけど、合ってる(問題ない)?
3を作成する時に、if文連打でインスタンス作るクラスを線形探索する必要があるから・・・
class one_character_record{
const int CHARACTER_ID;
const int HP,MP,SP;
//レベルが上がるに連れてHPMPSPをかけてく
const float HP_RATE,MP_RATE,SP_RATE;
//コンストラクタで初期化
};
class one_character_datebase{
vector<one_character_record> character_list;
};
class two_character_info{
int character_id;
int level;
three_character_entity create_character(){
ここでif連打してクラスを線形探索してしまう
}
};
0514名前は開発中のものです。
2013/12/28(土) 01:01:40.20ID:uGS4rdij横だけど、線形探索が嫌なの?それともif連打が嫌なの?
線形探索はListをSetかMapにすればOK。
その場合、キャラID外出しのMapの方がラクそう。Setはめんどいと思う。
if連打の方はその例だとよくわからないんだけど、
「あるステージに登場する敵一覧」みたいなのは、
コーディングでも外部ファイルでも、どっかに作っておかない無理なんじゃない?
そうは言っても、struct Tuple{int id, lv;}みたいな構造体のリストが
あれば十分でif文は使わないと思うよ?
0515名前は開発中のものです。
2013/12/28(土) 01:35:07.42ID:os0Do0OOclass ActorType {
Data type; // 種族の初期値
Data lv; // レベル上がったら
};
class Yusya : ActorType {}
class Mahotukai : ActorType {}
class ZakoSlime : ActorType {}
class BossGoblin : ActorType {}
class Actor {
ActorType* pType;
Data max; // 最大( const にできないけど )
Data now; // 現在
}
後はActorのインスタンスに値を渡すなり、Actorを更に継承するとかで。
0516515
2013/12/28(土) 01:59:56.67ID:os0Do0OO説明不足かもしれんから補足
Data が 1。ActorTypeが 2。Actorが 3。
if文連打ってたぶん自分がどの種族かって話だと思うけど
ActorにActorTypeを継承した勇者とかゴブリンのポインタを渡しておけばOK
0517名前は開発中のものです。
2013/12/28(土) 02:05:22.92ID:os0Do0OO複数回暗号化したらゲーム側で復号できるの?
DXライブラリのFile Read APIだとキーワードひとつしか使えないと思うけど。
0518名前は開発中のものです。
2013/12/28(土) 08:15:51.01ID:w2FghHntif文使うより綺麗にはなりそう
enum e_kind{yusya,mahou,size};
class yusya:unit{
public yusya();
}
class mahou:unit{
public mahou();
}
//あとユニットクラスのコンストラクタの関数ポインタ配列にyusya,mahouをいれて
配列のインデックスに列挙体の定数入れて呼び出す
戻り値はunit
って感じのできたらいいんだけど、
結局配列に関数ポインタいれるのてが気になるんだよなぁesp
0519名前は開発中のものです。
2013/12/28(土) 10:14:16.10ID:nxegrboeとりあえずコンストラクタの関数ポインタはC++の言語仕様上捕れない。
なので、配列に関数ポインタ入れてコンストラクタを動的に切り替えたい場合は、
オブジェクトを生成するのstaticメンバ関数を定義するのが定石。
http://codepad.org/AG21ETE1
0520名前は開発中のものです。
2013/12/28(土) 11:57:17.21ID:os0Do0OOconst変数の初期化をしたいのかな?
仮想関数の継承はどうだ?
class Unit {
const int HP, ATK, DEF;
Unit(){
HP = getHP();
ATK = getAttack();
DEF = getDefence();
}
// 純粋仮想関数
virtual int getHP() = 0;
virtual int getAttack() = 0;
virtual int getDefence() = 0;
};
class Yusya : Unit {
virtual int getHP(){ return 100; }
virtual int getAttack(){ return 20; }
virtual int getDefence() { return 40; }
};
0521名前は開発中のものです。
2013/12/29(日) 01:29:49.14ID:BhN6KG/pパスを暗号化なんてナンセンス
パス文字列を数字にして、プログラム側では数字を文字列に変換する文字列を通して渡すだけでいい
実行ファイルからパス文字列を特定するのは簡単でも、たった数バイトの数値データを特定するのは難しいからな
0522名前は開発中のものです。
2013/12/29(日) 11:59:45.32ID:d2x6Ostz0523名前は開発中のものです。
2013/12/29(日) 17:46:51.79ID:wzfWyjoW0524名前は開発中のものです。
2013/12/29(日) 18:23:59.02ID:4BNWk9QGおおなるほどね、たしかにint_64なら8バイトだが
それをそのまま文字列化すれば18文字くらいになるのか
0525名前は開発中のものです。
2013/12/31(火) 10:03:19.36ID:aX8L8hoQ死ね
0526名前は開発中のものです。
2013/12/31(火) 16:47:08.93ID:GojrE8K5アドバイスくれた方々本当にありがとうございました
0527名前は開発中のものです。
2013/12/31(火) 22:00:54.55ID:BDzEArYB死ね
0528名前は開発中のものです。
2013/12/31(火) 22:10:37.75ID:ZqBdBoPn頑張ったね〜、その調子で次も頑張れ!
0529名前は開発中のものです。
2014/01/01(水) 10:30:06.29ID:TDYNLr8C死ね
0530名前は開発中のものです。
2014/01/01(水) 13:01:15.47ID:2ZrgSTYN0531名前は開発中のものです。
2014/01/01(水) 23:42:07.23ID:ZZixNcFD0532名前は開発中のものです。
2014/01/02(木) 01:59:57.09ID:mQcY+tY8「結構」かどうかは分からないが、確実に1人は居る
0533名前は開発中のものです。
2014/01/02(木) 02:12:28.31ID:h0bJk+dx0534名前は開発中のものです。
2014/01/02(木) 02:23:09.35ID:31STBYcg0535名前は開発中のものです。
2014/01/02(木) 03:52:54.76ID:ePSMpJea0536名前は開発中のものです。
2014/01/02(木) 07:31:25.81ID:bOXwmiWI2Dしか使ってないから使ってみるかな
0537名前は開発中のものです。
2014/01/02(木) 10:05:44.69ID:QNF6HRzp0538名前は開発中のものです。
2014/01/02(木) 10:30:16.46ID:NkKMltDW0539名前は開発中のものです。
2014/01/02(木) 10:56:44.99ID:TBb/D2P0見た目にしか影響しない部分は極力軽く作りたいのに、必要以上に重いのが多いし
0540名前は開発中のものです。
2014/01/02(木) 21:21:27.59ID:wy3EKv/40541名前は開発中のものです。
2014/01/02(木) 22:11:10.58ID:mQcY+tY80542名前は開発中のものです。
2014/01/02(木) 22:30:34.78ID:h0bJk+dx0543名前は開発中のものです。
2014/01/02(木) 22:37:51.23ID:j/xsuPGt必要な人には必要。必要ない人には必要ないとしか言えん。
0544名前は開発中のものです。
2014/01/03(金) 02:35:25.55ID:4Pgbyt5kまあ、持ってはいるんだが使いこなせてないからよく分からんが
0545名前は開発中のものです。
2014/01/03(金) 02:42:56.84ID:3an0Y6Ul自分もマップエディタをツールと読み込み用ライブラリ組み込んで使ってたわ
0546名前は開発中のものです。
2014/01/03(金) 11:43:41.36ID:4cktyMT4http://uni.2ch.net/test/read.cgi/newsplus/1388714748/
0547名前は開発中のものです。
2014/01/03(金) 14:05:19.45ID:Lt/0Pr5Rhttp://webblogsakusei.main.jp/game-video-free-pc-niconico-osusume-soft-obs-maiku.html
0548名前は開発中のものです。
2014/01/05(日) 16:02:41.52ID:EueQplrkエンジン音とかそんなものなんだけど、
車オブジェクトが1秒毎に1秒間の音声ファイルの再生リクエストしてる感じ?
それとも管理クラスに「これループ再生しといて」って言って、
そのIDかポインタ持って車オブジェクトが加速とかしたらその加速時の音を再生するみたいな・・・
BGMのループ再生と同じ?
0549名前は開発中のものです。
2014/01/05(日) 17:47:36.38ID:n0v9pV4N俺ならそうする
大抵、ワンショット再生か、ループ再生かとか指定できるようにする。
0550名前は開発中のものです。
2014/01/06(月) 17:20:27.14ID:Db3wqsOfああいうのってシェーダいじればできるの?もっと他の方法?
0551名前は開発中のものです。
2014/01/06(月) 17:32:18.47ID:8ktQGSmT0552名前は開発中のものです。
2014/01/06(月) 17:41:32.51ID:g6N0ueBX「何を」の部分を受け取らないといけないが、COLORで受け取れる値ってアンチエイリアス後だったっけ。
それともフラットなマテリアル色だったっけ。
前者だった場合パレット表現しんどいなとふと思った。
0553名前は開発中のものです。
2014/01/06(月) 17:44:54.87ID:g6N0ueBX後の訳無い。
■ このスレッドは過去ログ倉庫に格納されています