今日はちとクラスの継承を見直し。
弾と敵に継承するための基礎のクラスを追加しました。
しかしどうやって雑魚に弾を撃たせよう。
一つは行動パターンそのものに埋め込むやりかた。
これだと楽だけど、発射時間がずれたら行動パターンをもう一つ作らないといけない。
もう一つは、敵にショットの情報を持たせる場合。
龍神録のように、「いつ」から、「何」を撃たせるか記憶させておく。
こっちの方がよさそうかな。
はい! 出ました!!
なんかあっけないなあ(´・ω・`)ショボーン
いや、苦労はしてるんですが、「弾が出た」の4文字で終わると思うと。
そんなわけで動画です。さっそく弾幕作っちゃうぜ。超簡単だけども。
[nico]http://www.nicovideo.jp/watch/sm14350872[/nico]
そんなわけで今日の追加分。
追加した定義色々
//雑魚の移動情報
enum{SlideX=0, //横移動
SlideY //縦移動
};
//雑魚の弾情報 0ならボスの弾
enum{Normal=1 //一発普通に撃つ(自機狙い)
,Flower //(難易度が)すんごい弾幕
};
//弾発射
void CSTGenemy::shot_mf()
{
if(Flag >0 && count>=shottime)
{
switch(shottype)
{
case Normal:
if(count==shottime) //一度だけ
TamaAppear_tr(int(x),int(y),shotspd,P,shotatk,shottype,graph,DEFAULT);
break;
case Flower:
if((count-shottime)%3==0)
{
for(int i=0; i x=x;
this->y=y;
oldposX=x;
oldposY=y;
this->spd=spd;
this->atk=atk;
this->type=type;
if(range==DEFAULT)
{
switch(graph)
{
case 0:
this->range =2;
break;
default:
printfDx("不明な弾のグラフィック(CSTGtama::appear_tr)\n");
break;
}
}
else this->range =range;
if(kacdo==P)
this->kacdo = getkacdoP(x,y);
else
this->kacdo=kacdo;
graph=graph;
set_tama_init();
}
//移動
void CSTGtama::move_mf()
{
if(Flag>0)
{
set_tama_move();
oldposX = x;
oldposY = y;
x += moveX;
y += moveY;
count++;
}
}
//死亡
void CSTGtama::dead_mf()
{
if(Flag >0 && (xSTG_TAMA_MAX_X || ySTG_TAMA_MAX_Y)) //範囲外で消滅
Flag=0;
}
//描画
void CSTGtama::draw()
{
if(Flag>0)
{
DrawCircle( int(x) +donX, int(y) +donY, range,color.blue, TRUE ) ; //仮の敵弾
}
}