[過去ログ] C/C++ゲーム製作総合スレッド Part1 (1001レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
47: 名前は開発中のものです。 [sage] 2012/05/24(木) 09:33:53.29 ID:AVLO1dG0(1) AAS
絶対vectorのほうが楽。
new/deleteで神経質になる必要が無いし、配列サイズ変更も楽。
>>37でもいいし、漏れはコンストラクタで
Hoge(int num){m_array.resize(num,0);}
にする。引数の0は初期値。
あえてvector使わないときは、
せいぜい定数代わりの配列使うときくらいかな?
83(1): 名前は開発中のものです。 [sage] 2012/05/26(土) 21:13:49.29 ID:U+nTXa0c(1/2) AAS
>>77 >>78 できるか?
引数付きコンストラクタを宣言できないからダメだと思うが。
前方宣言すべきはabcのはず。
class abc;
class def{
public:
def(abc* pABC){}
};
class abc{
public:
abc(){
abc* pThis = this;
def* pDEF = new def(pThis);
}
};
93: 名前は開発中のものです。 [sage] 2012/05/28(月) 08:10:15.29 ID:IVkwT0S2(1) AAS
>>89
特に理由がなければ最新でいいと思うよ
古いバージョンだと色々と対応してなくて面倒
>>92
グラフィック用意して透過や加算で表示
99(1): 名前は開発中のものです。 [sage] 2012/05/29(火) 05:58:59.29 ID:WcnaYjLE(1/3) AAS
>>95
動的に確保するなら、そもそもBの引数無しコンストラクタ使う必要ないんじゃない?
Aのコンストラクタの引数で配列のサイズ受け取って、
Aのコンストラクタ内でその分だけBを作ればいい
でも、メモリ管理面倒になるから普通にvector使ったほうが楽だよ
325(1): 名前は開発中のものです。 [sage] 2012/06/08(金) 12:13:59.29 ID:DZv8KWRM(1) AAS
ブログラムを学び始めて一ヶ月、トランプのゲームや簡単なアクションなら楽に作れるようになった
しかし未だにポインタの使い道が分からない
411(1): 名前は開発中のものです。 [sage] 2012/06/24(日) 22:15:23.29 ID:bs3Q6xui(1) AAS
必要のないincludeって可読性のためにしますか?
例えば、
キャラクタークラス→判定クラス/攻撃判定クラス→判定管理クラス・・・
みたいに枝分かれしたりくっついたりしてわかりにくいじゃないですか。
しかも判定管理クラスはキャラクタークラスの情報もわかるわけで、
判定管理クラスでキャラクターの情報を扱おう(ポインタとか)と思った場合簡単にできちゃうわけじゃないですか
そういった場合、無駄というか多少サイズが増えようともincludeを記述すべきなんでしょうか
勿論includeガードを前提とした話で
574: 名前は開発中のものです。 [sage] 2012/07/15(日) 21:06:29.29 ID:uYx7dRQJ(1) AAS
構造体丸ごとバイナリデータとして吐き出しゃええやん
596: 名前は開発中のものです。 [sage] 2012/07/16(月) 20:07:14.29 ID:RbiinpUt(1) AAS
>>592
禿げ上がるほど同意
悩んで禿げてこそ一流だ
612: 名前は開発中のものです。 [sage] 2012/07/17(火) 23:52:44.29 ID:nfucLn83(2/2) AAS
>>608
心じゃなくて腕かよ!
>>610
本文に結構なページ割いてるし、そっち参考にすれば?
658: 名前は開発中のものです。 [sage] 2012/07/26(木) 08:23:43.29 ID:6qNak+K/(2/3) AAS
>>657
どのレスが関係ないと思ったのかくらい書けよ
691: 名前は開発中のものです。 [sage] 2012/07/28(土) 07:38:16.29 ID:firuRbZ1(1/2) AAS
>>689
意味が分からん。
スーパーマリオだとどの部分?
711: 名前は開発中のものです。 [sage] 2012/07/29(日) 17:35:52.29 ID:rXCk/Mgb(1) AAS
普通グラフでやるから簡単だぞ
791: 名前は開発中のものです。 [sage] 2012/08/10(金) 09:13:05.29 ID:KRTgZJ6N(1) AAS
元の、BaseScene::main() が BaseScene自体を返すと、BaseScene の仮想関数を呼び出すときに、サブクラスの仮想関数が呼ばれるのではなくて
BaseScene自体の仮想関数が呼び出されてしまう。値で返すと、元のサブクラスの型情報は失われるから、そりゃそうだよねって話。
少し簡略化して、基底クラス Base とそれを継承した サブクラス Sub が存在して、それぞれに仮想関数invoke() を用意する。
// cl.exe /EHsc /W4 /WX main.cpp
#include <iostream>
// 基底クラス
class Base{ public: virtual void invoke(){ std::cout << "Base::invoke();" << std::endl; };};
// サブクラス
class Sub : public Base{ public: virtual void invoke(){ std::cout << "Sub::invoke();" << std::endl; };};
int main( int, char*[]){
Sub a; Base b = a ; Base* c;
c = static_cast<Base*>(&a);
a.invoke(); // Sub::invoke(); "Sub::invoke() が呼び出される"
b.invoke(); // Base::invoke(); "Base::invoke() が呼び出される"
c->invoke(); // Sub::invoke(); "Sub::invoke() が呼び出される"
return 0;
}
この場合、bは、Sub のインスタンスである a を代入してるけど、b は 依然としてBaseのインスタンスなので、
b.invoke() は、 Base::invoke() を呼び出す。 これをポインタ経由で呼び出すときは c->invoke() で Sub::invoke() が呼ばれる。
844: 名前は開発中のものです。 [sage] 2012/08/27(月) 23:14:09.29 ID:AmONeSj3(1) AAS
>>834
流石にコードがおかしいとしか考えられん。
今日日、24bitビットマップをbitbltで描画してもそこまで遅くならんはず。
855(1): 名前は開発中のものです。 [sage] 2012/09/04(火) 19:51:33.29 ID:IAhJLyuf(1) AAS
最近のPCなら猛烈な回数実行しないなら誤差じゃね
960: 名前は開発中のものです。 [sage] 2012/10/21(日) 12:29:22.29 ID:PTum4Ngu(1) AAS
C++を知らないゲームプログラマ達
http://d.hatena.ne.jp/alwei/20111008/1318090538
989: 名前は開発中のものです。 [sage] 2012/10/22(月) 20:11:20.29 ID:bfhvnErC(4/5) AAS
でもさ、
あるクラスをアプリ実行期間中、存続させつつづけて、
ゲーム・ステージの切り替わりのタイミングで、
それが持つ配列型メンバをリサイズする場合なんかには
deleteを使わざるを得ないんじゃないか?
こういうケースは頻繁にあるんだが。
全ステージ配列のサイズは固定とか縛り持たせるわけでもあるまい。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.043s