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/
0316名前は開発中のものです。
2013/12/06(金) 13:21:12.38ID:PADk/SAfDXライブラリは単なるラッパーみたいなのだから
この辺の問題をの残してるんだよなあ
とりあえずサイトではなくGameCodingCompleteとかの本を薦める
0317名前は開発中のものです。
2013/12/06(金) 13:31:13.63ID:GRpiVBHm顔真っ赤っか
0318名前は開発中のものです。
2013/12/06(金) 14:57:34.67ID:8emZ0ahIパラパラアニメを実装するアニメーション付きスプライトがあるとする。
この実装方法としては大きく2つある。
1. Spriteクラスを継承してAnimationSpriteクラスを作る
2. Spriteクラスにアニメーションデータを添付できるようにする
よくある実装は1だがこれは愚かな設計だ。理由は省略。
実装するとしたら2だが汎用的にアニメーションデータを添付できるようにするのは実は結構難しい
さらに実際に計算を行うAnimationControllerも欲しい。
最低ローカルの時間軸とワールドの時間軸と再生スピードと再生位置の変更は欲しい
さらに複数のアニメーションの加算合成も欲しい
・・・というような事を解説した日本語のサイトお願いします
紹介出来なかったらフルチンの画像アップして謝罪してください
0319名前は開発中のものです。
2013/12/06(金) 15:04:55.11ID:2X95ibjV以前サウンドハンドルについて質問させてもらったものだけど回答くれた人ありがとう
以前音楽再生を試したときにサウンドハンドルの解放したのを残したままだった…
0320名前は開発中のものです。
2013/12/06(金) 15:54:27.80ID:E6hzqXJs汎用アニメデータ作る時点で自作の領域なわけでそこまで一緒のことやってる解説サイトあるんかね
てかそこまでできてて何に困ってんの
スプライトに骨と親子関係、アニメに骨角度と画像の種類持たせて、時間の前後2つを内分して求めるだけでいいじゃん
0321名前は開発中のものです。
2013/12/06(金) 16:16:43.05ID:xtlRt24w2D Animation for games
http://www.youtube.com/watch?v=rfnceZO1seQ
0322名前は開発中のものです。
2013/12/06(金) 17:53:46.41ID:7SAMHN0Jどっちの方がいいんだ
0323名前は開発中のものです。
2013/12/06(金) 18:47:30.15ID:HxrORMUX0324名前は開発中のものです。
2013/12/06(金) 20:20:15.70ID:YUoOw5dIそのアニメ定義データの設計と、読み込み動作させるライブラリ設計と
それを使ったゲームとエディタを作るというストーリーが浮かんだわ。
0325821
2013/12/06(金) 20:21:38.29ID:8emZ0ahIちげーよ、例として出しただけ
多くのゲームエンジンやツクールではアニメーション出来るクラス/変数は固定だ。
2013年のゲームエンジンとしてこれは許せない物がある。
理想は「全てのクラス」の「全ての型のプロパティ」に対してアニメーションを設定したい。
これは結構難しい(というかC++なら無理)。
幸い俺はC#で作っているので4.0から dynamic がサポートされたのでリフレクションなどを駆使して
上記の方法で実装できたがそれでもさらにロバストにしたいと思ってる
おそらくこの方法が最適な設計&実装だと思ってるが本当のところは知らん。
で、こういう話を解説したサイトさっさと教えて下さい
無いのは知ってますが、あると言い張るキチガイがいるのでさっさとお願いします
0326名前は開発中のものです。
2013/12/06(金) 20:39:27.67ID:d2DfRha00327名前は開発中のものです。
2013/12/06(金) 20:43:38.92ID:CaSDOuTQ「やっちゃいけないけど、理由は面倒なので説明しない」ってのは非効率だと思うんだよな。
やっちゃいけない事ほど理由を説明すべきだと俺は思う。
よく映画とかで「やっちゃいけない」という言いつけをやぶって大被害を被ったりするけど
いつも「ちゃんと理由を説明しておけばこんなことにはならないだろうに」と思ってしまうw
0328名前は開発中のものです。
2013/12/06(金) 20:55:16.77ID:YUoOw5dIそのゲームエンジンはDXライブラリ使って実装してるのか?
0329名前は開発中のものです。
2013/12/06(金) 21:38:31.61ID:M2uwVALTある程度用途や形式を制限される特定のゲーム向きになって、
そうなると解説とかクラスライブラリの公開をするわけにもいかなくなるんじゃないか?
0330名前は開発中のものです。
2013/12/06(金) 21:43:26.65ID:M2uwVALTシリアライズ・デシリアライズ(バイナリ、XML、データベース)なら
C#とかJavaだとぽぽいのぽいだぜ
0331名前は開発中のものです。
2013/12/06(金) 22:07:31.61ID:FaqrHBRHなんというか賛否両論だったね
0332名前は開発中のものです。
2013/12/06(金) 23:38:36.58ID:Kyl65KNVC++でもぽぽいのぽいの、ぽいじゃん
0333名前は開発中のものです。
2013/12/06(金) 23:44:00.06ID:n7M7J0bf自覚してないのかも知れんがまともじゃないのはお前だぞ
0334名前は開発中のものです。
2013/12/07(土) 01:22:51.85ID:UiqP/wFWいちいち描画順考えるの面倒になってきた。
多少の修正はあるにしても、DrawGraphのところをDrawBillboard3Dに置き換えるだけでOK?
あるいは他に楽な方法ある?
0335名前は開発中のものです。
2013/12/07(土) 08:28:19.33ID:W7HdtPpY次にお前は「z値を設定するのがめんどくさい」と言う!
0336名前は開発中のものです。
2013/12/07(土) 10:14:19.35ID:UiqP/wFWそしてZ値の設定が面倒とか言いそうだ俺
描画登録という関数を作って、最後にZ順でソートして一気に描画する仕組みは前に作ったことがあるんだけど、
大昔に書いたソースということもあり、いろいろ不便&動作が重くてさ、せっかくなので作り直そうかなと思ったんだよね。
0337名前は開発中のものです。
2013/12/07(土) 11:41:16.03ID:rXPbYqj6なんか俺と同じ状況すぎて笑ったw
0338名前は開発中のものです。
2013/12/07(土) 15:49:00.30ID:8lkia08N0339名前は開発中のものです。
2013/12/07(土) 16:16:08.17ID:qEUnoYjv少なくともこの文脈で意味は通る
別の意味の「z値…」なのかも知れないが
0340名前は開発中のものです。
2013/12/07(土) 18:24:43.74ID:8lkia08Nシステムを作ってて描画の事忘れてたから、Z値調整だるいな・・・のZ値・・・。
0341名前は開発中のものです。
2013/12/07(土) 23:37:06.18ID:S67lJe160342名前は開発中のものです。
2013/12/07(土) 23:48:13.94ID:v3FzTLwA0343名前は開発中のものです。
2013/12/07(土) 23:49:23.59ID:D+291R15まあRPGツクール使っとけ
0344名前は開発中のものです。
2013/12/08(日) 07:31:05.04ID:I2T1/et4でDxLibを利用してそれらが作れるか考えてから決めればいいんじゃないか
ただ何でもいいって考えなら上2つに同意
0345名前は開発中のものです。
2013/12/08(日) 08:23:02.45ID:r4S3bN2U0346名前は開発中のものです。
2013/12/08(日) 08:55:39.17ID:g/A4dshaアサシンクリード並みの町並みを作ると着地判定の負荷がとんでもないことになるよな
モートン順序?とか必須なのだろうか
0347名前は開発中のものです。
2013/12/08(日) 10:51:36.40ID:TtNRxB0r0348名前は開発中のものです。
2013/12/08(日) 11:01:43.93ID:RAN+U7xwウディタはそれなりに使えてます
ウディタで言うところのデータベースってのは
C言語では構造体にあたるって認識で合ってますか?
0349名前は開発中のものです。
2013/12/08(日) 15:03:18.69ID:fy1UUi3s0350名前は開発中のものです。
2013/12/08(日) 16:49:58.53ID:sgPZUlAIウディタ触った事無いけど、多分大分違うと思う
>>346
俺は論理マップと、接触判定用の荒い凸包メッシュで行ってる
0351名前は開発中のものです。
2013/12/09(月) 22:40:51.34ID:dPT1r96N1文字ずつ処理する場合に、そこだけをwhileでループさせたいんだ。
プラス、会話中はプレイヤーは動かせない、他の描画はそのままにしたいっていうのは
どうやって実装すればいいだろう。
全体のループの中で、メッセージのループを入れて、
メッセージ部分だけの描画を更新することって出来る?
0352名前は開発中のものです。
2013/12/09(月) 22:54:00.72ID:qdYgEstIスクリーンショットとってもいいし、描画範囲をメッセージ部分だけに狭めてもいいし。
0353名前は開発中のものです。
2013/12/09(月) 22:54:29.89ID:PslMchEl0354名前は開発中のものです。
2013/12/09(月) 23:07:35.51ID:dPT1r96Nただ、1文字ずつ表示するのは全体のループを繰り返さないと
やっぱり出来ないのかなーと思って。
main:
while(メインループ) {
// ステージの更新・描画
}
stage:
// 敵や人の更新
// プレイヤーの更新
// 敵の描画
// プレイヤーの描画
enamy:
update:
// ↑が押されたらtalkCnt
draw:
// talkCntがあればメッセージ表示処理
common
メッセージ表示処理:
DrawFormatString // ★ここだけをループして処理したい。
かなり抜粋したんですけど、メッセージ処理に文字列渡せば描画してくれることがしたいです。
0355名前は開発中のものです。
2013/12/09(月) 23:14:26.52ID:72A6Mvvd全体進行を管理するクラスなり処理って設計してないの?
要点はそこだと思うけど。
つまり稼働物とそれらの統括っていう立場をちゃんと考えて、そのクラスなりなんなりの間で
状態に関する指示と判断を交わすような構成にしとけば、何も悩むことなくなると思う。
0356名前は開発中のものです。
2013/12/09(月) 23:18:30.28ID:dPT1r96N全体進行を管理するクラスは作ってなかったです。
ステージや敵を管理するクラスは作ってるんですけど。
0357名前は開発中のものです。
2013/12/10(火) 03:56:10.79ID:Rm1FtPvP余裕があれば、関数化とかクラス化とかやったほうが良いだろうけど。
while(メインループ)
{
if(会話メッセージ表示フラグが真)
{
//会話メッセージの処理(メッセージ送りとか)
}
else
{
//プレイヤーの操作とか、敵の動きとか、当たり判定とか
}
//描画はまとめて行う
//ステージ表示
//プレイヤー表示
if(会話中フラグ)
{
//会話ウィンドウ表示;
}
}
0358名前は開発中のものです。
2013/12/10(火) 08:54:19.89ID:xfHn/lq9会話処理だけ別枠にしてるのね
俺はイベント処理の一つとして会話含めてる
3Dゲーだとプレイヤーのキーや敵のAIを止めつつモーションは再生しなきゃならんからそっちのがいいかな
0359名前は開発中のものです。
2013/12/11(水) 00:42:27.69ID:Te7odSVV参考にしてやってみたら、いい感じで行けました。ありがとう!
0360名前は開発中のものです。
2013/12/11(水) 14:35:30.27ID:C+nat2k/0361名前は開発中のものです。
2013/12/11(水) 14:48:24.47ID:QYTLFCQM0362名前は開発中のものです。
2013/12/11(水) 17:17:09.16ID:bvdOrKZ03dキャラクターの近くを電車が通る迫力のある演出したいんですけど
0363名前は開発中のものです。
2013/12/11(水) 17:28:03.28ID:DpvuGJEf0364名前は開発中のものです。
2013/12/11(水) 17:32:33.28ID:8n36Bn260365名前は開発中のものです。
2013/12/11(水) 17:39:16.41ID:8n36Bn26まあDXlibだけだとそのレベルが限界
DirectX 立体音響でぐぐればなんか見つかるんじゃないの
0366名前は開発中のものです。
2013/12/11(水) 19:39:45.01ID:RXr/HyOcDirectX9必携: 鎌田 茂雄 著
DiretXでのダイレクトサウンド3Dについて書かれている。
0367名前は開発中のものです。
2013/12/11(水) 19:57:12.57ID:QR5KqRdRhttp://code.msdn.microsoft.com/XAudio2-Win32-Samples-024b3933
0368名前は開発中のものです。
2013/12/11(水) 23:06:23.63ID:WLCmMknSただ関数リファレンスには乗っていませんが。
雑談掲示板の2013/02/17の作者様の書き込みで説明が書いてあります。
サンプルもここに
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=2998
0369名前は開発中のものです。
2013/12/12(木) 00:22:13.44ID:hEgLANPL0370名前は開発中のものです。
2013/12/12(木) 00:28:46.52ID:i9yHPU+F関数リファレンスに載ってない関数はたくさんあるよ
作者さんは結構ニッチなところまでやってくれるから
公式掲示板を検索したり、dxlib.hを検索するのがオススメ
0371名前は開発中のものです。
2013/12/12(木) 01:57:17.80ID:8KqFEAbV0372名前は開発中のものです。
2013/12/12(木) 13:25:30.42ID:H4wTjbYC使用するメモリーが半端ないと思うのですが、ループ外に書く方法を教えて下さい
0373名前は開発中のものです。
2013/12/12(木) 14:41:38.09ID:/PrCIZjb0374名前は開発中のものです。
2013/12/12(木) 14:53:38.70ID:M3EmYqgTおそらくあなたのプログラムロジックが間違っている。
あなたのコードをアップロードすれば、皆が調査するだろう
0375名前は開発中のものです。
2013/12/12(木) 15:09:02.21ID:19880CjL0376名前は開発中のものです。
2013/12/12(木) 15:14:16.02ID:7S87fbU10377名前は開発中のものです。
2013/12/12(木) 15:42:43.94ID:qxafXCV70378名前は開発中のものです。
2013/12/12(木) 15:43:17.48ID:8KqFEAbV>>375
あるいは画像を毎フレーム表示することで
メモリに積み重なっていくように思ってるか、そんなところか。
0379名前は開発中のものです。
2013/12/12(木) 15:44:14.18ID:nVXQxLWWアップロードしてみ
0380名前は開発中のものです。
2013/12/12(木) 16:49:58.47ID:no4EqIs0ソース?実行ファイル?
0381名前は開発中のものです。
2013/12/12(木) 16:56:50.80ID:tq9PW97E両方、ソースを見せたくなければ、実行ファイルだけでも良いが
とにかく、具体的でなければ、皆は助言のコメントできない
0382名前は開発中のものです。
2013/12/12(木) 17:09:38.49ID:no4EqIs0http://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()がゲーム本体のメインループを担当しています
最初は設計しっかりやったのですが、シングルトンとか使ってる上に
最近ちょっと急いで機能実装したのでスパゲッティになってると思います
0383名前は開発中のものです。
2013/12/12(木) 17:28:57.52ID:3Q4Y6Xv5Dxlibの文字描画ってコスト高いの?
1回描画とかだと何もないけど20越えた当たりからすごく重くなる
0384名前は開発中のものです。
2013/12/12(木) 18:38:28.92ID:LHOSBTMFですから、drawscreen的な背景表示関数をループ外で書く方法は
ありませんか?と問うてるのです。お願いします。
0385名前は開発中のものです。
2013/12/12(木) 18:40:35.77ID:LHOSBTMFですから、drawscreen的な背景表示関数をループ外で書く方法は
ありませんか?と問うてるのです。お願いします。
0386名前は開発中のものです。
2013/12/12(木) 18:42:49.04ID:qmVZLHGYつまり莫大なメモリを積んでいるから背景を全部一括でメモリに持ってみたいという話ではないのか
0387名前は開発中のものです。
2013/12/12(木) 18:47:31.71ID:/PrCIZjb0388名前は開発中のものです。
2013/12/12(木) 18:49:55.88ID:19880CjLフォント重いからねえ
レンダリングは外で済ましとくほうがいいよ
0389名前は開発中のものです。
2013/12/12(木) 18:50:08.22ID:LHOSBTMF何故ダメなのか聞いてるなら、その理由を言ってほしい
0390名前は開発中のものです。
2013/12/12(木) 18:54:25.74ID:19880CjL背景をバッファに転送してフリップってやってる?
0391名前は開発中のものです。
2013/12/12(木) 19:02:26.09ID:i9yHPU+Fそのあたりを自覚して質問時は丁寧な文章を書くことを心がければいいのに
解決のために最善の努力を行うべき立場の人間が
「半端ない」なんてぼかし言葉使うようじゃ社会じゃ誰も相手にしてくれないよ
0392名前は開発中のものです。
2013/12/12(木) 19:13:45.21ID:jPdshx4Aプロファイルかけてやろうと思ったがないから辞めた
0393名前は開発中のものです。
2013/12/12(木) 19:18:00.53ID:LHOSBTMF背景の画像をループごとにメモリに読み込んでいたら
膨大な量になるじゃん?ってことだよ
後俺高3だからタメ口でいいよな?趣味で作ってるわけだし
0394名前は開発中のものです。
2013/12/12(木) 19:23:18.30ID:OpLvR7oYループにはいる前に読み込むんだぜ
0395名前は開発中のものです。
2013/12/12(木) 19:27:54.19ID:dAEln+roソースコードをアップロードしろ。
あなたの専門用語が未熟だから、情報不足で回答することが出来ない。
0396名前は開発中のものです。
2013/12/12(木) 19:39:34.26ID:geC8VsuH背景云々の人とアップしたのは別人か
俄然読む気が上がったが画像類ってバラけてても気にならんのかね
0397名前は開発中のものです。
2013/12/12(木) 19:40:57.02ID:LHOSBTMFそのやり方を教えろ
>>395
だからループ内の最後にdrawscreen(test.jpg)って言ってるだろ
0398名前は開発中のものです。
2013/12/12(木) 19:48:00.66ID:7S87fbU1何故駄目なのかってのは、つまりコンピュータで動くアプリケーション、特にウィンドウ表示されるようなGUIのあるOSでのそれは、
どうやって見た目を更新して表示してるかとか、せめてその辺の基礎知識が無いと話にならないんだよ。
そしてその辺理解してるなら、そんなとんちんかんな問いが出るはず無いので、
みんな困ってるって事。
簡単に言えば、メインループの外で描画とかデタラメもいいとこって話。
で、さらになんでそんな重いのかってのは、そもそも考え方からおかしな作りしてるんだろう、って事。
0399名前は開発中のものです。
2013/12/12(木) 19:50:34.11ID:7S87fbU1やり方も何も、普通は画像ファイルをメモリにロードして、それをDIBとかで持っておいて、ループの中で必要に応じてDrawなりBitbltするだけだよ。
0400名前は開発中のものです。
2013/12/12(木) 19:50:57.16ID:LHOSBTMF背景は見た目更新する必要ないでしょう?
一緒なんだから
デタラメとかじゃなくて俺に分かるように説明しろ
そっちは慣れてるから知ってるかもしれないがこっちはまだ2年目だから
0401名前は開発中のものです。
2013/12/12(木) 19:51:54.65ID:dAEln+ro0402名前は開発中のものです。
2013/12/12(木) 19:53:00.27ID:LHOSBTMFコードで頼むわ
正し10行以内
300×300の真っ白の画像を常に表示するプログラム書いてくれ
0403名前は開発中のものです。
2013/12/12(木) 19:58:27.78ID:7S87fbU1なんで2年目のお前が命令口調で教えろとか言うんだバカタレ。
2chのレス程度の狭い文字数で、なんで見ず知らずの赤の他人のお前にこっちが苦労して丁寧に隅々まで話してやらなきゃいけないんだよ。
基礎すら自学自習も出来ないいい加減な怠け者にゃ無理だよ。向いてないからとっとと辞めろ。
…って言われないように、ここでも見て勉強して理解しろ。
http://wisdom.sakura.ne.jp/system/winapi/win32/index.html
キリが無いから。
0404名前は開発中のものです。
2013/12/12(木) 19:59:47.55ID:dAEln+ro1.キー入力の基本
キー入力の基本的なプログラムです。
キャラクターのグラフィックをキー入力で上下左右に
移動できるというものです。
このコードが、画像を読み込んで表示するコード
0405名前は開発中のものです。
2013/12/12(木) 19:59:48.61ID:LHOSBTMF言葉使い気を付けたほうがいいよ
そのURLは参考にするが…
でもwin32apiじゃん、俺はDXライブラリに興味があるのであって
他ライブラリは興味ないんだよ
0406名前は開発中のものです。
2013/12/12(木) 20:01:38.04ID:LHOSBTMFこのDrawGraphってのだよ
これ外に書けないの?
ループの中で毎回ドローしてていいの?
ドローってさ一回だけでしょ
0407名前は開発中のものです。
2013/12/12(木) 20:04:53.18ID:7S87fbU1言葉遣いに気を付けろってのはお前が言われなきゃいけない台詞だ馬鹿者。
そしてwin32はただのライブラリじゃなくて全ての大本だから、ぐだぐだ言わすにやれ。
せめて全部読んで意味を理解しろ。そこが話の本筋だ。
windows上で動いてるものは、DXライブラリだろうとなんだろうと、もっと言えばDirectXですらこいつが基幹として関わるんだよ。
普通のライブラリじゃないの。
0408名前は開発中のものです。
2013/12/12(木) 20:05:17.49ID:MI8wbavX0409名前は開発中のものです。
2013/12/12(木) 20:07:23.28ID:7S87fbU1少なくとも初期化が出来ないと意味を成さない。
ループの外で描画しても消える。
0410名前は開発中のものです。
2013/12/12(木) 20:10:56.11ID:LHOSBTMF何で消す必要あるの?消してまたドローするって
二度手間じゃない?というかループの回数が1万回なら
1万手間じゃないの?
0411名前は開発中のものです。
2013/12/12(木) 20:13:38.63ID:7S87fbU1だーかーらーそこのレベルで何で何で言うくらいなら、>>403 の先のリンク見ろっての。
普通は自分で考えて探して理解してくもんなのに、わざわざ貼ってもらったんだからとっとと見ろ。
特に描画関係の所を。
0412名前は開発中のものです。
2013/12/12(木) 20:16:59.84ID:dAEln+ro0413名前は開発中のものです。
2013/12/12(木) 20:17:04.39ID:7S87fbU10414名前は開発中のものです。
2013/12/12(木) 20:20:04.73ID:dAEln+ro画面の一部を書き直すよりも、画面全部を消して全部を書き直した方が高速なので、リフレッシュする。
0415名前は開発中のものです。
2013/12/12(木) 20:21:53.94ID:qmVZLHGY■ このスレッドは過去ログ倉庫に格納されています