1 名前:名前は開発中のものです。 [2009/03/31(火) 01:14:36 ID:IgyJcgap] Cを習得した程度のスキルでも、 GUIのゲームを比較的容易に作成する事を可能にする、 「DXライブラリ」に関するスレッドです。 DXライブラリの詳細ついては homepage2.nifty.com/natupaji/DxLib/ を参照して頂きたい。 DXライブラリに関するテクニックなどの情報交換などを行う事で、 多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。 過去スレ:DXライブラリ 総合スレッド pc11.2ch.net/test/read.cgi/gamedev/1197468399/ DXライブラリ 総合スレッド 2008 pc11.2ch.net/test/read.cgi/gamedev/1224923873/
782 名前:名前は開発中のものです。 mailto:sage [2009/07/27(月) 00:16:38 ID:VenKtjMK] 俺は「これできるかな? ……できた。んじゃこれはできるかな……? よしできた」とかやってるうちに 肥大化してまとまらなくなってやめる。
783 名前:名前は開発中のものです。 mailto:sage [2009/07/27(月) 00:30:42 ID:aQ/IFL1X] 俺は「これできるかな? ……できない。んじゃこれはできるかな……? できない……」とかやってるうちに 肥大化することなく寝る。
784 名前:名前は開発中のものです。 [2009/07/27(月) 01:20:08 ID:VJq6W4rL] >>781-783 フイタwwwww
785 名前:名前は開発中のものです。 mailto:sage [2009/07/27(月) 01:49:38 ID:pfTBKVpb] >>781-783 がそれぞれ昔の俺、少し昔の俺、今の俺な件
786 名前:名前は開発中のものです。 mailto:sage [2009/07/27(月) 04:39:26 ID:GaH2TMCV] 昔はコードが汚いだとか構造が嫌だとかの細かいことが気にならなかった 今はゲームが完成しない
787 名前:名前は開発中のものです。 mailto:sage [2009/07/27(月) 04:44:35 ID:aJcGKYvD] 習作はできるが完成はできん
788 名前:名前は開発中のものです。 mailto:sage [2009/07/27(月) 08:01:02 ID:sP35fefq] > 「○ ○の作り方」という本を読んで「この本に××が足りない」と考え、 > そこで今度は××に冠する解説をよみ「これには△△が抜けている」という印象をもち、 > そしてなかなか自分のゲームが完成しない、というパターンに陥った人は少なくないでしょう。 > さまざまな技術書や解説書、入門書を読みつくし、最先端技術に精通しているはずなのに > 自作アプリケーションがほとんど作れないというのは、決して珍しくありません。
789 名前:名前は開発中のものです。 mailto:sage [2009/07/27(月) 08:53:03 ID:CBwVvngl] そういうのを「頭でっかち」というんだな。
790 名前:名前は開発中のものです。 mailto:sage [2009/07/27(月) 13:31:26 ID:1REfJ+es] どこの引用なんだ
791 名前:名前は開発中のものです。 mailto:sage [2009/07/27(月) 17:02:26 ID:cEG3tUqV] 本を読めば作れると考えるのが間違い
792 名前:名前は開発中のものです。 mailto:sage [2009/07/27(月) 21:15:32 ID:C0govEpu] 昔どっかのゲームクリエイターが「やってみるのが一番勉強になる」的なこと言ってたから 俺はそれを胸に頑張ったよ…。
793 名前:名前は開発中のものです。 mailto:sage [2009/07/27(月) 23:14:17 ID:aJcGKYvD] 男は度胸 何でも試してみるもんさ
794 名前:名前は開発中のものです。 mailto:sage [2009/07/27(月) 23:41:51 ID:1REfJ+es] 女は豊胸?
795 名前:名前は開発中のものです。 [2009/07/28(火) 02:18:15 ID:0RhUYUoP] 股だな
796 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 05:12:13 ID:uYQPfFdp] DXライブラリPortable、次のバージョン来ないかな 3Dポリゴン描画したいです……
797 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 12:23:42 ID:YL4nqTsX] そういやDX3Dってどれくらいできたのかな?
798 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 13:20:14 ID:aQj264s2] >>797 逃げたんじゃないか? 大学中退するやつだし
799 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 19:50:25 ID:lbcOkIrb] DX3DってD3DXと紛らわしいな。 3D描画をDXライブラリみたいに単純化するのは無理。3D描画のフレームワークは D3DXで十分。それ以上やるとライブラリの独自色が付く。 2DもD3DXSpriteで構わないし、ちょっと調べればテクスチャにαの付いた板ポリを D3DXで描画する方法はいくらでも出てくるけど。 DirectX6はDreamcast向け、DirectX8はXbox向けに作り直されてる訳で、そのまま でも十分行けるライブラリ。DXライブラリの最大の意義は、WinMainのすっきり感 だと思う。
800 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 20:50:59 ID:LTJXvZ7v] 本家の名前の紛らわしさに比べたら… DXライブラリでも使えよ!って言われて固有名詞だとは夢にも思わず なかなか存在に気付けなかった俺
801 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 20:52:30 ID:bkreYxYW] 3Dなんかいくら敷居を下げたところでDXライブラリしか使えないような子には扱えないよ ゲームフレームワークみたいな方向に簡単にするなら別だけども
802 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 21:36:50 ID:C3k1GCCB] あの・・・ 流れを断ち切った横レスなんですが、 C言語+dxlibで作ったプログラムをC++のクラスってのを使って まとめようと思い、メインループを書いてみたんですが、 書き方があっているのかすごく不安なのでお聞きしたいと思いました。 もし、スレチならいいスレ教えて・・・ よし!見せてみろ!ならソース張る。
803 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 21:37:39 ID:lZJGMEL/] DXライブラリに親でも殺されたのか
804 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 21:43:58 ID:LTJXvZ7v] >>802 ヨシみせてみろ
805 名前:802 mailto:sage [2009/07/28(火) 21:52:18 ID:C3k1GCCB] ワーイ ID GCCってw #include "GV.h" int WINAPI WinMain( HINSTANCE hI,HINSTANCE hP, LPSTR lpC,int nC ) { ChangeWindowMode(TRUE); if(DxLib_Init() == -1) return -1; //↓このあたりがめっちゃ不安なのですが。 Flame* T = new Flame; // SetDrawScreen(DX_SCREEN_BACK); //MainLoop()内で処理を書いてます while(!(ProcessMessage()) && !(CheckHitKey(KEY_INPUT_ESCAPE)) && (T -> MainLoop()) && !(ScreenFlip()) && !(ClsDrawScreen())); // DxLib_End(); return 0; } ヘッダファイルも見てもらえるのなら・・・・☆彡ってレスしてくらさい
806 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 22:00:28 ID:bkreYxYW] それだけならそんなにおかしいところはないと思う 細かいどうでもいいことを突っ込ませてもらうと, FlameじゃなくてFrame あと大文字一字の変数名はやめてくれ紛らわしい
807 名前:801 mailto:sage [2009/07/28(火) 22:09:21 ID:C3k1GCCB] フレイム・・・フレーム・・・ 一文字違いが大違いでした・・・ 参考にした本(セガ本?)にそういう記述があったのでつい (Tの件は) T* <=この変数を使う場合 T->A T->B とか、 for(int i=0;i<1000;i++){ T-> X[i] } みたいに変数の中身をwhileの中で更新しまくっても問題ないですか?
808 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 22:10:29 ID:YL4nqTsX] ゲームプログラマーになる前に〜ってタイトルの本か
809 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 22:14:47 ID:C3k1GCCB] そうです。 ちなみに2章を読み始めてから進まないまま二ヶ月目
810 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 22:16:24 ID:bkreYxYW] >>807 ダメダメ それならCの構造体と変わらない クラスの外からメンバ変数にアクセスするのは避ける クラスっていうのは,外からはボタンを押すだけで中で勝手に処理してくれる 便利な機械みたいな感じ(そういう風に作るのが理想)
811 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 22:19:08 ID:TfpzHMPf] 先にEffectiveC++とデザインパターンの本読むべき
812 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 22:26:10 ID:bkreYxYW] クラスを利用したこともないのにいきなり作れるわけがない ためしに他の人が作ったC++のクラスライブラリを触ってみればいいんじゃない ゲームエンジンならSeleneとか 英語大丈夫ならIrrlichtなんかも簡潔でおすすめ どういう風にクラスを使えばいいのかわかるよ
813 名前:802 mailto:sage [2009/07/28(火) 22:29:42 ID:C3k1GCCB] なるほど。。 本高い・・・。 すでに 14才から・・・、 OS自作・・・ やさしいC・・・ よくわかるC・・・ IP! Cプログラミング講座、 アルゴリズムマニアックス、 はじめてのアルゴリズム入門、 とかの本を買っては進めないところがあって止まるを繰り返してもう資金が・・・ 来月余裕があったら買ってみます。
814 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 22:31:58 ID:TfpzHMPf] 買う前に一冊読みきれwww それか図書館だな
815 名前:801 mailto:sage [2009/07/28(火) 22:35:44 ID:C3k1GCCB] これだけ本読んだらもしかしたらオレゲーム作れるんじゃね? と勘違いして作り始めたのさ! もう・・・タイムリミットがちかずいている・・・・・・ やつが・・・・来る!
816 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 22:36:54 ID:LTJXvZ7v] マクドに注文する側がバイトのシフトとかパンズの在庫を気にしちゃ駄目だぜ
817 名前:802 mailto:sage [2009/07/28(火) 22:41:24 ID:C3k1GCCB] >>815 そういうことなのか! なんかよくわかった気がしました。 クラスの中で処理を完結すればいい感じになれるってことですね♪ アレ?ッてことは今書いるプログラムは・・・・
818 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 22:50:21 ID:lbcOkIrb] スタックフレームとヒープとスタティック領域が分かってないとC/C++は辛い。 どっかに親切な解説ねーかな。ここじゃ正直めんどい。 とりあえず今から風呂→ネトゲでギルド潜りするんで、一分でそれっぽいとこ探して おいた。 ttp://gihyo.jp/dev/serial/01/antique_assembler 初心者に分かるかはシラネ。でもこれが分かればCのメモリでつまづくことはたぶん 無くなりそうな記事に見えた。15秒くらいしか読んでないけど。
819 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 22:55:24 ID:lbcOkIrb] すまん、面白そうなんで↑の記事をちょっと読んでみたが、初心者でWindows環境だと 素直に読めるもんじゃないかも。 ある程度「ふんふんそんなもんか」って飛ばし読みするには悪くないとは思うけど、 真面目にサンプルコードを走らせたりするタイプだと微妙にきつそう。
820 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 22:57:31 ID:bkreYxYW] あんまり低レベルなことは気にしなくていいと思うよ オブジェクト指向をちゃんとやりたかったらJavaのような 思いっきり抽象的な世界でリフレッシュした方がいいかもしれない ゲーム作るのだって簡単
821 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 22:58:28 ID:C3k1GCCB] えっと・・・ 関数を呼び出したときには元の場所に帰ってくるための情報が どこかよくわからないない場所に スタックの構造をした形でつまれているんだよ、ってこと?
822 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 23:11:05 ID:lZJGMEL/] しかしゲームを作るのにそれほど必要ない知識なのであった
823 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 23:14:09 ID:C3k1GCCB] java・・・・ とりあえずおいらゲームを作って見るよ! クラスの中でクラスを宣言したりnewする方法がまったく理解出来ないけど。 時間切れなので・・・ノシ ご指導ありがとうございました!
824 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 23:29:31 ID:0RhUYUoP] さて、そろそろD言語に手を出そうか…
825 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 23:32:38 ID:LTJXvZ7v] そして一向にゲームが完成しない罠 勉強もいいけど取り敢えずサクッと作った方がよいかも
826 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 23:40:38 ID:gMpP2gLw] 上から降ってくる「モノ」を、ただひたすら画面下部で避けるだけのゲームとか、そういうの?
827 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 23:45:05 ID:C3k1GCCB] あら?? ニコニコ動画にうpしたのならあるけど・・・・ それよりヘッダファイル見る?
828 名前:名前は開発中のものです。 mailto:sage [2009/07/28(火) 23:53:41 ID:KFmBMjPZ] 見てあげないこともない
829 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 00:07:48 ID:6Y8+8XuP] ttp://www.nicovideo.jp/watch/sm7736340 とりあえず張ってみる。 これ以上スレすると荒らしになってしまいそうな気ガスる
830 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 00:22:10 ID:sFXJxN65] つーか、やろうとしてることから考えると、ちゃんとメモリの意味が分かってないと トンチンカンになる。 余計なことやろうとせず、意味の分かってる仕様だけ使っていればいい。いわゆる better CとしてのC++。newとか罠満載なものにやたらと触らない。
831 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 00:37:52 ID:1WJmBm/8] 俺は昔アセンブラかじったことあったからメモリの意味はある程度わかってるつもりだったが、 最近までポインタが理解できずに使えなかった……。 どっかのサイトで「int *p」は「int* p」だって書いてあるのを読んでやっと少しだけわかった気がした。 「なんで *p で宣言してるのに使うのは p なんだ???」とずっと疑問だった。 Cって俺にはわかりづら過ぎる……。わかる奴凄い。
832 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 00:46:49 ID:e3ckjdq+] >>831 68系のアセンブラを知っていればポインタを知っているとおもう。 ここを読んでみなさい。C++について詳しく解説してある。 www.asahi-net.or.jp/~yf8k-kbys/
833 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 02:17:12 ID:IM9p+Dbm] ポインタなんて最初あまり分からずに大分年月経ったらやっと分かり始めた いろいろ試行錯誤とか苦労しないと分からないのでは 話変わるがちょっと上のレスに関連することだが俺結構メンバ公開にして外からアクセスしてた 何かアクセサ使うとその分遅くなるような気がしてしまうんだよなあ
834 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 04:42:03 ID:sFXJxN65] ぶっちゃけアセンブラが分かってれば、ソフトウェアレベルの出来事なら一番下の構造 から透けて見えるから、ポインタなんかは概念も挙動も一発で飲み込める。 下の構造が見えないと、どんな処理が速いとか遅いとか効率いいとか悪いとかは経験の 繰り返しで飲み込むしか無いけど、下から見えていれば論理的に自然に飲み込める。 だが、アセンブラを理解する段階での苦労が大きいし、今のご時世でどんだけ報われる かは自信ないからお勧めもしない。 とは言っても、昔は「まずアセンブラで」とか「BASICかアセンブラしか開発環境は ありません」とかが普通だったから、そこまで難しいもんでも何でもないけどな。
835 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 05:06:48 ID:KJv9oy2N] アセンブリ言語自体はそらもう単純なもんだからな ただ今のプログラミング環境に慣れ親しんでると、ちょっとした事すら書くのが面倒ってだけで
836 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 06:22:35 ID:gEGcx4CR] newとかdeleteとか 必要性がよくわからなくて結局殆ど使っていない。 使った方がカッコいいんだろうけど
837 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 07:15:08 ID:cb/+Lg0n] 動的に確保するときだけ使ってる
838 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 09:17:36 ID:IM9p+Dbm] 俺も必要性よく分らなかった時は使わずにやってた 使い方覚えたら結構便利だ すぐでなくともそのうち覚えればいいんじゃないか
839 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 10:34:12 ID:jVZkfrqg] 使わないでなんとかできてると 覚えようとしないんだよなぁ……。 プログラム言語の解説サイトとかで命令の説明とかはいくらでも読めるけど、 「ゲームを作る際にこうやって使ったら便利!」とかまで書いてある事ないじゃん? だから「ふーん」で終わっちゃうんだよね……。 いや俺が不勉強なのはわかってるんだが。
840 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 10:40:16 ID:p52lIH/W] 必要になったときに学ばないと覚えないんだよなぁ…… ポインタもメモリの確保もよく分からなかったけど、 一度必要になってから調べなおしたら結構使いこなせるようになった
841 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 11:05:54 ID:IM9p+Dbm] 俺もテンプレート使う気なかったけどある時どうしても使う必要に駆られて使ってみたらすんなりいって便利だったなあ まあ使わないでいけるんならいいんじゃまいか
842 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 11:45:25 ID:oi3ivzjY] C++は文法習得〜良いコーディングの間が長すぎる いろいろ覚えるとC++のほうがゲーム作りやすく感じるんだけどな
843 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 13:08:33 ID:B4ng0Zvn] Javaだと手軽にクラス使えるから結構細かいこともクラス使って実装したりするけど C++はクラスが使いにくくて返って面倒になったりするからつい細かいことはC風に書いてしまう
844 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 13:15:13 ID:tcSJ+b5u] STLはすげー便利
845 名前:843 mailto:sage [2009/07/29(水) 13:17:37 ID:B4ng0Zvn] いや出来合いのクラスを使うのはいいんだけど 作るのがめんどくさいんだよね
846 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 13:47:45 ID:IM9p+Dbm] そもそもJavaはクラス使わずに書けないのでは
847 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 13:54:50 ID:B4ng0Zvn] そりゃもちろんそうだけど,「すべての変数や関数がクラス内に収められている必要がある」 というだけのことであって,クラスを単なる名前空間と考えるならCと変わらん クラス使ったからってオブジェクト指向になるわけじゃない
848 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 14:11:50 ID:p52lIH/W] まあ、intだってクラスだし、C++は設計的に変数は全部クラスっちゃクラス さまざまな動きするものをまとめて管理するにはクラス使う方がラクだと思う シューティングの弾とかRPGのNPCとか。 というか俺はクラス使った半オブジェクト指向でしかゲーム作れなかったりする
849 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 14:20:10 ID:gEGcx4CR] JAVAでひとつのクラスの中に全ての処理を 手続き型で書いちゃうプログラマを思い出した。
850 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 14:22:40 ID:mG6Pind/] ああ、俺がやりそうだな、そういう事。
851 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 14:53:37 ID:KJv9oy2N] >>848 >まあ、intだってクラスだし おいおいそれはJavaの事を言ってるんだろうな? C++でのintはコンストラクタもデストラクタも持たないPODだが
852 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 15:03:26 ID:cAIJJmev] Javaのintはプリミティブ・・・
853 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 15:05:31 ID:KJv9oy2N] >>852 すまん Javaの事>Javaのintegerクラスの事 で
854 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 15:05:32 ID:B4ng0Zvn] Javaでもintはクラスではなくプリミティブな値型 むしろJavaのほうがクラスとプリミティブ型の間に明確な振る舞いの違いがある intをクラスの一種(正しくは構造体)として扱うのは.NETだな(C#やVB.NET)
855 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 15:09:10 ID:cAIJJmev] Rubyもね
856 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 15:12:55 ID:p52lIH/W] あれ?違ったっけ? と思ったら C++では「intにもコンストラクタとデストラクタがある」ってのを間違えて覚えてたみたい…… 恥ずかしい///
857 名前:名前は開発中のものです。 [2009/07/29(水) 18:42:39 ID:PJW2UirX] >>826 俺、それさえも途中で投げたんだが
858 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 19:09:50 ID:QQ6cQOKX] >>857 まてまてまて。流石にそれは話にならんぞ。 料理が出来ないって人に、 「出汁とかその辺無視してもいいから、とりあえずお味噌汁から作ってみようか」 ってアドバイスして、無理って言われたようなもの。
859 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 20:04:55 ID:DQFan6Z4] 教えて偉い人 爆発とか衝撃波みたいなエフェクトを管理するクラスを作ったのよ メンバ的にはコンストラクタとデストラクタと描画中かどうかのフラグ管理と実際に描画する関数といった具合 コンストラクタでエフェクト用の画像をメモリに読み込んでるんだけど このクラスのオブジェクトを作る度にロードされるのが気持ち悪くてしかたない 画像リソースを読むところだけ外に出せないだろうか
860 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 20:14:58 ID:p52lIH/W] 前もって画像を読んでおいて、そのグラフィックハンドルを コンストラクタでクラス内の変数に代入すればいいんじゃないの? グラフィックハンドルってただの数値だし
861 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 20:29:24 ID:RdHjB4sC] クラスAのコンストラクタで画像を読んで、 クラスBのコンストラクタでそのグラフィックハンドルを得るようにした場合、 どちらのコンストラクタが先に呼び出されるか分かりませんが問題ないですか
862 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 20:33:36 ID:tcSJ+b5u] その場合クラスAは動的に確保しとくべきじゃないの
863 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 20:49:35 ID:vU/WuoP5] // あらかじめ画像を読み込んでおく Image *image = new Image("effect.png"); // 複数のインスタンスでハンドルを使いまわす Effect *explode1 = new Effect(image->handle); Effect *explode2 = new Effect(image->handle);
864 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 21:21:10 ID:sFXJxN65] どこでdeleteするんだ?
865 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 21:31:15 ID:cAIJJmev] 画像管理するクラス作っておいて以前ロードしたものと同じものがあったらそれ使いまわす
866 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 22:04:56 ID:oi3ivzjY] shared_ptrで画像を共有する
867 名前:名前は開発中のものです。 mailto:sage [2009/07/29(水) 23:32:20 ID:IM9p+Dbm] 画像管理クラスなんて態々作らずメイン処理のクラスにハンドル持たしてるわ俺 そっからオブジェクトクラスに渡すのはそのハンドルのポインタにしてる そうすれば途中でウィン→フルに変えるときとかもそのメインの画像読み込みメソッド呼び直すだけで済む
868 名前:名前は開発中のものです。 [2009/07/30(木) 12:04:22 ID:OvoMaJfI] ハンドラをスタティックにしちゃだめなのか?
869 名前:名前は開発中のものです。 mailto:sage [2009/07/30(木) 12:18:43 ID:OvoMaJfI] 上げちまったすまね むしろグローバルでハンドラを作れってことか 再利用性が皆無になるが
870 名前:名前は開発中のものです。 mailto:sage [2009/07/30(木) 13:34:41 ID:9rAtPdyT] コンストラクタで画像を読み込み+デストラクタで開放するだけのクラスImageを そのステージで必要ならshared_ptrで読み込む エフェクトを実際に使う箇所ではそのshared_ptrをコピーして使う ステージを通して読み込みは1回だけで、コピーもshared_ptrのコピーだけですむから軽い しかもステージが終わったら勝手に安全に開放される 何よりコードがすごい簡単で見やすくなる ってじっちゃがいってたけど、俺GUIのゲームまだ作ったこと無いからわからねーわ
871 名前:名前は開発中のものです。 mailto:sage [2009/07/30(木) 22:13:59 ID:650NzX62] >>870 とかを見るとさらに、 class 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(); } }; みたいな感じのも書きたくなるな。パフォーマンスどうなるかはシラネ。
872 名前:名前は開発中のものです。 mailto:sage [2009/07/30(木) 22:20:25 ID:650NzX62] ああ、もちろんステージの頭で必要そうなイメージはget()しまくっておくんだけどな。 ステージ始まってるのにいちいち止まってたらうぜーし。
873 名前:名前は開発中のものです。 mailto:sage [2009/07/30(木) 22:20:35 ID:hh3V9W8K] どうせステージ読み込むときに何回か呼ぶだけだろ そんなもんにパフォーマンスもクソもあるかよ
874 名前:名前は開発中のものです。 mailto:sage [2009/07/30(木) 22:24:47 ID:650NzX62] 参照時のパフォーマンスだぜ まぁhash検索のとこが重いだけだから、何度も何度も何度も何度もshared_ptr拾い直す ようなアホなことをしなきゃ問題無いだろうけど つーかぶっちゃけ超絶やっつけだから先に言い訳で書いた>パフォ
875 名前:名前は開発中のものです。 mailto:sage [2009/08/01(土) 14:00:04 ID:QXWHJ91E] class effect { 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回だけ呼ぶようにしてスタティックなハンドラへぬっこむ感じで
876 名前:名前は開発中のものです。 mailto:sage [2009/08/01(土) 14:00:25 ID:Qfg9axiN] ウィンドウとフルスクリーンの切り替えって、設定と読み込んだもの全部どこかに記録しておいて、切り替えた後に読み直さないといけないの?
877 名前:名前は開発中のものです。 mailto:sage [2009/08/01(土) 14:02:27 ID:QXWHJ91E] メモリに読み込んでたものは切り替えで開放しちゃうんじゃなかったっけ? 呼びなおすようにはしてる
878 名前:名前は開発中のものです。 mailto:sage [2009/08/01(土) 14:09:47 ID:hsxXyy+h] 画像の情報とハンドルをラップするクラスを作るのがスマートかなあ でもそういうことしだすと何のためにDXライブラリ使ってるのかいまいち分からなくなってくる どうせラップするんだから中身は別に複雑でもいいよねみたいな
879 名前:名前は開発中のものです。 mailto:sage [2009/08/01(土) 14:37:35 ID:fM5CMo54] グラフィックを読み込む処理はひとまとめにしてる。 グラフィックを読み込んだ時にエラーだと-1が返ってくるそうだから、 グラフィックハンドルに-1はありえないって事で 各グラフィックハンドルの初期値は-1にしておいて、 -1でないやつだけを読み直すとかやってるな。
880 名前:名前は開発中のものです。 mailto:sage [2009/08/01(土) 17:19:13 ID:Qfg9axiN] ProcessMessageの返すエラーと×印を押した時の終了メッセージを見分ける方法 あるいは、右上の×印をクリックできないようにする方法はありますかね?
881 名前:名前は開発中のものです。 mailto:sage [2009/08/01(土) 18:11:57 ID:XBQ0j9Rg] ×をクリックできないようにするのはあまりよろしくないんじゃないか
882 名前:名前は開発中のものです。 mailto:sage [2009/08/01(土) 18:13:18 ID:fM5CMo54] クリックできなくさせる事になんの意味があるのかわからん。