トップページgamedev
1001コメント354KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2013/06/30(日) 23:57:05.06ID:j62MvD3e
Cを習得した程度のスキルでも、ゲームのグラフィックを比較的容易に描画する事のできる、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

【公式】
http://homepage2.nifty.com/natupaji/DxLib/

【関連スレ】
C/C++ゲーム製作総合スレッド Part1
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/
ゲームプログラムなら俺に聞け(プログラム技術板)
http://toro.2ch.net/test/read.cgi/tech/1366526476/

●DXライブラリではなくDirectXの質問ならこっちへ
【C++】DirectX初心者質問スレ【C】(プログラム技術板)
http://toro.2ch.net/test/read.cgi/tech/1370015791/
0713名前は開発中のものです。2013/11/02(土) 21:42:40.26ID:3Maelvih
http://msdn.microsoft.com/ja-jp/library/z72c1dfd(v=vs.90).aspx
0714名前は開発中のものです。2013/11/02(土) 21:59:51.69ID:SySW2qwH
>>713
おぉ・・・
(this->*AIList[UseAI].AI_Func)();
こんなんにしたらできました
ありがとうございます

>>712
ナマポ?スマートポインタじゃないと設計としてまずいですか?
0715名前は開発中のものです。2013/11/02(土) 22:02:12.55ID:9FYWUI/Y
>>707に対して、生活保護受けてるくせに〜ってことでしょ
0716名前は開発中のものです。2013/11/03(日) 00:55:04.58ID:W4L0bxGv
ぬるぽ
0717名前は開発中のものです。2013/11/03(日) 03:40:26.61ID:tMrWUay8
>>714
関数ポインタの指してる先が普通のメンバ関数みたいだし
このケースではスマートポインタにする意義は無いと思う

似たようなことを敢えて言うとすれば「std::function使おう」とか言えるけど
0718名前は開発中のものです。2013/11/03(日) 08:21:38.75ID:vvC2nxd0
生活保護不正受給の松浦博史の話はスレ違いだからここでやれ。
http://pona.m-bird.org/d-bbs/2-watch/
0719名前は開発中のものです。2013/11/03(日) 11:42:25.33ID:EBwOtCUX
>>711
どのみちその保管したメンバ関数実行するにはインスタンス渡してやらないといけないから、
その構造体単独では使えない。
=インスタンス渡せるなら、直接呼べばいい訳だから、全然意味無いけどな
0720名前は開発中のものです。2013/11/03(日) 12:15:02.65ID:qqgP/ziM
一応サンプル書いた
http://ideone.com/fwUQGy
0721名前は開発中のものです。2013/11/03(日) 14:12:08.37ID:HkNPhWdK
>>719
関数名と関数ポインタをセットで扱いたかったのですが、
かいたプログラマしかわからないような処理になったので、別途列挙体作って管理したいと思ったらこんな感じになりました。
プライベートなメンバ関数なのでコンストラクタで構造体を初期化してます。

理想的なのかどうかはわかりませんご・・・
0722名前は開発中のものです。2013/11/03(日) 14:18:50.24ID:HkNPhWdK
あ、背景書いてなかったですね、すいません・・・
>>711はクラスのメンバ関数内の話です・・
0723名前は開発中のものです。2013/11/03(日) 17:12:55.51ID:PGRU4d3r
VBAとDXライブラリはどっちが使いやすいですか?
ロックマンみたいなアクションゲーム作りたいんですが。
0724名前は開発中のものです。2013/11/03(日) 17:22:18.31ID:oybLvXS0
レイヤーが違う
DXライブラリ以前に、言語は問題ないの?
0725名前は開発中のものです。2013/11/03(日) 17:30:58.74ID:PGRU4d3r
レイヤー?

DXライブラリだとアクションゲームは楽ですか?
0726名前は開発中のものです。2013/11/03(日) 17:38:05.58ID:q6P+R2O4
VBAって Visual Basic for Applications ってヤツ? それはプログラミング言語。
DXライブラリはライブラリ。比較するようなものではない。

