- 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/
- 774 名前:名前は開発中のものです。 mailto:sage [2009/07/25(土) 15:37:45 ID:tEWYFYw5]
- >>772
とりあえず目標を決めてはどうか。 ただし、あまり大作でも作れなきゃ意味がないので、 初期の携帯電話用ゲームや、初期のファミコン、インベーダゲーム、倉庫番あたりを目指す。 矢印キーだけ、せいぜいそこにボタン1個くらいで遊べるゲームが楽でいい。 目標が決まったら、それを「部品」に分解する。 うまく部品単位になればお前さんの勝利。
- 775 名前:名前は開発中のものです。 mailto:sage [2009/07/25(土) 17:05:50 ID:OnXN/lFa]
- 綺麗な部品作りの楽しさとゲーム作りの楽しさは、何というかちょうど90度くらい
ずれた方向性がある。両方うまい人はすごくいい。 最初の一歩はとにかく単純に、ゲーム内容どうでもいいから一本のゲームとして 成り立ってる物を作る、つーこと。極端な話、全部WinMain()に入ってても一向に 構わない。(綺麗な部品作りに慣れてるならそうはならないだろうが) 部品は必要性を実感してから作る方が最適になりやすい。いわゆるシーズじゃなく ニーズで作る。先に需要を予測して部品を作る、ってのはほどほどにすべき。 で、「クソゲー作ってもなぁ」と思うなら、いっそ最初から真面目に本気ゲーを 作り始めてしまっても全然問題ない。
- 776 名前:名前は開発中のものです。 mailto:sage [2009/07/26(日) 08:48:42 ID:Hw5xOpYa]
- 個々の部品の作り方が分かっていても、それらを全部組み合わせて、うまく動くようにするのは結構大変。
特にシーンやリソースの管理が入ってくるとかなり面倒になる。 そういう点ではやっぱり最初は1面のみの単純なゲームから始めた方がいいね。 プログラムが大きくなればなるほどバグ取りも大変になるから、最初は小規模から始めた方がいい。 自分はいつも最初からあれこれ入れようとして墓穴を掘ってる。
- 777 名前:名前は開発中のものです。 mailto:sage [2009/07/26(日) 11:40:31 ID:AWfgbmGQ]
- プログラムを書く能力とゲームを組み立てる能力は、全くの別物
紙にステータスを書いて遊ぶとか、人形をいじって遊ぶとか そういうアナログな手法でイメージを立てて設計する 何も考えずにプログラムを先に書くのは意味がない。 ゲームを考える(妄想する)、ゲームを作る、ゲームを遊ぶ この3つのどれが欠けてもうまくいかない まず面白いシステムや世界観を考える 次にプログラム、シナリオ、絵、音楽などで形にする 最後に完成品を遊び倒して面白いゲームに近付ける ゲームは工業製品だから、作り手の職人気質がもろに出るよ
- 778 名前:名前は開発中のものです。 mailto:sage [2009/07/26(日) 11:57:44 ID:aBNM0ylQ]
- >>772は単に大枠の設計が分からないとかそういうことなんじゃね?
>>776のいうシーン管理とかそういう骨組みの構造とか
- 779 名前:名前は開発中のものです。 mailto:sage [2009/07/26(日) 23:48:51 ID:AGlm2m1e]
- stdafx.hにいれた上で、そのソースに必要なヘッダはあえて書くソースに書くようにしてる
- 780 名前:名前は開発中のものです。 mailto:sage [2009/07/27(月) 00:01:10 ID:GCep4g8b]
- 俺は何も考えずにいきなりプログラム作るぞ。
特に最初のうちは、あんまり考えないほうがいいと思うんだけどな。 緻密に設計していくのは、ミニゲームを何本か完成させた後のほうがいいと思う。
- 781 名前:名前は開発中のものです。 mailto:sage [2009/07/27(月) 00:11:13 ID:bEbQPsi9]
- 俺は「これできるかな? ……できた。んじゃこれはできるかな……? よしできた」とかやってるうちに
肥大化してゲームになってる。
- 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拾い直す ようなアホなことをしなきゃ問題無いだろうけど つーかぶっちゃけ超絶やっつけだから先に言い訳で書いた>パフォ
|

|