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/
0476名前は開発中のものです。
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後の訳無い。
0554名前は開発中のものです。
2014/01/06(月) 19:25:11.77ID:jroo12yT0555名前は開発中のものです。
2014/01/06(月) 19:29:07.64ID:ZBrRAHR20556名前は開発中のものです。
2014/01/06(月) 20:26:38.79ID:SwrL+Z3xゲームで使うものではない
いやマジで
0557名前は開発中のものです。
2014/01/06(月) 21:07:05.90ID:/uvZ+hs4256色とか16色のBMPを使って、カラーパレット部分を直接書き換える。
0558名前は開発中のものです。
2014/01/06(月) 22:18:09.44ID:jroo12yTそ、そうか、わかった
忠告ありがと
0559名前は開発中のものです。
2014/01/07(火) 17:30:28.51ID:a50RC6dR「ポリゴンの法線のY成分」って当たっている面の角度ってことでいいんだよね?
イマイチこれだけだと法線の扱いが分からない
0560名前は開発中のものです。
2014/01/08(水) 01:23:17.21ID:GhGooqG2なんとなく質問がぼやっとしてるんだけど、その「ポリゴンの法線のY成分」ってのは多分、
そのポリゴン=「面」における座標空間でY軸を高さ方向とした時、それを面の方向ベクトルつまり法線としてるって前提だから、
その方向ベクトルに対して「当たりに行く側の」方向ベクトルとのなす角について計算するだけの話では。
0561名前は開発中のものです。
2014/01/08(水) 18:02:56.67ID:tURBup32やっていることはわりと簡単だけど、説明できない人多いよなぁ
なんだろ、文盲?
0562名前は開発中のものです。
2014/01/08(水) 18:23:57.47ID:7e4V+y6u(略)
// XZ平面に垂直かどうかはポリゴンの法線のY成分が0に限りなく近いかどうかで判断する
たぶんソースのここの部分だと思うが
0563名前は開発中のものです。
2014/01/08(水) 18:31:29.07ID:GhGooqG2さぁ?
0564名前は開発中のものです。
2014/01/08(水) 18:33:01.28ID:+GfACctw遅レスだけど助かりました
使用パレット少ない方がいいのかー
0565名前は開発中のものです。
2014/01/09(木) 00:19:43.62ID:u/5Mkl0f勉強してこないと阿寒湖
0566名前は開発中のものです。
2014/01/09(木) 11:59:05.66ID:cUtmN0XShttp://www.youtube.com/watch?v=4Bly_fPhEu4
0567名前は開発中のものです。
2014/01/10(金) 03:10:17.72ID:MSpxeAqe↑ ↑ ↑ ↑ ↑ ↑
0568名前は開発中のものです。
2014/01/10(金) 17:02:00.53ID:h2ZhPVJ+画像を入れ替える場合、int型のデータハンドルをそのまま代入して入れ替えればいいのですか?
あるいはポインタとか使う必要はありますか?
int a, b, temp;
a = LoadGraph( char *FileName ) ;
b = LoadGraph( char *FileName ) ;
temp = a;
a = b;
b = temp;
DrawGraph( x1, y1, a, true) ;
DrawGraph( x2, y2, b, true) ;
一応こういうのが動いてはいるのですが、マズい方法なのかなと悩んでしまって昼も眠れません
0569名前は開発中のものです。
2014/01/10(金) 17:06:16.45ID:YP8fX2qGマズい事も変わった事もしてないので大丈夫
0570名前は開発中のものです。
2014/01/10(金) 19:25:22.37ID:ymiTKugC0571名前は開発中のものです。
2014/01/10(金) 19:52:03.78ID:h2ZhPVJ+ありがとうございます
>>570
描画順です
0572名前は開発中のものです。
2014/01/10(金) 20:49:32.06ID:dkda6PtWやるとしたら間に1つ変数を挟んで、その間の方を弄るようにするのがいいかな?
0573名前は開発中のものです。
2014/01/10(金) 22:32:23.39ID:YP8fX2qG使えるテクニックも何も… バカソートでもいいからソート処理とか書いた事無いのか。
名前の付いてるアルゴリズムじゃなくてもいいから、普通に。
0574名前は開発中のものです。
2014/01/10(金) 22:39:15.90ID:YP8fX2qG対象が単純なポインタや管理番号としてのハンドル(例えばintのtypedef)とかじゃなく、
何かのインスタンスでかつコピー演算子がオーバロードされててかつ、コピーに対して安全じゃない面のだったら、
安直な入れ換えは出来ないけどな。言うまでもないが。
0575名前は開発中のものです。
2014/01/11(土) 00:42:40.61ID:CdbAKzPFDXライブラリでのリソース系のハンドルは、基本intでしかなかった気がするな。
違ったっけ?
■ このスレッドは過去ログ倉庫に格納されています