DXライブラリは通常C++(VC++)で使う。こっちがプログラミング言語。

だから質問するなら、「VBA」と「C++&DXライブラリ」の比較って事になるのかな。

俺はVBA使ったことないから答えは知らん。
ただVBAとC++、どっちか一つでも使えるならそっちを使えばいいんじゃないか、という事なら言える。

DXライブラリを使えば画像表示とか入出力判定とかは簡単だが、アクションゲームうんぬんはプログラミングの腕次第だからDXライブラリ関係ない。
0727名前は開発中のものです。2013/11/03(日) 17:47:06.31ID:PGRU4d3r
>>726
なるほどそういうことでしたか。
DXライブラリにおける背景のロードはどうすればいいのでしょうか?
主人公が進むにつれて新しい背景が出てきますが。
0728名前は開発中のものです。2013/11/03(日) 17:58:13.17ID:oybLvXS0
フレームワークを探すなり自作するなりしたほうがいいような・・・
質問するなら、今どうやってて、どううまく行ってないのか書いてくれないと
0729名前は開発中のものです。2013/11/03(日) 17:59:21.00ID:PGRU4d3r
>>728
背景画面の連結とかの方法が分かりません。
教えてください。企業秘密ですか?
0730名前は開発中のものです。2013/11/03(日) 18:03:23.93ID:qqgP/ziM
VBAは言語と言うより、Microsoft Office製品に付属のマクロ用途のサブセット版(簡易版)の、旧VB。
言語としては非.NETの旧来のVBで、環境としてはOffice製品が必要な物。

DXライブラリはC/C++言語で利用するライブラリ。で、

>>727
「背景」って用途は自分が決めた使い道の事であって、単に画像のロードなんかはAPIリファレンス参照。
http://homepage2.nifty.com/natupaji/DxLib/dxfunc.html

当たり前だけど、基本的にプログラミングの視点で、自分がやりたい事は具体的にどういう事なのか、がわかってないと
DXライブラリに限らず何も出来ないよ。
……その意味ではVBAだろうと何だろうと何でもそうだけど。
0731名前は開発中のものです。2013/11/03(日) 18:04:45.07ID:QD0IOl9q
いいから初心者はツクール系使っておけ
0732名前は開発中のものです。2013/11/03(日) 18:05:32.09ID:eDrvMfu6
ここはDXライブラリ製のウディタを勧めるべきだろ
0733名前は開発中のものです。2013/11/03(日) 18:05:45.62ID:PGRU4d3r
>>730
ロックマンを作りたいんです。
主人公が進むにつれて背景画像が更新されるようなプログラムを作りたいのですが
その方法を教えて下さいと言っているのです。
0734名前は開発中のものです。2013/11/03(日) 18:08:06.19ID:yZmxR7Tm
誘導です

以降の質問・回答のやり取りはこちらのスレで行ってください
http://toro.2ch.net/test/read.cgi/gamedev/1361004297/
0735名前は開発中のものです。2013/11/03(日) 18:08:20.79ID:qqgP/ziM
>>729
「企業秘密ですか?」って妙な一言付けてくるあたり、もしかしたら釣りかもしれないと疑いつつ、

背景画面との「連結」って表現は普通しないけど、お前さんがやりたい事は単に画像の重ね合わせ表示のような物。
上のリファレンス読んで頑張れ。
ってか、基本的にコンピュータで動いてる物の仕組み自体は理解してるか?
あるいはなんらかプログラムを作ったことは。
特に、出来ればC/C++で何か動くもの作ったことはあるか?
0736名前は開発中のものです。2013/11/03(日) 18:11:48.82ID:qqgP/ziM
>>733
お前さんが簡単に数行で書いてる質問の正解は、お前さんがどこまで何を知っててどんな経験と知識があるかで大幅に変わるから、
もしもまったく何も知らないなら、本一冊買って基本的な勉強全部やって何か一本自分で作れてから聞いて。

