DXライブラリ 総合スレッド その3
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものです。
2009/03/31(火) 01:14:36ID:IgyJcgapGUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリの詳細ついては
http://homepage2.nifty.com/natupaji/DxLib/
を参照して頂きたい。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
過去スレ:DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
0853名前は開発中のものです。
2009/07/29(水) 15:05:31ID:KJv9oy2Nすまん
Javaの事>Javaのintegerクラスの事
で
0854名前は開発中のものです。
2009/07/29(水) 15:05:32ID:B4ng0ZvnむしろJavaのほうがクラスとプリミティブ型の間に明確な振る舞いの違いがある
intをクラスの一種(正しくは構造体)として扱うのは.NETだな(C#やVB.NET)
0855名前は開発中のものです。
2009/07/29(水) 15:09:10ID:cAIJJmev0856名前は開発中のものです。
2009/07/29(水) 15:12:55ID:p52lIH/WC++では「intにもコンストラクタとデストラクタがある」ってのを間違えて覚えてたみたい……
恥ずかしい///
0857名前は開発中のものです。
2009/07/29(水) 18:42:39ID:PJW2UirX俺、それさえも途中で投げたんだが
0858名前は開発中のものです。
2009/07/29(水) 19:09:50ID:QQ6cQOKXまてまてまて。流石にそれは話にならんぞ。
料理が出来ないって人に、
「出汁とかその辺無視してもいいから、とりあえずお味噌汁から作ってみようか」
ってアドバイスして、無理って言われたようなもの。
0859名前は開発中のものです。
2009/07/29(水) 20:04:55ID:DQFan6Z4爆発とか衝撃波みたいなエフェクトを管理するクラスを作ったのよ
メンバ的にはコンストラクタとデストラクタと描画中かどうかのフラグ管理と実際に描画する関数といった具合
コンストラクタでエフェクト用の画像をメモリに読み込んでるんだけど
このクラスのオブジェクトを作る度にロードされるのが気持ち悪くてしかたない
画像リソースを読むところだけ外に出せないだろうか
0860名前は開発中のものです。
2009/07/29(水) 20:14:58ID:p52lIH/Wコンストラクタでクラス内の変数に代入すればいいんじゃないの?
グラフィックハンドルってただの数値だし
0861名前は開発中のものです。
2009/07/29(水) 20:29:24ID:RdHjB4sCクラスBのコンストラクタでそのグラフィックハンドルを得るようにした場合、
どちらのコンストラクタが先に呼び出されるか分かりませんが問題ないですか
0862名前は開発中のものです。
2009/07/29(水) 20:33:36ID:tcSJ+b5u0863名前は開発中のものです。
2009/07/29(水) 20:49:35ID:vU/WuoP5Image *image = new Image("effect.png");
// 複数のインスタンスでハンドルを使いまわす
Effect *explode1 = new Effect(image->handle);
Effect *explode2 = new Effect(image->handle);
0864名前は開発中のものです。
2009/07/29(水) 21:21:10ID:sFXJxN650865名前は開発中のものです。
2009/07/29(水) 21:31:15ID:cAIJJmev0866名前は開発中のものです。
2009/07/29(水) 22:04:56ID:oi3ivzjY0867名前は開発中のものです。
2009/07/29(水) 23:32:20ID:IM9p+Dbmそっからオブジェクトクラスに渡すのはそのハンドルのポインタにしてる
そうすれば途中でウィン→フルに変えるときとかもそのメインの画像読み込みメソッド呼び直すだけで済む
0868名前は開発中のものです。
2009/07/30(木) 12:04:22ID:OvoMaJfI0869名前は開発中のものです。
2009/07/30(木) 12:18:43ID:OvoMaJfIむしろグローバルでハンドラを作れってことか
再利用性が皆無になるが
0870名前は開発中のものです。
2009/07/30(木) 13:34:41ID:9rAtPdyTそのステージで必要ならshared_ptrで読み込む
エフェクトを実際に使う箇所ではそのshared_ptrをコピーして使う
ステージを通して読み込みは1回だけで、コピーもshared_ptrのコピーだけですむから軽い
しかもステージが終わったら勝手に安全に開放される
何よりコードがすごい簡単で見やすくなる
ってじっちゃがいってたけど、俺GUIのゲームまだ作ったこと無いからわからねーわ
0871名前は開発中のものです。
2009/07/30(木) 22:13:59ID:650NzX62class ImagePool : noncopyable {
typedef shared_ptr<Image> ImageSP;
typedef unordered_map< wstring, ImageSP > ImageHash;
ImageHash ih_;
public:
ImageSP get( wstring name ) {
ImageHash::iterator it = ih_.find(name);
if ( it == ImageHash.end() ) {
it = ( ih_.insert( make_pair( name, ImageSP( new Image(name) ) ) ) ).first;
}
return it->second;
}
void clear() { ih_.clear(); }
};
みたいな感じのも書きたくなるな。パフォーマンスどうなるかはシラネ。
0872名前は開発中のものです。
2009/07/30(木) 22:20:25ID:650NzX62ステージ始まってるのにいちいち止まってたらうぜーし。
0873名前は開発中のものです。
2009/07/30(木) 22:20:35ID:hh3V9W8Kそんなもんにパフォーマンスもクソもあるかよ
0874名前は開発中のものです。
2009/07/30(木) 22:24:47ID:650NzX62まぁhash検索のとこが重いだけだから、何度も何度も何度も何度もshared_ptr拾い直す
ようなアホなことをしなきゃ問題無いだろうけど
つーかぶっちゃけ超絶やっつけだから先に言い訳で書いた>パフォ
0875名前は開発中のものです。
2009/08/01(土) 14:00:04ID:QXWHJ91E{
private:
int x,y,kasokudo,flag,type,r,g,b,xt,yt;
int static swgraph,slgraph,slgraph2,slgraph3,vcgraph,ptgraph,ptgraph2;
double angle,timer,spread;
public:
effect(){}
Load_resorce()
(中略)
~effect(){}
};
int effect::swgraph=0;
int effect::slgraph=0;
int effect::slgraph2=0;
int effect::slgraph3=0;
int effect::vcgraph=0;
int effect::ptgraph=0;
int effect::ptgraph2=0;
結局こんな解決に落ち着いたよ ありがとう
無理に外へ出さないでヘッダと画像ファイルだけ移植すれば使いまわせる方がいいかなと
画像ロードするメソッドを1回だけ呼ぶようにしてスタティックなハンドラへぬっこむ感じで
0876名前は開発中のものです。
2009/08/01(土) 14:00:25ID:Qfg9axiN0877名前は開発中のものです。
2009/08/01(土) 14:02:27ID:QXWHJ91E呼びなおすようにはしてる
0878名前は開発中のものです。
2009/08/01(土) 14:09:47ID:hsxXyy+hでもそういうことしだすと何のためにDXライブラリ使ってるのかいまいち分からなくなってくる
どうせラップするんだから中身は別に複雑でもいいよねみたいな
0879名前は開発中のものです。
2009/08/01(土) 14:37:35ID:fM5CMo54グラフィックを読み込んだ時にエラーだと-1が返ってくるそうだから、
グラフィックハンドルに-1はありえないって事で
各グラフィックハンドルの初期値は-1にしておいて、
-1でないやつだけを読み直すとかやってるな。
0880名前は開発中のものです。
2009/08/01(土) 17:19:13ID:Qfg9axiNあるいは、右上の×印をクリックできないようにする方法はありますかね?
0881名前は開発中のものです。
2009/08/01(土) 18:11:57ID:XBQ0j9Rg0882名前は開発中のものです。
2009/08/01(土) 18:13:18ID:fM5CMo540883名前は開発中のものです。
2009/08/01(土) 18:23:08ID:XBQ0j9Rg0884名前は開発中のものです。
2009/08/01(土) 18:23:30ID:M1rtP1+j0885名前は開発中のものです。
2009/08/01(土) 18:31:27ID:Qfg9axiNなんとかなりそうです
0886名前は開発中のものです。
2009/08/01(土) 18:49:30ID:XBQ0j9Rg真面目に読んでて途中からワロタ
0887名前は開発中のものです。
2009/08/01(土) 22:58:32ID:Qfg9axiN0888名前は開発中のものです。
2009/08/02(日) 04:05:26ID:ioGay+hN0889名前は開発中のものです。
2009/08/02(日) 13:21:29ID:raZxXOJpだいたいほかの関数だと成功:0、エラー:-1を返してるじゃないですか?
そいうのがこれにも無いのかなとおもって
0890名前は開発中のものです。
2009/08/02(日) 15:42:36ID:kM+dLyLXでも一応DxLibは関数の共通規約が-1=エラーぽいから-1だけ特別扱いでいいと思うよ
0891名前は開発中のものです。
2009/08/02(日) 15:47:58ID:VhKHrAIb0892名前は開発中のものです。
2009/08/02(日) 18:18:51ID:kM+dLyLXドキュメントに載ってない関数だから知らないんだけど
ソース見る気はしないし
0893名前は開発中のものです。
2009/08/03(月) 13:33:57ID:Bkg1TOoKファイルから読み込み複合化した色情報を配列にセット
→MakeARGB8ColorSoftImageなどでSoftImageのメモリ確保
→DrawPixelSoftImageなどで配列からSoftImageに書き込む
→CreateGraphFromSoftImageなどでグラフィックハンドルを作成
→DeleteSoftImageでメモリ開放
→DrawGraphとかで描画
でおk?
0894名前は開発中のものです。
2009/08/03(月) 18:31:28ID:Iq3WkgiH開放に成功しないんだよなぁ……
仕様上プログラムが終了すると開放されるみたいだし、大丈夫なのかなコレ
0895894
2009/08/03(月) 18:43:55ID:Iq3WkgiHこめんなさい
0896名前は開発中のものです。
2009/08/04(火) 01:23:43ID:zuu4zu8S微妙にグローバルなのが邪魔くさいんだが、Dxライブラリのソースをまるっと書き換えるしかない?
0897名前は開発中のものです。
2009/08/04(火) 01:44:29ID:HZG+0EA+とりあえずCだけ独学してすぐにDirectX見て
挫折した自分には今更ながら、ピッタリじゃないか。
実際の所はオブジェクトで書いていけないと、ツラいの?
0898名前は開発中のものです。
2009/08/04(火) 02:36:14ID:I3xbLsIe俺はオブジェクトが何かも知らないが
DXライブラリのおかげでゲームは作れてる。
0899名前は開発中のものです。
2009/08/04(火) 03:09:27ID:2NLtwfy50900名前は開発中のものです。
2009/08/04(火) 06:22:55ID:6mk+vC8Fあると便利
0901名前は開発中のものです。
2009/08/04(火) 07:58:54ID:jjYfmP92画像を読み直すだけでは駄目なのか
0902名前は開発中のものです。
2009/08/04(火) 08:02:04ID:jjYfmP92SetDrawScreen( DX_SCREEN_BACK ) ;死直さないと駄目なのか
0903名前は開発中のものです。
2009/08/04(火) 10:32:21ID:sPOvaCTTちょっと勉強すればいいだけのことを避けて
ずいぶんと無駄に自分の幅を狭めてると思わない?
0904名前は開発中のものです。
2009/08/04(火) 17:23:09ID:gMr+p3zp0905名前は開発中のものです。
2009/08/04(火) 17:27:28ID:xk/uaGqeラッパーというか、あのまんまじゃゲーム作りに面倒だから、
あれにもうちょっと色々と処理類を追加して、作りやすくはしてる。
0906名前は開発中のものです。
2009/08/04(火) 17:27:59ID:zuu4zu8S0907名前は開発中のものです。
2009/08/04(火) 19:53:27ID:sPOvaCTTさすがにこんなラッパーが必要になるようなら他のC++用のライブラリ使った方がいいと思うよ
0908名前は開発中のものです。
2009/08/04(火) 20:01:54ID:vP8Ikyop0909名前は開発中のものです。
2009/08/04(火) 20:43:25ID:ODeu4gp10910名前は開発中のものです。
2009/08/04(火) 20:48:39ID:YerTetmP0911名前は開発中のものです。
2009/08/04(火) 21:06:21ID:nYiQO+FG0912名前は開発中のものです。
2009/08/04(火) 22:48:47ID:tCn5IwcP0913名前は開発中のものです。
2009/08/04(火) 22:57:08ID:ODeu4gp10914名前は開発中のものです。
2009/08/04(火) 23:06:20ID:l5hPySed0915名前は開発中のものです。
2009/08/05(水) 00:19:33ID:SP3G2Rznは、その才能を別のところに生かすべきだったと思う
ところで、あえてゲームのジャンルを指定せずに聞くが
ChangeFontType( この辺とか ) ;
ChangeFont( "この辺て" ) ;
何入れてる?
ChangeFontType( DX_FONTTYPE_ANTIALIASING_EDGE ) ;
ChangeFont( "MS P明朝" ) ;
とかだと、どうにも汚い
メイリオとかオーサカつかえりゃいいんだろうけど
0916名前は開発中のものです。
2009/08/05(水) 01:41:03ID:6IxCn2Gg書いたらCPU使用率が20%超えてるんだけどこんなもん?WaitTimer(10);は入れてます。
0917名前は開発中のものです。
2009/08/05(水) 02:13:38ID:tpv/Q7sN>>757使ってBDF M+やVL Gothic使うと汚くはないしライセンス的なものもきれいで好きです
0918名前は開発中のものです。
2009/08/05(水) 02:27:07ID:uKOy3PVlそんなものじゃない?自分の環境でも、だいたい20%前後で推移してるし。
ScreenFlipには、アイドリングループもやってるような事を>>70-95当りに書いてるし
きっと大体そんな感触。
だから、多少負荷を掛けたループを入れても、いきなり100%とかにはならないし。
0919名前は開発中のものです。
2009/08/05(水) 05:21:50ID:Nty2bj+rどっちの方が処理速度が速い?
管:それはおそらくオリジナルのゲームになるでしょう。
しかしそれは仕方ありません。DXライブラリは DirectX を意識しないでプログラムを
組めるように出来ているので、どうしても DirectX を意識して、DirectX にとって最適な
方法を念頭にいれて作られたソフトには敵いません。
ですが、それは DirectX と密接に関わらないと出来ない表現や処理が出きるか出来
ないか程度の違いで、処理速度的には目を凝らさない限りわからない程の差だと
思います。
これみて思ったが前に
hot スープ なんとかってベーシックみたいなやつ使ったことあるけど
あの処理の遅さには萎えた
0920名前は開発中のものです。
2009/08/05(水) 06:49:21ID:pLHczCar0921名前は開発中のものです。
2009/08/05(水) 07:07:46ID:m9BmQxuD0922名前は開発中のものです。
2009/08/05(水) 07:11:20ID:b5+ghAk/過去にGameMaker使ってた俺はC++に乗り換えて処理の早さに感動した
弾10000個出しても一切処理落ちなしとか
0923名前は開発中のものです。
2009/08/05(水) 09:28:27ID:6IxCn2Gg0924名前は開発中のものです。
2009/08/05(水) 09:35:09ID:b5+ghAk/ゲームによる
PS2の後期作品は常に100%近いものも多いと思う
0925名前は開発中のものです。
2009/08/05(水) 10:03:45ID:BDIkZ1Lk・XP以上でやれ
・メイリオ自分で落とせ
と割り切った動作環境なら使えなくもない
まぁ、そこまでするより>>917がベターな気はする
0926名前は開発中のものです。
2009/08/05(水) 13:28:59ID:rAOud/k3初期化に関してはDXライブラリの方が遅い
なぜなら使わない機能まで実装してしまうから
初期化のプロセスさえ我慢してしまえば、DirectXを使っている以上、ほとんど処理に差は出ない
0927名前は開発中のものです。
2009/08/05(水) 13:40:07ID:b5+ghAk/初期化→モデル読み込み→表示ってプログラム組んでるけど
起動から表示まで1秒も掛からないぞ
0928名前は開発中のものです。
2009/08/05(水) 16:15:24ID:OhVzEwVo0929名前は開発中のものです。
2009/08/05(水) 20:39:22ID:QIPk2n9v0930名前は開発中のものです。
2009/08/05(水) 21:20:02ID:5Y+5L7IB0931名前は開発中のものです。
2009/08/05(水) 21:57:12ID:tpv/Q7sNもし直接DxLibのAPIになかったとしても、
最悪隠れAPIのSetHookWinProcを使っていけちゃうのであきらめずに頑張ってください
0932名前は開発中のものです。
2009/08/06(木) 00:09:50ID:HbTQ3knb0933名前は開発中のものです。
2009/08/06(木) 00:17:40ID:jDGBXq4e>>932
でもやっぱウィンドウのほうがやりやすいゲームとかあるよ
0934名前は開発中のものです。
2009/08/06(木) 15:04:25ID:jDGBXq4eGetGraphSizeしてエラーだったら無効なハンドル?
0935名前は開発中のものです。
2009/08/06(木) 15:39:23ID:8f5EjUmV0936名前は開発中のものです。
2009/08/07(金) 07:56:39ID:C0s8VGZeこれってファイル隠蔽に使えないかな
パスの指定の際にも.{87D62D94-71B3-4b9a-9489-5FE6850DC73E}とか
つけなきゃいけないけど
0937名前は開発中のものです。
2009/08/07(金) 09:16:54ID:XMny16vo・ユーザーから見たら普通に気持ち悪い
・コマンドプロンプトからコピー余裕でした
0938名前は開発中のものです。
2009/08/07(金) 09:40:07ID:iOeiMAXC0939名前は開発中のものです。
2009/08/07(金) 10:02:45ID:C0s8VGZe面白そうだったんだけど……
0940名前は開発中のものです。
2009/08/07(金) 10:10:30ID:CmW3m8K+0941名前は開発中のものです。
2009/08/07(金) 10:24:55ID:XMny16vo何をやっても安全じゃないから諦めが肝心。ネトゲの通信も同じ。
ちなみに銀行やネットショッピングなんかの暗号は別物で、「解読方法は理論的に
鯖にしか分からない(に等しい)」という仕様だから安全に使える。
ゲームの暗号化が脆弱なのは、クライアント側が解けなきゃ仕様上どうしようも
ないから。どう解くかを解析すればそれで終了。ただ、一般人には無理だから、
誰かがツールでも配らない限り一般人は見ることができません、ってだけ。
0942名前は開発中のものです。
2009/08/07(金) 10:35:31ID:6dDwwnG+0943名前は開発中のものです。
2009/08/07(金) 10:39:51ID:CmW3m8K+まあなんにしろ俺が自分で作るよりかは安全だろうな・・・
0944名前は開発中のものです。
2009/08/07(金) 10:49:59ID:XMny16vo可能性もあるけどな。
まぁどっちにしろ、本気出せばすぐ解けるから。市販ゲームのデータ抜き出しツール
なんてごろごろしてるだろ。商売でやっててもあんなもんだ。
要するに、そんな労力があれば他に割いた方がいい。
0945名前は開発中のものです。
2009/08/07(金) 10:50:21ID:d+3hvGJnそれこそネトゲでもない限りどうでもいいかとw
0946名前は開発中のものです。
2009/08/07(金) 11:05:54ID:6dDwwnG+適当に文字書き込むだけで要素全開放とかできちゃうと萎えるのは俺だけ?
0947名前は開発中のものです。
2009/08/07(金) 11:34:05ID:nv30ydBi0948名前は開発中のものです。
2009/08/07(金) 11:43:52ID:Qwqa7qWf0949名前は開発中のものです。
2009/08/07(金) 12:40:00ID:d+3hvGJnそんなのやるヤツの勝手だし。
それによって他人に迷惑かけるのでなければどうでもいい。
つーかテキストでセーブデータ作るなよw
0950名前は開発中のものです。
2009/08/07(金) 13:17:28ID:CmW3m8K+0951名前は開発中のものです。
2009/08/07(金) 13:25:06ID:6vUntQWV0952名前は開発中のものです。
2009/08/07(金) 20:59:10ID:V6Jr42BUレス数が950を超えています。1000を超えると書き込みができなくなります。