DXライブラリ 総合スレッド その6
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2010/02/25(木) 23:29:14ID:hEXp+gEaGUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
【公式】
http://homepage2.nifty.com/natupaji/DxLib/
【過去スレ】
DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/
DXライブラリ 総合スレッド その4
http://pc11.2ch.net/test/read.cgi/gamedev/1249822550/
DXライブラリ 総合スレッド その5
http://pc11.2ch.net/test/read.cgi/gamedev/1259912953/
0529名前は開発中のものです。
2010/05/27(木) 16:40:37ID:0uOPF2xa0530名前は開発中のものです。
2010/05/27(木) 16:51:09ID:4idKX03l外付けHDDにバックアップ。
0531名前は開発中のものです。
2010/05/27(木) 16:55:37ID:izCF3c1y合わせ、外付けHDD買ってみます。
ショックでスレチな内容書いてしまった。すまんこ。
みんなはこうならないようにバックアップしっかり取っておくんだぞ!
0532名前は開発中のものです。
2010/05/27(木) 16:58:37ID:eu9xfxlK両方が同時に壊れる事は滅多にないからね。
0533名前は開発中のものです。
2010/05/27(木) 17:29:14ID:0cLM2iQp0534名前は開発中のものです。
2010/05/27(木) 17:53:06ID:rpE/Stdj0535名前は開発中のものです。
2010/05/27(木) 18:21:34ID:fntJMOdMワロタ
0536名前は開発中のものです。
2010/05/27(木) 18:58:21ID:KVPnD1mSただ、これだと誤操作やウイルスに弱いな
0537名前は開発中のものです。
2010/05/27(木) 22:32:31ID:eFUxWmfy0538名前は開発中のものです。
2010/05/28(金) 00:51:29ID:5ig+3eto0539名前は開発中のものです。
2010/05/31(月) 07:04:42ID:EEVGa8CT0540名前は開発中のものです。
2010/05/31(月) 17:21:09ID:+X5ECrbMFF1のミニゲームのあれ
0541名前は開発中のものです。
2010/05/31(月) 21:33:35ID:jddY7bT70542名前は開発中のものです。
2010/05/31(月) 21:55:45ID:3wbd80760543名前は開発中のものです。
2010/06/01(火) 02:39:18ID:0HX/qXa80544名前は開発中のものです。
2010/06/01(火) 02:51:06ID:d5rKSHjI0545名前は開発中のものです。
2010/06/01(火) 03:22:23ID:P3j94Wkoそこまでは内部的に処理させておいて、プレイヤーにはそこからスタートさせるんだよ。
0546名前は開発中のものです。
2010/06/01(火) 03:23:35ID:lBdA6PAW確か、隣あってるパネルを1回交換すると、クリアできない並びになったような
0547名前は開発中のものです。
2010/06/01(火) 11:01:08ID:d1wBZ0vl0548名前は開発中のものです。
2010/06/01(火) 21:55:07ID:RzMPDL/mpass:dxlib
>>540のゲーム作ってみました。
よろしくお願いします。
0549名前は開発中のものです。
2010/06/01(火) 23:10:29ID:8kyobxgs0550名前は開発中のものです。
2010/06/02(水) 00:06:32ID:Rya8rRs+0551名前は開発中のものです。
2010/06/02(水) 06:05:44ID:VXh00IpL0552名前は開発中のものです。
2010/06/03(木) 03:32:23ID:1PpPsQo7ステータスバーに関してはライブラリと相性が悪いみたいだね
http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=491
どうにかして作ることはできないもんなのか
できた人いるー?教えてください
0553名前は開発中のものです。
2010/06/03(木) 05:27:29ID:Ge5JFD2K引数のPanPal(音量比率)に10000と-10000を入れても変化が分からん。
もしかするとPC環境やサウンドファイルによって変わるのかもしれないが…。
0554553
2010/06/03(木) 06:20:35ID:Ge5JFD2Kすまんかった。
0555名前は開発中のものです。
2010/06/03(木) 06:26:56ID:YMXxSar8何で躓いてたか書くと、他の人も助かるかも
0556名前は開発中のものです。
2010/06/03(木) 07:43:10ID:Ge5JFD2KDXライブラリのバージョンは3.02d。
(1) サウンドファイルによってパンが設定できない場合がある。(モノラル音声?)
(2) SetPanSoundMemとSetNextPlayPanSoundMemが、ともに直後の再生のみに有効
(1)は仕様かもしれない。
そんなに問題ないと思うけど、ユーザがサウンドファイルを指定するようなプログラムなだと不便かも。
流石に(2)はバグかなあ。
0557名前は開発中のものです。
2010/06/03(木) 10:24:52ID:k5RaBEyJ驚くほどのスピードで対応、バグ修正してくれるから。
0558名前は開発中のものです。
2010/06/03(木) 18:33:03ID:Ge5JFD2K0559名前は開発中のものです。
2010/06/03(木) 20:37:41ID:GB8alwKP0560名前は開発中のものです。
2010/06/04(金) 02:41:19ID:KDddOKQaありがとう
0561名前は開発中のものです。
2010/06/07(月) 15:27:26ID:A0pl8E9h自分の場合、グローバルにするのが気持ち悪くて管理クラス作ってたりするんだけど……
0562名前は開発中のものです。
2010/06/07(月) 15:50:38ID:vPi+VaEG0563名前は開発中のものです。
2010/06/07(月) 16:49:26ID:4KPscOCj各シーンクラスに持たせるってのはどう?
0564名前は開発中のものです。
2010/06/07(月) 16:57:25ID:A0pl8E9h今組んでるのがそんな感じ
やっぱりそういうのが普通なのかな
0565563
2010/06/07(月) 17:14:55ID:4KPscOCj0566名前は開発中のものです。
2010/06/07(月) 17:55:05ID:EN4DZkAk0567名前は開発中のものです。
2010/06/07(月) 18:50:57ID:4KPscOCj(1)
例えば、青空の背景で真っ赤な炎を爆発させたいとき、どうしてる?
画像そのものの作り方次第で、ある程度は何とかなるとは思うんだけど、
通常描画やαブレンドだと味気ないし、加算合成だと紫色の炎になっちゃう。
(2)
レーザーとか稲妻などの光を、より眩しくなるように表現するコツってある?
凄く抽象的な表現で申し訳ない。
単に加算合成しても、眩しいっていう印象からは程遠いんだ。
DXライブラリというより、画像の作り方かもしれない。
0568名前は開発中のものです。
2010/06/07(月) 18:59:21ID:Ia/YH+my俺の場合は参考にならんだろうが、
1)普通にドット絵で描いてる。ブレンド等もせずにそのまま。
もちろん今風じゃないし、さほど上手い絵でもないけど、気にしない。
2)上と同じく、普通に白を使うだけ。
てかまぶしい画面効果なんて自分でやっててウザいだけなので、やろうとは思わない。
むしろ目に優しい配色とか考える方がよっぽどいい。
0569名前は開発中のものです。
2010/06/07(月) 22:13:31ID:DZ+Xq8Xt(2)加算合成で2回同じ画像を描画
ってのはどう?
0570名前は開発中のものです。
2010/06/07(月) 22:40:07ID:ZAQ/nx5O1. 通常描画でいいんじゃね
2. 普通に描画した後にボカして加算合成
0571567
2010/06/07(月) 22:57:26ID:4KPscOCj>>568
STGは全然分からないけど、確かにそういうの詳しそうだ。
(1)は、爆発のドット絵を上手く作れば、スーファミっぽく綺麗にはなるね。
ゲームによっては下手に加算合成せずに、そっちのほうが良いかも。
(2)は、さすがに連発はしないけど、ピンポイントで使うと印象深いかなー?くらい。
>>569
やってみたけど、グラデーション部分がカクカクするだけだった(´・ω・`)
これはこれで面白いエフェクトだけど。
>>560
(2)について、ボカすっていうのが結構良さそう。
試しに画像の時点でボカしを入れてみたんだけど、結構それっぽい。
0572名前は開発中のものです。
2010/06/07(月) 23:26:07ID:DZ+Xq8Xtここ参考になるんじゃね?
ttp://marupeke296.com/DXG_No14_BrightnessExpression.html
0573名前は開発中のものです。
2010/06/07(月) 23:38:23ID:4KPscOCj0574名前は開発中のものです。
2010/06/08(火) 03:23:41ID:XU0SY8KK0575名前は開発中のものです。
2010/06/08(火) 03:30:54ID:7IaY+r1Iでもそれが目的だからそれでいいんだよ
0576名前は開発中のものです。
2010/06/08(火) 18:03:50ID:WqzuLKVT俺未だにその辺のデザインパターンがよく分からん。
関係する部分だけでいいからソース見せて貰えないだろうか。
シングルトン自体はわかるんだが、でも実際それをどこでどう使えばいいかってわからんのよな。
数学の何らかの公式は覚えてるし解けるが、じゃあその公式をどういう部分で使えば有効なのかってのがわからないみたいな。
0577名前は開発中のものです。
2010/06/08(火) 18:27:04ID:apN5BnaMデザインパターン本には使い方なども書いてあるだろう。
0578名前は開発中のものです。
2010/06/08(火) 19:16:55ID:LVU9CPSVクラスとか必要なくね
0579名前は開発中のものです。
2010/06/08(火) 19:49:28ID:gCQeYNBi0580名前は開発中のものです。
2010/06/08(火) 20:06:39ID:apN5BnaMなしでいけるなら、使わなくて問題ないよ
小さなソフトを作る場合、便利だと思った機能だけ使うのが賢いと思う
0581名前は開発中のものです。
2010/06/08(火) 20:08:30ID:XU0SY8KK0582名前は開発中のものです。
2010/06/09(水) 03:58:21ID:COgxenTn覚えておきたい技術」に実例と解説がなかったけ。
後者については、たしかゲーム板の参考の書籍の
過去ログで著者本人が意図を解説してくれてたような。
>クラスとか必要なくね
俺はないと無理だ。
クラスないと、複数の種類の敵とかを作っても
敵全部->Move();
敵全部->Draw();
とか一括でやりにくいし、コンストラクタやデストラクタとかないと困る。
昔のSTGみたいにオブジェクトプールと関数ポインタでタスクシステム(
この言葉の定義は別として)を、作っても似たことはできるかもしれないけど。
0583名前は開発中のものです。
2010/06/09(水) 09:57:55ID:0uRXgvrI敵全部ってのはどうやって指定するの?
クラス使ってない自分の場合それぞれforループで敵情報の構造体の数分回して、
EnemyMove()とか関数に飛ばして基本行動取ったあと行動パターンIDのswitchで固有行動取らせてる
Drawもしかり
敵の作成と削除は専用の関数SetEnemy、DeleteEnemyを用意してあげて、
空いてる敵ナンバーを配列から検索→その番号の構造体に基本情報を代入など一括で行ってる
0584名前は開発中のものです。
2010/06/09(水) 10:14:18ID:VCMaahjgクラスとか、ググれば解説載ってるところはたくさんあるんだけど、
じゃあそれをゲームにどう活かすのか、となるとさっぱりなんだよね。
0585名前は開発中のものです。
2010/06/09(水) 10:23:51ID:UtwkxiERenemy.push_back(new EnemyA() );
enemy.push_back(new EnemyB() );
enemy.push_back(new EnemyC() );
for(int i=0; i < enemy.size(); i++)
{
enemy[i].Move();
enemy[i].Draw();
}
とか、そういう。(上記だとリークしやすいから自作リスト作ってるけど)
初心者ならこういう設計でまず作ってみれば?
0586名前は開発中のものです。
2010/06/09(水) 10:30:52ID:0uRXgvrIvector遅くね
自分だとその場合EnemyMove(i);とか指定するんだけどどうもメリットが見えてこないな
自分はActionScript2,3からプログラミング入ったタチなんでオブジェクト指向は使えることは使えるが、いまいちそれを便利に使いこなせるかというと謎
0587名前は開発中のものです。
2010/06/09(水) 10:36:44ID:zbUE9j/cどうやればいいの?
0588名前は開発中のものです。
2010/06/09(水) 10:47:02ID:UtwkxiERvectorが遅いとかどこの組み込み(ry
コピーのオーバーヘッド防ぐ為のポインタの動的配列なんだがぬ。まあ、あくまで擬似コードだけど。
一応解説しておくと、EnemyA,B,CはUnitクラスから派生したサブクラスで動作から何からが違う。
そういうのを一括で扱えるポリモーフィズムとかが便利なんだよ。
まあ実際、ある程度の規模作らないと実感出来ないだろうけども。
0589名前は開発中のものです。
2010/06/09(水) 11:08:26ID:0uRXgvrIつまりswitchなどしなくてもあらかじめ共有事項を継承した個別オブジェクトが作れるのでそれを実行するだけ、と
なんとなく便利な点は見えてきた ありがとう
0590名前は開発中のものです。
2010/06/09(水) 11:19:01ID:UtwkxiERhttp://www1.axfc.net/uploader/Sc/so/122025
VC++使ってるならコンパイル通るんじゃね・・・
ちなみに、固有IDで識別してswitchとかifで動作を分けるって実装はアリだけど、
可読性とバグり場所の割り出しが比較的大変になるからあんまオススメはしない。
0591名前は開発中のものです。
2010/06/09(水) 11:30:52ID:LKXhX8sr参考にしてみるよ
0592名前は開発中のものです。
2010/06/09(水) 11:52:00ID:0uRXgvrI見てみたけどなかなか良いね ソースもすっきりしてるし
enemy.push_back(new EnemyA(0,0));
ここでEnemyAってのをIDで指定はできる?
敵の種類を全部IDで管理してるのでそれをそのまま使えるととても楽
まあswitchしてもいいけど
0593名前は開発中のものです。
2010/06/09(水) 12:07:09ID:VCMaahjgちなみに俺はswitchで全部やってるけど、キャラが増えるごとにID追加したりswitchの振り分け増やしたりと結構面倒です。
つっても2,3箇所追加する程度だし、追加忘れのバグなんてすぐ解消できるから大して問題にはならないんだけど。
0594名前は開発中のものです。
2010/06/09(水) 15:16:42ID:48SBsXu90595名前は開発中のものです。
2010/06/09(水) 15:18:06ID:48SBsXu90596名前は開発中のものです。
2010/06/09(水) 15:23:47ID:HVkgofce変な書き方をして失敗してなければ、そんなことはないと思うんだが
0597名前は開発中のものです。
2010/06/09(水) 15:32:51ID:48SBsXu9その中で弾をコンテナに詰め込もうとするとイテレータの指し先がバグってうまくいかない。
一旦弾オブジェクトを保存しといてfor文が終わった後で追加しないとうまくいかない。
0598名前は開発中のものです。
2010/06/09(水) 16:16:29ID:HVkgofceそれコンパイラは何?
他のコンパイラでもそんなんか、試してみたら?
0599名前は開発中のものです。
2010/06/09(水) 16:57:18ID:a8C7ZegT0600名前は開発中のものです。
2010/06/09(水) 17:27:44ID:php2S9h0自分も横d
なんという俺得話題。
自分も教科書的には使い方を知っていても
いまひとつ便利なのが実感できなかったから勉強になる
0601名前は開発中のものです。
2010/06/09(水) 17:38:14ID:s2ZVMfG6で、結局は機能毎にクラスを作り始めるんだよな。
0602名前は開発中のものです。
2010/06/09(水) 17:46:14ID:UtwkxiER0603名前は開発中のものです。
2010/06/09(水) 17:47:59ID:odCY/DAb0604名前は開発中のものです。
2010/06/09(水) 18:05:14ID:UtwkxiERidを指定して生成したいって言うなら、ファクトリクラス作って、
そこにid入れたら該当のが帰ってくるようにすればいいんじゃね
こんなん。
http://codepad.org/jFUfjGCL
違う意味だったらすまんね。
0605名前は開発中のものです。
2010/06/09(水) 18:09:07ID:0uRXgvrIなるほど。それで行けそうだ、ありがとう
あともう一つだけスレチ全開で聞きたいんだが、オブジェクトの削除はどうするのが定石?
this.deleteとかやると消えるけど元のリストからは除外されないからアクセス違反になるし、
そもそもshared_ptr使うならdelete要らんはずだし
削除フラグたったら-1とか戻り値にしてmainのほうでリストから除外してあげるのかな
0606名前は開発中のものです。
2010/06/09(水) 18:10:48ID:Saa6zN7x0607名前は開発中のものです。
2010/06/09(水) 18:14:06ID:UtwkxiER俺は自前でユニット管理用リストクラス作ったけど。
0608名前は開発中のものです。
2010/06/09(水) 19:05:20ID:bOQzSTFfC++はライブラリが大きすぎて組み込みでは使えません(キリ
とか、ざまみろって顔して言ってやった。
でも今じゃCだけでプログラミングとか面倒で無理。
プログラミング自体が面倒になってきたけど(´・ω・`)
もう年だな。
0609名前は開発中のものです。
2010/06/09(水) 19:18:14ID:UtwkxiER暫くコード書いてなかったからリハビリのつもりで書いた程度のもんだけど、
http://www1.axfc.net/uploader/Sc/so/122080
こんな方式とか。
ループ回すのがロスだと感じるなら一本化してもいいんじゃね。
たぶんリークしてないけど、チェックはしてないからメモリリーク起こってたらすまんね。
shared_ptrの関係でTR1使ってるから、VC++2010じゃないなら追加パック入れる必要あるかもね。
リーク上等で、生ポインタに書き換えても動くとおもうよ。
0610名前は開発中のものです。
2010/06/09(水) 21:20:21ID:OHlI6Jwzみんなはこの辺どうしてる?
0611名前は開発中のものです。
2010/06/09(水) 21:43:29ID:HVkgofce1回だけ呼ばれる描画で描画順位リストを参照しつつ全部を順位通りに描画したら?
関数名をDraw以外にした方がいいと思うけど
0612名前は開発中のものです。
2010/06/09(水) 21:47:30ID:7j2XNTLjで、描画したい順でIDを分ける。
細かく分ける必要なかったし、
リストから引っ張り出したい場合も少なかったから特に問題なかった。
0613名前は開発中のものです。
2010/06/09(水) 23:26:50ID:EBh2wsCf描画順はそいつが持ってる
0614名前は開発中のものです。
2010/06/10(木) 02:54:11ID:lXxTh4Vgもう少し詳しく頼む
0615名前は開発中のものです。
2010/06/10(木) 04:55:12ID:yWC+RkcU0616名前は開発中のものです。
2010/06/10(木) 11:03:41ID:+lUQKLj0俺は自機、自弾、敵、敵弾等とざっくりわける程度なのだが
0617名前は開発中のものです。
2010/06/10(木) 12:53:52ID:mSlqKyI5色々自由に指定できるようにしておくと、楽だったよ。
とくに SetDrawBlendMode で描画ブレンドモードを変更して、半透明とかさせたりする時
「描画順○番から○番までの画像を半透明にする」とか簡単に実装できて。
0618名前は開発中のものです。
2010/06/12(土) 17:52:17ID:7AGfNu8Rマウスの移動で、角度を計算して、カメラ方向をかえていたんですが
これだと
どんな方向にカメラが向いていても
x、y、zに関係なく、たとえばWを押したら、前に進めるような感じにできるか
思いつきません。
どうすればいいでしょうか
0619名前は開発中のものです。
2010/06/12(土) 18:31:54ID:Wt0Om7RQで前に進む時は 「プレイヤーキャラの向き」×前進スピード をキャラの位置に加算するだけ
0620名前は開発中のものです。
2010/06/12(土) 19:55:23ID:HLzayOcF0621名前は開発中のものです。
2010/06/13(日) 00:20:11ID:iwG7ZkIGhttp://pc12.2ch.net/test/read.cgi/tech/1274521960/478-480n
0622名前は開発中のものです。
2010/06/13(日) 00:49:53ID:6s0+7lHl0623名前は開発中のものです。
2010/06/13(日) 12:19:12ID:8D3RSbXg0624名前は開発中のものです。
2010/06/13(日) 13:01:49ID:PKCWUybs全部お前のマルチ&自演だろ、ボケ
0626名前は開発中のものです。
2010/06/13(日) 14:03:35ID:+Sk1kXdBの言うように
target.x=x*cos(atan2(m_move.x, 350.0f))-z*sin(atan2(m_move.x, 350.0f));
target.z=x*sin(atan2(m_move.x, 350.0f))+z*cos(atan2(m_move.x, 350.0f));
SetCameraPositionAndTarget_UpVecY( CameraPos, VGet(target.x ,target.y, target.z) ) ;
とやってみたんですけど
なかなかうまくいきません
なんか間違っていないでしょうか
0627名前は開発中のものです。
2010/06/13(日) 14:22:30ID:lDfgu/cO{
double px, py, pz;
duoble tx, ty, tz;
double len;
Position ret;
px=pos1.x;
py=pos1.y;
pz=pos1.z;
tx=pos2.x;
ty=pos2.y;
tz=pos2.z;
len = sqrt( pow((px - tx),2) + pow((py - ty),2) + pow((pz - ty),2) );
ret.x = ((tx-px)/len)*val;
ret.y = ((ty-py)/len)*val;
ret.z = ((tz-pz)/len)*val;
return( ret );
}
0628名前は開発中のものです。
2010/06/13(日) 15:06:05ID:lDfgu/cOobj.pos.x += moveVal.x;
obj.pos.y += moveVal.y;
obj.pos.z += moveVal.z;
■ このスレッドは過去ログ倉庫に格納されています