何も知らない状態の人に全部説明したら本一冊書けるくらいの内容になっちゃうから。
本当に。
0737名前は開発中のものです。2013/11/03(日) 18:11:52.44ID:PGRU4d3r
>>735
複数の画像を通し番号でアクセスしたい場合データ構造は何がベストですか?
そもそもDXライブラリにおいて一つの画像のビットマップを格納する方法が分かりません。
0738名前は開発中のものです。2013/11/03(日) 18:13:29.80ID:eDrvMfu6
まず
>VBAとDXライブラリはどっちが使いやすいですか?
とか質問してるレベルの奴が人に聞いて問題を解決するとか愚かすぎる
まずは既存の講座サイトを見て適当に動くプログラムを組んでみてから心配しろ
0739名前は開発中のものです。2013/11/03(日) 18:17:19.91ID:PGRU4d3r
色々サイトを見て回った結果このサイトにたどり着いたのです。
知ってる人がいれば教えて下さい。企業秘密ですか?
0740名前は開発中のものです。2013/11/03(日) 18:18:06.99ID:qqgP/ziM
>>737
そういう具体的な質問なら、普通は「画像データ格納した構造体なりなんなりのポインタをvectorにでも並べとけばいいんじゃね」
って回答で終わるんだけど、これは別に特殊な方法でもなんでもないので、
なんかコード書いてる人なら最初に自分で思い付くレベルのかなりベタな話。
鍵カッコの中の一文、意味通じたか?
0741名前は開発中のものです。2013/11/03(日) 18:19:46.13ID:8z747x7V
企業秘密です・・
0742名前は開発中のものです。2013/11/03(日) 18:21:21.17ID:qqgP/ziM
>>739
なんか釣りっぽいな。
>>735 の冒頭にも疑い書いたのにまた妙な事繰り返す辺りが。

>>734 のスレ行った方がいいよ。
0743名前は開発中のものです。2013/11/03(日) 18:36:24.37ID:PGRU4d3r
>>740
vectorってC++じゃなかったですか?
DXライブラリが提供している配列みたいなデータ構造とかあるんですか?
0744名前は開発中のものです。2013/11/03(日) 18:37:50.20ID:eDrvMfu6
馬鹿に制作は無理
もうほっとこう
0745名前は開発中のものです。2013/11/03(日) 18:38:11.98ID:q6P+R2O4
釣りだと思うなら突っ込むなよ。
なんで釣りだとわかった途端レスが増えるんだよ。
0746名前は開発中のものです。2013/11/03(日) 18:40:18.24ID:qqgP/ziM
>>743
いや、そのC++のstlにあるvectorの事を言ってるけど

てか、DXライブラリってどういう物かわかってるか?
0747名前は開発中のものです。2013/11/03(日) 18:43:18.04ID:PGRU4d3r
>>746
DirectXの機能を使いやすいようにしたものですか?
DirectXにも配列って有りませんでした?
vectorの使い方とか分からないんで。それ以外で何かありませんか?
0748名前は開発中のものです。2013/11/03(日) 18:46:57.50ID:qqgP/ziM
>>747
とりあえず無い。てかvectorみたいな簡素な物わからなかったらどこにも無い。
てか、別にvectorに拘らなくても普通の配列で都合良いならそれでもいいじゃない。

てかもうDXに限らず外部ライブラリ使う以前の話なので、迷惑だから
>>734 のスレ行って。あと俺の質問にまったく答えない辺り気に入らないからもう安価しないで。
あと本読んで。終わり。
0749名前は開発中のものです。2013/11/03(日) 18:47:43.88ID:PGRU4d3r
>>745
釣りじゃないからやり取りが弾むんでは?

