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/
0428名前は開発中のものです。
2013/12/12(木) 22:05:03.39ID:8KqFEAbV3Gバイト近くある画像とか、現在のコンピュータ環境では厳しいそうだな
>>427
成長するとああなるのかもしれんが、流石に別人じゃろw
0429名前は開発中のものです。
2013/12/12(木) 22:34:57.31ID:ggJV+65h次にその人物を違うポーズに変更しようとしますよね?
でももう背景に上書きしちゃってるので、背景から描き直さなくてはいけませんよね?
コンピューターの描画はこれの繰り返しです。
ファミコンとかのゲーム専用機には「スプライト」という、アニメでいうセル画がみたいなのがあって
描画負荷を軽くする工夫がされてましたが、今どきのPCの性能ならそんなのなくても充分なのです。
(重ねあわせる画像をスプライトと呼ぶのはその名残)
0430名前は開発中のものです。
2013/12/12(木) 22:37:44.67ID:ggJV+65h毎回画像データを読み込んでたらとんでもない負荷になりますよね?
だから予め画像データをメモリ上に読み込んでおいて、
「描く」だけを何度も繰り返すのです。
0431名前は開発中のものです。
2013/12/12(木) 22:50:21.06ID:OWkqxLZc0432名前は開発中のものです。
2013/12/13(金) 00:12:21.14ID:6ySiQFYU0433名前は開発中のものです。
2013/12/13(金) 01:05:27.08ID:xT5S28jkシングルスレッドでcpu1コアでやってるのですが、
結局の所、3dゲームとしては妥当な負荷量なのでしょうか?
あとソースコードはvs2010です、すいません。
レビューしてくれるといってくれたひとが数人だったのでダウンロード制限5回までにしてました
亀になりますが、詳しくレビューしてくれる方がいらっしゃるならまた上げます
0434名前は開発中のものです。
2013/12/13(金) 09:14:50.31ID:xKAhw+iZそもそもOSはそうやって必要な部分だけ消して上書きしたりしてるんだよ。
http://msdn.microsoft.com/ja-jp/library/cc410421.aspx
>>403 のリンク先にも登場する基本。
そしてそれはそれとして、アプリ側の都合でそれじゃ問題ある場合に、自分のクライアント領域をダブルバッファリングで上書き繰り返しするんだよ。
0435名前は開発中のものです。
2013/12/13(金) 09:25:50.16ID:35O7WwTq0436名前は開発中のものです。
2013/12/13(金) 10:43:24.72ID:xT5S28jkhttp://www1.axfc.net/u/3113582.zip?key=dxlib
実行ファイルだけ
http://www1.axfc.net/u/3113591.zip?key=dxlib
今FF14プレイするようなデスクトップPCだからそんなに重いと感じなかったけど、
corei3のノートパソコンでやったらFPSが下がるわ下がるわで・・・
プロジェクトのファイル構成は
main.cppにエントリポイントがあり、そこでAdminクラスを継承したシーンクラスが、それぞれ画面を管理してます
問題になる部分はPlayAdminクラスで、PlayAdmin::Play()がゲーム本体のメインループを担当しています
最初は設計しっかりやったのですが、シングルトンとか使ってる上に
最近ちょっと急いで機能実装したのでスパゲッティになってると思います
0437名前は開発中のものです。
2013/12/13(金) 10:44:57.60ID:xT5S28jk0438名前は開発中のものです。
2013/12/13(金) 11:16:36.72ID:YLoJHcec0439名前は開発中のものです。
2013/12/13(金) 11:20:34.64ID:E0ngYd2p0440名前は開発中のものです。
2013/12/13(金) 15:41:14.11ID:+hkdtW8O0441名前は開発中のものです。
2013/12/13(金) 15:50:38.09ID:brnqlIDgハイスペPCだからか負荷全く感じないし
無駄に描画とか計算とかしてるかライブラリの仕様かどっちか
Dxlibの3Dのコストがどんなもんなのかも知らんし
0442名前は開発中のものです。
2013/12/13(金) 17:10:13.51ID:1/aq5Qrb起動して自機を見ただけだけど、
オンボード(グラボなしのノートPC)で余裕で動いたぞ
敵の大群とか弾があったらどうなるかしらん。
重くなったら解像度と奥行きを抑えればどうにかなるだろ。
0443名前は開発中のものです。
2013/12/13(金) 17:14:24.97ID:1/aq5Qrb0444名前は開発中のものです。
2013/12/13(金) 18:32:09.08ID:2p8CNYEs描画する要素が多くなるから
ってことなら、描画してるのは天球とか機体だけだからそんなに負荷変わらないような
0445名前は開発中のものです。
2013/12/13(金) 23:24:33.39ID:QRPVBqXN0446名前は開発中のものです。
2013/12/14(土) 00:37:13.03ID:++viSzPIアプリの内容は知らないけど、シューティングだと思うので書いた。
水平線の遥か彼方に飛んでいったミサイルとかは描画しない、
あるいはそうならないように弾丸は5秒で消えるとかアプリの仕様を工夫するのは
基本でしょ。
もちろん全て今後の追加内容次第の話だけどね。
0447名前は開発中のものです。
2013/12/15(日) 12:19:47.40ID:9ljCa3Kz0448名前は開発中のものです。
2013/12/15(日) 13:45:09.93ID:Hz+1xI4L0449名前は開発中のものです。
2013/12/15(日) 14:05:34.02ID:1GmHMFtI0450名前は開発中のものです。
2013/12/15(日) 16:02:10.70ID:9ljCa3Kz>レビューしてくれるといってくれたひとが数人だったのでダウンロード制限5回までにしてました
同じ奴が5回落としてたら違うだろうけどw
0451名前は開発中のものです。
2013/12/16(月) 18:33:42.92ID:K1sB0mkGcorei3 380/4GBじゃきつい?
0452名前は開発中のものです。
2013/12/16(月) 20:59:35.21ID:bve3ecQvシステムメモリ : 4GB
余裕だったぞ
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死ね
■ このスレッドは過去ログ倉庫に格納されています