敵の増加について
Posted: 2009年8月02日(日) 19:42
華穂です。
ここ数日なぜかこちらのサイトにつながらなくて、焦りましたが、
今日恐る恐る来てみたらまた観覧できるようになってました。
ちょっと一安心。
今日なのですが・・ちょっと、立てていたスケジュールの進行がかなり遅れていて、
このままだと里帰りできないため、気合い入れて作っているのですが・・やっぱり詰まりました。
えと、前にも似たような(?)質問したと思うのですが、敵の出し方です。
クラスで書いています。(というかこの質問・・しましたっけ?)
まずは・・中途半端なソースコードでも・・(所々分からずひとまずおいてたりしてます)。
今回は、雑魚敵のクラスです。
class EZako
{
int EZako;
int TEZako;
int EZakoX, EZakoY;
double TEZakoX, TEZakoY;
//↓はあれです・・当り判定で消滅した時の画像のために用意しましたが・・まだ使わんかも。
int BotuEZako, BotuTEZako;
int EZSpeed;
int EZCounter;
int EZLife;
int TEZ_Set;
float Target_angle;
//自機のXY
int ZikiX, ZikiY;
public:
EZako();
void EZ_move();
void TEZ_move();
};
//雑魚的の初期化
EZako::EZako()
{
//座標設定
EZakoX = 640;
EZakoY = GetRand(300);
TEZakoX = 640;
TEZakoY = GetRand(200);
EZLife = 1;
//敵の早さ
EZSpeed = 3;
//敵のセット(制御的な?)
TEZ_Set = 0;
//画像ロード
EZako[5] = LoadGraph("EZako.bmp");
TEZako = LoadGraph("EZako.bmp");
}
//波敵
void EZako::EZ_move()
{
//毎フレームに5加算
EZCounter += 3;
//雑魚敵の座標を移動している方向に移動
//Y = y方向中心位置 + 振幅 * sin( π/周期 * e.cnt );
EZakoX -= 1;
EZakoY = 100 + 25*sin( PI/100 * EZCounter);
DrawGraph( EZakoX, EZakoY, EZako[5], TRUE);
}
//特攻敵
void EZako::TEZ_move()
{
//もし、特攻Xが320以上ならまっすぐ進む。
if( TEZakoX > 320)
{
TEZakoX -= EZSpeed;
}
//320を過ぎたなら、自分から見た自機の角度を保持して特攻する
else
{
if( TEZ_Set == 0)
{
//自機から見た敵の角度
Target_angle = atan2(TEZakoY - ZikiY, TEZakoX - ZikiX)
TEZ_Set = 1;
}
TEZakoX -= cos(Target_angle) * EZSpeed;
TEZakoY -= sin(Target_angle) * EZSpeed;
}
DrawGraph( TEZakoX, TEZakoY, TEZako, TRUE);
}
です。
ひとまず、今は敵がそれぞれ特攻と波で1体ずつ出ています。
それぞれ名称は違いますが、同じ画像を使用しています。
えと、それで・・今回は少し困ったことが多いのですが・・。
☆問題☆
①敵の体力は設定しているものの、ステージが進むにつれて体力が増えるため、
どうしていいか分からない。
②敵は、最初は8機。2ステ:14機、3ステ:20機、4ステ:40機、5ステ:50機
おり、波と特攻で分かれている(ステ1なら波5・特3)。そこはいいのだが、
これらの数をどうやってステージごとに管理・表示していいかわからない。(ちなみに、
敵は1機倒されるごとに1機増える。(右端からY軸ランダムで出現)
③敵を複数表示するため配列を使い、またそれプラスfor文を使用して敵を
表示したいがうまくいかない。(誰か配列も含め詳しく教えてください)
④③でもし1ステージの敵がそれぞれ表示できても、2ステージからは
どうすればいいのか、アドバイスがほしい。
⑤というか、上記のソースコードではこれらの問題を解決するための
ものがまだ書かれていない・足りていない&あれこれ考えてごちゃごちゃして
手が止まってしまうため、「これとかこのために用意したり、こんな風に使えばいいんじゃね?」
的なアドバイスがほしい。
⑥一応体力など決めてはいるが・・このままの当り判定に関して別のクラスを作ろう
と考えているため、ここで設定しても意味がないような気がするが・・どうでしょう?
が、今のところ困っている雑魚敵の問題です。
てかここで詰まってるとボスで泣きそうな予感がします。
雑魚敵の座標のところで、GetRandを使ってますが、まだ適当に数字を入れているだけです。
(1体しか表示されてないので)本来は画面右端の画面外から画面内に出てくるように設計を立ててます。
というか、座標のX時点で画面内ギリギリ入ってますね、なんか(殴)
なので、どうか詳しいアドバイス・ご指摘・ご指南のほうをよろしくお願いします。
ここ数日なぜかこちらのサイトにつながらなくて、焦りましたが、
今日恐る恐る来てみたらまた観覧できるようになってました。
ちょっと一安心。
今日なのですが・・ちょっと、立てていたスケジュールの進行がかなり遅れていて、
このままだと里帰りできないため、気合い入れて作っているのですが・・やっぱり詰まりました。
えと、前にも似たような(?)質問したと思うのですが、敵の出し方です。
クラスで書いています。(というかこの質問・・しましたっけ?)
まずは・・中途半端なソースコードでも・・(所々分からずひとまずおいてたりしてます)。
今回は、雑魚敵のクラスです。
class EZako
{
int EZako;
int TEZako;
int EZakoX, EZakoY;
double TEZakoX, TEZakoY;
//↓はあれです・・当り判定で消滅した時の画像のために用意しましたが・・まだ使わんかも。
int BotuEZako, BotuTEZako;
int EZSpeed;
int EZCounter;
int EZLife;
int TEZ_Set;
float Target_angle;
//自機のXY
int ZikiX, ZikiY;
public:
EZako();
void EZ_move();
void TEZ_move();
};
//雑魚的の初期化
EZako::EZako()
{
//座標設定
EZakoX = 640;
EZakoY = GetRand(300);
TEZakoX = 640;
TEZakoY = GetRand(200);
EZLife = 1;
//敵の早さ
EZSpeed = 3;
//敵のセット(制御的な?)
TEZ_Set = 0;
//画像ロード
EZako[5] = LoadGraph("EZako.bmp");
TEZako = LoadGraph("EZako.bmp");
}
//波敵
void EZako::EZ_move()
{
//毎フレームに5加算
EZCounter += 3;
//雑魚敵の座標を移動している方向に移動
//Y = y方向中心位置 + 振幅 * sin( π/周期 * e.cnt );
EZakoX -= 1;
EZakoY = 100 + 25*sin( PI/100 * EZCounter);
DrawGraph( EZakoX, EZakoY, EZako[5], TRUE);
}
//特攻敵
void EZako::TEZ_move()
{
//もし、特攻Xが320以上ならまっすぐ進む。
if( TEZakoX > 320)
{
TEZakoX -= EZSpeed;
}
//320を過ぎたなら、自分から見た自機の角度を保持して特攻する
else
{
if( TEZ_Set == 0)
{
//自機から見た敵の角度
Target_angle = atan2(TEZakoY - ZikiY, TEZakoX - ZikiX)
TEZ_Set = 1;
}
TEZakoX -= cos(Target_angle) * EZSpeed;
TEZakoY -= sin(Target_angle) * EZSpeed;
}
DrawGraph( TEZakoX, TEZakoY, TEZako, TRUE);
}
です。
ひとまず、今は敵がそれぞれ特攻と波で1体ずつ出ています。
それぞれ名称は違いますが、同じ画像を使用しています。
えと、それで・・今回は少し困ったことが多いのですが・・。
☆問題☆
①敵の体力は設定しているものの、ステージが進むにつれて体力が増えるため、
どうしていいか分からない。
②敵は、最初は8機。2ステ:14機、3ステ:20機、4ステ:40機、5ステ:50機
おり、波と特攻で分かれている(ステ1なら波5・特3)。そこはいいのだが、
これらの数をどうやってステージごとに管理・表示していいかわからない。(ちなみに、
敵は1機倒されるごとに1機増える。(右端からY軸ランダムで出現)
③敵を複数表示するため配列を使い、またそれプラスfor文を使用して敵を
表示したいがうまくいかない。(誰か配列も含め詳しく教えてください)
④③でもし1ステージの敵がそれぞれ表示できても、2ステージからは
どうすればいいのか、アドバイスがほしい。
⑤というか、上記のソースコードではこれらの問題を解決するための
ものがまだ書かれていない・足りていない&あれこれ考えてごちゃごちゃして
手が止まってしまうため、「これとかこのために用意したり、こんな風に使えばいいんじゃね?」
的なアドバイスがほしい。
⑥一応体力など決めてはいるが・・このままの当り判定に関して別のクラスを作ろう
と考えているため、ここで設定しても意味がないような気がするが・・どうでしょう?
が、今のところ困っている雑魚敵の問題です。
てかここで詰まってるとボスで泣きそうな予感がします。
雑魚敵の座標のところで、GetRandを使ってますが、まだ適当に数字を入れているだけです。
(1体しか表示されてないので)本来は画面右端の画面外から画面内に出てくるように設計を立ててます。
というか、座標のX時点で画面内ギリギリ入ってますね、なんか(殴)
なので、どうか詳しいアドバイス・ご指摘・ご指南のほうをよろしくお願いします。