さて、例えばAの画像を4、Bの画像を6表示するってのを動的にやる方法が
分からないんですよね。
t:10-tで表示する方法です。
どうしたらいいんですか?
0750名前は開発中のものです。2013/11/03(日) 18:48:39.64ID:PGRU4d3r
>>748
すいませんでした。
0751名前は開発中のものです。2013/11/03(日) 18:59:18.56ID:eDrvMfu6
>>749
釣りだからじゃなくてお前が馬鹿だからだ
0752名前は開発中のものです。2013/11/03(日) 19:01:01.03ID:PGRU4d3r
>>751
馬鹿っていうソースを出してください
0753名前は開発中のものです。2013/11/03(日) 19:03:53.98ID:UEvXhgnL
馬鹿っていうソース
>>747 vectorの使い方とか分からないんで。
0754名前は開発中のものです。2013/11/03(日) 20:28:49.15ID:5/lYAMhw
ここはピンからキリまで初心者に物事を教えるスレでは無い。
参考書読め。厚かましい。
0755名前は開発中のものです。2013/11/03(日) 21:45:47.74ID:TksWLddl
>>748
>>750
この流れに笑う
0756名前は開発中のものです。2013/11/03(日) 22:18:29.73ID:QatK0L14
>>723
あなたが、このようなゲームを作りたいのですか?
http://www.rutles.net/download/217/compiled.zip


