新しいオブジェクトを次々に作成する方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
わくわくさん

新しいオブジェクトを次々に作成する方法

#1

投稿記事 by わくわくさん » 11年前

こんばんわ

C++とDXライブラリを勉強しているのですが分からないところがあったので、質問です。

ちょこっと具体性にかけるかもしれないですが・・・
私は、現在、オリジナルのRPGを作りたいと思っています。

RPGといっても、ドラ◎エのように主人公が決まっているものではなくて
ポ◎モンのように、仲間を集めていくタイプです。

必要なステータスを決めてモンスターのクラスを作ったのですが
新しいモンスターをゲットした時、どうやって新しいモンスターとしてクラスから
オブジェクトを作成したらいいのか、ピンときません。

おしえてください。

モンスターは体力、魔力、攻撃力、防御力、素早さのステータスを持っています。
一応、コードを書きます。

コード:

 
//モンスタークラス
class MON{	
private:
	int x, y;	//表示する時の座標
	int hp, mp, at, df, sp;	//モンスターのステータス
	int gh;	//画像用メモリ
public:
	MON();
	void Draw();
};
//初期設定
MON::MON(){
	x = y = 16;	//初期座標
	hp = mp = 10;	//HPとMPは10から
	at = df = sp = 3;	//ATとDFとSPは3から
	gh = LoadGraph("mon01.png");	//画像の読み込み 16×16のPNG画像
}
//モンスターの表示
void MON::Draw(){
	DrawGraph(x,y,gh,TRUE);
}
 

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 新しいオブジェクトを次々に作成する方法

#2

投稿記事 by softya(ソフト屋) » 11年前

新しいインスタンスを作るだけなら、newするだけですがそういう意味ではないですよね?
実際に使う段階で何処ら辺が疑問でしょうか。
なお、クラス名がMONと大文字なのは定数と間違いそうなのでオススメできません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

わくわくさん

Re: 新しいオブジェクトを次々に作成する方法

#3

投稿記事 by わくわくさん » 11年前

softya(ソフト屋) さんが書きました:新しいインスタンスを作るだけなら、newするだけですがそういう意味ではないですよね?
実際に使う段階で何処ら辺が疑問でしょうか。
なお、クラス名がMONと大文字なのは定数と間違いそうなのでオススメできません。
そうなんですね。参考にしていたサイトで大文字にしてたのでマネしていました。
小文字にしますね。

ニューで1体だけ作るのはわかるのですが、次々に作って、別のオブジェクトとして
扱うにはどうしたらいいのでしょうか?

たとえば、Aを押したら1匹づつ新しいモンスターが増えるなどを練習として作ろうと
思っていましたがよくわからなくて混乱してきました

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 新しいオブジェクトを次々に作成する方法

#4

投稿記事 by softya(ソフト屋) » 11年前

newで生成されたインスタンスは生成される度に別のオブジェクトです。
配列やvectorなどに各インスタンスのポインタを保持させてはダメなのでしょうか?
この質問は、C++の文法の理解自体が怪しい感じでしょうか?
C言語や別の言語なら出来ますか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

わくわくさん

Re: 新しいオブジェクトを次々に作成する方法

#5

投稿記事 by わくわくさん » 11年前

softya(ソフト屋) さんが書きました:newで生成されたインスタンスは生成される度に別のオブジェクトです。
配列やvectorなどに各インスタンスのポインタを保持させてはダメなのでしょうか?
この質問は、C++の文法の理解自体が怪しい感じでしょうか?
C言語や別の言語なら出来ますか?
ごめんなさい。私よくわかっていなかったみたいです。
講座みたいなサイトで使って勘違いしてました。
(あとオブジェクトとインスタンスって同じものだと思ってました・・・)

オブジェクト作ってから別の関数で分けて使うようにしたらいいのかな
配列は少し勉強しましたが、ベクターなどは初めて聞いたので調べてみます。

ありがとうございました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 新しいオブジェクトを次々に作成する方法

#6

投稿記事 by softya(ソフト屋) » 11年前

オブジェクトとインスタンスと同じといえば同じかもしれませんが。言語とか、そういうので呼び方や微妙に意味が変わります。
かなり文法レベルの理解が怪しそうなので、もう少し勉強されたほうが良さそうです。
文法レベルの質問も、分からなかったら聞いてください。

「別の関数で分けて使うようにしたらいいのかな」なにを基準に分けるのでしょう? これも同じ問題突き当たりそうです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る