14歳からはじめるC言語わくわくゲームプログラミング教室
Visual Studio 2008編―Windows XP/Vista対応
http://www.rutles.net/products/detail.php?product_id=392
0757名前は開発中のものです。2013/11/03(日) 23:21:18.09ID:yZmxR7Tm
だから俺はよそでやれと言ったんだ
0758名前は開発中のものです。2013/11/03(日) 23:51:34.26ID:a/xyoUQ1
おまいら冷たいな
見積書くらい作ってやれよ
0759名前は開発中のものです。2013/11/04(月) 07:32:54.47ID:oLRpk0vd
stlはc言語で習うところのstudio.hみたいなもんなのに
0760名前は開発中のものです。2013/11/04(月) 10:18:13.07ID:dZTD89BM
お前は池上彰か
0761名前は開発中のものです。2013/11/04(月) 13:17:13.61ID:yTqiV+1X
ストゥディオワロタ
0762名前は開発中のものです。2013/11/04(月) 14:11:15.89ID:n6mZi9Ct
スタジオの空目はありがちw
0763名前は開発中のものです。2013/11/04(月) 16:57:34.62ID:oLRpk0vd
stdioなんて普段書かねーから(震え声)
0764名前は開発中のものです。2013/11/04(月) 17:09:48.89ID:dZTD89BM
聞かないと絶対に標準入出力の略だとわからんよなこれ
0765名前は開発中のものです。2013/11/04(月) 17:28:54.95ID:sQ908pKG
やべー、普通に会社でもスタジオって言ってたわー
やっべー まじ やっべー
0766名前は開発中のものです。2013/11/04(月) 17:54:41.13ID:qS282/KW
音読みするなら、スタンダードアイオー、かな?
0767名前は開発中のものです。2013/11/04(月) 18:12:00.98ID:rILdYRIp
D言語はstd.stdioで「そこ省略しないんだ」感ある
0768名前は開発中のものです。2013/11/04(月) 18:25:08.33ID:ivzaYsK9
わかる
0769名前は開発中のものです。2013/11/04(月) 18:29:28.84ID:rILdYRIp
>>767
標準ライブラリの標準入出力って意味だから
標準ライブラリの拡張入出力が出たりするかも知れないじゃないか(無い
0770名前は開発中のものです。2013/11/04(月) 18:48:42.40ID:Ao5FLTjW
背景と主人公をロードするとき、主人公を背景より前に出したいんですが
そのための関数を教えて下さい。
0771名前は開発中のものです。2013/11/04(月) 18:50:56.46ID:6Jpz+X29
・関数を呼ぶ順番を変えましょう
・ついでにLoadGraphScreenを使うのをやめましょう
0772名前は開発中のものです。2013/11/04(月) 18:52:10.63ID:Ao5FLTjW
>>771
その関数は何故使ったらダメなのですか?
0773名前は開発中のものです。2013/11/04(月) 18:56:27.53ID:qS282/KW
もっと汎用性のある命令で代用できるのに、わざわざ使う理由がない。

目の前にパソコンがるのに、そろばんで計算してるようなもん。
0774名前は開発中のものです。2013/11/04(月) 19:11:09.01ID:Ao5FLTjW
>>773
じゃぁLGSは何故あるのですか?
便利だからでしょう?
0775名前は開発中のものです。2013/11/04(月) 19:18:18.67ID:oLRpk0vd
マルチスレッドじゃないけどロード画面を動かしたいんですがどうしたら
0776名前は開発中のものです。2013/11/04(月) 19:22:52.71ID:rO2LFCzb
LGS…強そう
0777名前は開発中のものです。2013/11/04(月) 19:24:57.85ID:yTqiV+1X
>>775
ロード中にコールバックでもしたら
0778名前は開発中のものです。2013/11/04(月) 19:29:06.78ID:M1WiJaGR
>>774
いえ、便利だからあるわけではありません
なんでこんな関数を用意したのかは知りませんが
LoadGraphScreen関数を使った場合

HDD ⇒ メモリ ⇒ 描画

毎回、このような処理をして画像をPCモニターに描画することになります

HDDは回転速度が遅いため、
毎回、このような処理をして描画をすれば処理が遅くなります


そこで、LoadGraph関数を使って画像を一旦、メモリに取り込んでおきます

HDD ⇒ メモリ

そして、DrawGraph関数を使ってメモリから描画します

メモリ ⇒ 描画

そうすることで、処理速度が向上し、重たくないゲーム画面になります
0779名前は開発中のものです。2013/11/04(月) 19:30:02.81ID:dZTD89BM
超かっこいいLGSは(解説を作るのに)便利だからあるんだよ

使うのにはこれっぽっちもうれしくない
0780名前は開発中のものです。2013/11/04(月) 19:35:40.93ID:M1WiJaGR
通常、ゲームでは、
NowLoading画面で、LoadGraph関数を使って
画像をメモリに取り込みます

そしてロードが完了し次第
ゲーム本編で、DrawGraph関数でメモリにぶちこんだ
画像を呼び出して描画します

詳しくは、ドラクエ10でもプレイしてみてください

ゲーム開始時やところどころで「NowLoading画面」が表示されます
ゲームとはそんなものだと思ってください
0781名前は開発中のものです。2013/11/04(月) 19:42:51.18ID:aXJyorQF
>>779
これはある

が、プログラム学ぶならこれぐらいは当然という気持ちもある
0782名前は開発中のものです。2013/11/04(月) 19:43:03.92ID:M1WiJaGR
あ、私はこんなC言語/C++のゲームプログラミング解説サイトを運営している者です

http://c-games.main.jp/index.html

初学者目線で、優しくC言語/C++のプログラムを説明していますので、
もし、全くプログラミングをやったことがない初心者である自信があれば
一度、ご覧になってみてください

初学者向けなので、中級者以上には物足りないかも知れませんが、
初心者であれば、一気に中級者を追い越して、中級者以上になれます。
(このスレの常連より遥かに上になって見下せますw)
0783名前は開発中のものです。2013/11/04(月) 19:44:24.93ID:aXJyorQF
>>782
すげええええけええええええええ!!!!
俺もプロのゲームプログラマーになってこんな2chみたいな吹き溜まりの奴ら見下したいです!!!!!
0784名前は開発中のものです。2013/11/04(月) 19:49:50.21ID:r19JIK5u
>>770
自分は背景をDrawGraph関数で並べてから
表示キャラをDrawGraphの第4引数をtrueにして表示する
(ビットマップ画像でキャラの外側を黒で埋めておく)
上記で普通にいけると思う

ちなみにLoadGraphScreenは使ったこと無いけど
メモリに入れるなら通常のLoadGraph使うだろうから
メモリ介さずにファイルから直接スクリーン投影用じゃない?
0785名前は開発中のものです。2013/11/04(月) 20:00:09.34ID:dZTD89BM
よく考えたら最近のPCってLoadGraphScreen連打しててもキャッシュとか効いちゃって別に遅くなさそう
0786名前は開発中のものです。2013/11/04(月) 20:05:58.51ID:bL0Rt3Em
SSDなら尚更だろうなぁ。
0787名前は開発中のものです。2013/11/04(月) 20:06:22.16ID:Ao5FLTjW
ありがとう!!
LGSよりもっといい関数があるんだ!
このスレ見てたら参考書いらんわー
ありがとう!!!!!!!!!!!
Thank you very much for me
0788名前は開発中のものです。2013/11/04(月) 20:15:37.77ID:PqV54s4L
んーあんま詳しくないけどさすがに画像はサイズ大きいし無理なんじゃないかな
でもそういえばJavaのJITも最近はキャンシュでゴリ押し最適化図るとか聞いたね
0789名前は開発中のものです。2013/11/04(月) 21:00:23.71ID:84QWcKjq
まぁ使う意味ないよねっていう
背景はmakescreenで予め1つテクスチャにまとめちゃってるな
0790名前は開発中のものです。2013/11/04(月) 21:10:17.81ID:wVKdSea2
>>782
F5連打してサーバー落として良いですか?
0791名前は開発中のものです。2013/11/04(月) 21:17:09.79ID:WyeoCWwd
すぐサイト閉鎖する講座サイトほど無価値なものもない
そして無価値なものを宣伝するのは害悪行為
0792名前は開発中のものです。2013/11/04(月) 21:52:51.37ID:wVKdSea2
>>782
正直、初心者には向いてないサイト
見たら唯のコピペかと思った
後一個足りてないぞ→画像(ソース)+説明 じゃ駄目
足りてないモノ→興味を引く要素、実際に何が出来るか説明不足

最初から興味が有って、そのサイト見てても途中でやる気が無くなる
関数一覧を表示すのは良いがクリックでトップに戻る意味が分からん
関数にマウスを当てたらサンプルソースが表示される様にするか
読み込みが始まって、サンプルが表示される形式にした方が良い
アレじゃ唯の目次にしか成らない、別のページを作る必要が有る
0793名前は開発中のものです。2013/11/04(月) 22:05:03.21ID:wVKdSea2
C言語が使えるからと言って講座サイトを作るのは無理
webデザインや重要な企画を作る能力が足りてない
今までして来た事と違う事を、もっと勉強した方が良い

なんでもこなせるスーパーマンに成りたいんだったら
もっと頑張る必要が有る。が、本気でやる気なら応援するぞ
まずは、何が必要なのか調べる所からやり直す。そしたらスムーズに事が運んだり見えてくるものが有る
0794名前は開発中のものです。2013/11/04(月) 22:20:59.28ID:6GaMPiKC
入門者向けサイトならば、掲示板を作って質問を受け付ける。
そこから、要求される項目が決まる。

ちなみに、サイトを作って広告宣伝費としていくら入金されるの?
0795名前は開発中のものです。2013/11/04(月) 22:29:20.67ID:WyeoCWwd
まず最終的にどういうゲームができるのかっていうサンプルゲームを公開すべきだよ
龍神録の館はそれができてるから重宝されてるわけで
0796名前は開発中のものです。2013/11/04(月) 22:31:43.30ID:84QWcKjq
まじめにレスするだけ無駄だとおもうな
>>782のサイト見てからじゃあ何が出来るか?っていうと何も出来ないし
DXライブラリならDixqのサイトでも見ればいいし言語ならロベールとか猫わかとか見ればいい
0797名前は開発中のものです。2013/11/04(月) 22:32:06.05ID:wVKdSea2
>>794
サービスによるけど広告クリックは1〜2%
アフィリエイトは大体20%〜グライ
キチンと業者と契約を結べば別だけど、アクセス数や利用者数が膨大に必要
知識の浅い初心者が頻繁にプログラミング入門サイト作って失敗している
書籍やサイトで紹介されてる内容、程度なら半年持たない
ユーザーが必要としているのは一歩進んだ知識だから最低でも大規模プログラミング
できる程度の知識が必要。
0798名前は開発中のものです。2013/11/04(月) 23:43:47.74ID:OotvFeys
180フレーム寿命があるエフェクトを毎フレーム30個ぐらい作るとReleaseモードでもFPSが40ぐらいになるんですが
これはもうシングルスレッドゆとり設計の限界なのかね

GPUに行列の計算させるのってDirectXの関数使えばいいの?
なんかCPUでやってる気がするわ
0799名前は開発中のものです。2013/11/04(月) 23:53:06.95ID:Duwm9B/d
突っ込みどころが多すぎて何も言えない
0800名前は開発中のものです。2013/11/05(火) 00:06:51.80ID:J83UpZs3
>>798
横からだけど、確認を込めて一応掘り下げると…

・「nフレームのスパンで動作するとある処理Aを、毎フレーム n個作ると遅くなる」
 → 処理Aの開始から終了までのフレーム数と、1フレーム当たりの処理数 自体は普通特に関係無い訳で、
   話の主題は単に 「1フレーム当たりの処理量が多くて、1フレームを通過するのに時間がかかる」 って話だと思う。
   ならば単位当たりの処理を軽量化するように設計したらいいんじゃね、って話。

・「これはもうシングルスレッドゆとり設計の限界なのかね」
 → 上で書いた通り、あなたの 「その」 設計の限界だから見直すべき。
   その上で、シンクロのステップも含めた上で、マルチスレッドの方が良いならそのように設計するべき。
   ただしその場合、「はたしてマルチスレッドにした場合、シンクロのポイントも含めて考えた上で、1フレーム当たりに可能な処理量がどれほど増えるか」
   は把握しておくべき。 その正解はあなたの実装による。

・「GPUに行列の計算させるのってDirectXの関数使えばいいの?」
 → ある意味 DirectX の関数と言えるけど、正確には GPU側で計算させるならシェーダの中の話。 DirectX で言うなら HLSL の中の関数の話。
   で、GPU側で計算させたい場合、普通は CPUから引き渡した内容に対して、シェーダ内で表示物向けに計算させるだけなので、
   その用途で良いならそうしたらいい。

・「なんかCPUでやってる気がするわ」
 → 気がするんじゃなくて、自分がCPU側で計算させて DirectX 関数に引き渡してるならそうだし、シェーダ内の関数でやってるなら GPU側。
   気がするんじゃなくて、自分で明示的にわかってるはず。
0801名前は開発中のものです。2013/11/05(火) 00:12:40.70ID:J83UpZs3
ちなみに、
>180フレーム寿命があるエフェクトを毎フレーム30個ぐらい作るとReleaseモードでもFPSが40ぐらいになるんですが
↑こういう、ふわっとした理解で何も考えずに、単に言葉だけ知ってるレベルでマルチスレッド化なんてしたら、
100% 正常に動作しないので、問題点の要点を勘違いしないで、ちゃんと整理する事。 自分が書いてる処理は具体的にどういう動作なのかを本当に理解すること。
終わり。
0802名前は開発中のものです。2013/11/05(火) 00:19:12.85ID:K3Hz6QZH
180*30=5400
ちゃんと設計してギリギリ60fps保てるレベルだな

オブジェクト生成毎にメモリをnewしてるとかだと間違いなく無理だが、
それ以前にエフェクトにこれほど大量のオブジェクトを作る設計が間違い
0803名前は開発中のものです。2013/11/05(火) 00:57:01.93ID:J83UpZs3
余談だけど、処理内容書かずに数字だけで言うなら、

俺が書いてるオープンワールドのアクションゲーもどきだと、マップ中にある火山や温泉の間欠泉や、海辺の波と、あと
敵を殴った時に飛び出る★のようなエフェクト、必殺技的な物使うときの透過光や走行線なんかの内、

一番長くアニメーションさせてる物は 60fps 定速管理の場合 3.5秒ほどの間表示処理を行うから、期間で言えば 250フレームの間描画を繰り返す計算になるけど、
しかしそんな事自体は大した意味は無くて、本当のポイントはメインループ中の1回の処理で、どれだけの内容をこなさないといけないかって事。

その意味を踏まえて言うなら、一番込み入った場面では最大 150個ほどのエフェクトが同時に動作している事があるけど、
メインループから定速固定用の時間経過処理(fps管理用スキップ処理)をコメントアウトすると、大体 2400fps ぐらいの速度で動作している。
内容的に特にそれでも速いとは思わないが、要は、「どういう処理書いてるか、1ループ(フレーム)の間にどんな事してるか」 で結果なんて変わる訳で、
数字だけ見ても ふわっとした事しか言えないって話。 本当に終わり。
0804名前は開発中のものです。2013/11/05(火) 07:22:11.85ID:+x+EoQCL
何FPSで動くとかどうとかの話って、PC次第で変わるから意味ないような。
0805名前は開発中のものです。2013/11/05(火) 07:28:11.84ID:K3Hz6QZH
>>804
大体の目安だからいいんじゃね
クロック数とかもマルチコア主流の今の時代じゃ意味ない数値だし
0806名前は開発中のものです。2013/11/05(火) 07:39:09.41ID:D7RLQ/7t
とりあえずdxライブラリに完全に乗っかっててしかも
頂点操作してないから重いんだと思う

そう考えるとFF14のあのエフェクト量であの軽さはやばいな
0807名前は開発中のものです。2013/11/05(火) 12:35:49.76ID:Y6UuuJq+
DXライブラリでチェックボックスとかスクロールバーのような
コントロールを使おうと思ったらやっぱり自作するしかない?
それとも他のライブラリとか使った方がいい?
0808名前は開発中のものです。2013/11/05(火) 13:01:44.40ID:ao+vnFi7
winapiでいいやん
慣れないとメッセージの調べかたに手間どうが
0809名前は開発中のものです。2013/11/05(火) 13:08:49.28ID:CTkkt81/
>>807
DXライブラリを使う以前に
C言語をちゃんと理解していれば
悩む必要もないと思うよ

ON/OFFのチェックを表現したいなら
まず、ONの画像とOFFの画像の2つを用意する

さらにどの条件の時にON/OFFなのかを組む
2種類しかないならbool型で、Trueとfalseでいいと思う

bool型がtrueなら、ONの画像を表示
falseなら、OFFの画像を表示するように組む

あとは、bool型をどうすればtrue/flaseにするのかの仕組むを組めば良い

ゲーム画面でマウスの左クリックでON/OFFにしたなら、
マウスの座標が、チェックボックスの座標内にあった時に、
左クリックをして、ONならOFFになる
OFFならONにするようにして表示画像も変えるようにする
0810名前は開発中のものです。2013/11/05(火) 13:12:05.87ID:itfUHADs
DXライブラリじゃないけど、俺はゲーム画面上に表示するコンフィグその他のGUIは、
DirectXベースでテクスチャ貼った板ポリ並べて並行投影で表示する恰好のGUIライブラリをかなり前に作ってあって、
なんだかんだ改修しながらずっと使ってる。
普通のボタンと、チェックボックス的なトグルボタンと、テキストエディタと、リサイズ可能なウィンドウと、Excel風のグリッド表示するリストボックス
0811名前は開発中のものです。2013/11/05(火) 13:22:31.45ID:CTkkt81/
ゲーム画面内でマウスのドラッグでスクロールさせるなら
スクロールバーの座標にマウスを移動させた時に、
左クリック押しっぱなしの状態で、ドラッグ状態にして、
マウスを下に移動させれば下に移動、上に移動させれば上に移動

あと、SetDrawArea関数を使って
指定した座標範囲内だけに
スクロール内の内容を描画するようにして
スクロールバーのドラッグ&マウスの上下移動で
SetDrawArea関数内の領域に描画した全ての画像の座標を
y軸にプラスにしたりマイナスにすれば、
そのウィンドウ内だけで表示内容がスクロールされる
0812名前は開発中のものです。2013/11/05(火) 13:34:30.35ID:RmjgnHAM
マスクしないと
■ このスレッドは過去ログ倉庫に格納されています