今回の内容
1.パワーアップについて
2.パワーアップアイテムのパワー増加量調整
3.ミスをしたときのパワーに関する処理
4.ボスが落とすアイテム
5.フルパワー時のアイテムの処理
6.初期パワー設定変更
7.ボム時のパワー消費
8.スペルプラクティスのゲームオーバー
9.クリア時のボム
1.パワーアップについて
今回は通常ショットについての処理を変更します。
通常時では
0:自機から二発メインショット、低速時は詰める。
1:自機後方にオプションが一個追加される。
オプションからはホーミングショットが撃たれる。
オプションは低速時に近づく。
2:二つのオプションが左右後方につく。
それぞれメインショットとホーミングショットの両方を撃つ。
3:更に後方に1:と同じオプションがつく。
以降は見た目には変化なし。
そのままでは2つまでしか出せないオプションを増やします。
GV.hの以下を変更
オプションの動きを計算します。
オプションの自機からの位置の設定
cshot.cppで
OPTION_X OPTION_Yの定義の代わりに
を書く。
オプションの動きについては以下のものと入れ替えます。
//オプションのボンボン計算
void calc_option_bb(){
//自機後方のものについて
if((ch.power>=100 && ch.power=300){
option_bb[0].flag=1;
if(CheckStatePad(configpad.slow)==0){
option_bb[0].x=ch.x+option_x[0];
option_bb[0].y=ch.y+option_y[0]+sin(PI2/150*ch.cnt)*20;
}
else{
option_bb[0].x=ch.x+option_x[0]/2;
option_bb[0].y=ch.y+option_y[0]/2;
}
option_bb[0].cnt++;
}
else option_bb[0].flag=0;
//左右のものについて
if(ch.power>=200){
option_bb[1].flag=1;
option_bb[2].flag=1;
if(CheckStatePad(configpad.slow)==0){
option_bb[1].x=ch.x+option_x[1];
option_bb[1].y=ch.y+option_y[1]+sin(PI2/150*ch.cnt)*20;
option_bb[2].x=ch.x+option_x[2];
option_bb[2].y=ch.y+option_y[2]+sin(PI2/150*ch.cnt)*20;
}
else{
option_bb[1].x=ch.x+option_x[1]/3;
option_bb[1].y=ch.y+option_y[1]/2;
option_bb[2].x=ch.x+option_x[2]/3;
option_bb[2].y=ch.y+option_y[2]/2;
}
option_bb[1].cnt++;
option_bb[2].cnt++;
}
else{
option_bb[1].flag=0;
option_bb[2].flag=0;
}
}
function.hに
を追加し、
メインループのcase CLEAR:に
を追加します。
ショット関数の変更
自機ショットの登録を簡略化する関数を用意し、
通常ショットの登録を行う関数を変更しました。
//自機ショット登録関数
void enter_cshot_bullet(int img,int knd,int power,double x,double y,double angle,double spd){
int k=search_cshot();
if(k!=-1){
cshot[k].angle=angle;
cshot[k].cnt=0;
cshot[k].flag=1;
cshot[k].img=img;
cshot[k].knd=knd;
cshot[k].power=power;
cshot[k].spd=spd;
cshot[k].x=x;
cshot[k].y=y;
}
}
//通常ショット登録
void ch0_shot_pattern(){
//本体からのショット
enter_cshot_bullet(img_cshot[0],0,(ch.power=100){//キャラが通常か喰らいボム状態で、ボムがオフなら
if(CheckStatePad(configpad.bom)==1){//ボムボタンが押されたら
ch.power-=100;
enter_bom();
}
}
スペルプラクティスでゲームオーバーになったら
そのままスペル選択画面に戻す処理を追加
control.cppのcontrol_main()に以下を追加
//残機0なら
if( ch.num 0 || clear_count>45))){//クリア後一定時間経過後の状態でなければ
if((ch.flag==0||ch.flag==1) && bom.flag==0 && ch.power>=100){//キャラが通常か喰らいボム状態で、ボムがオフなら
if(CheckStatePad(configpad.bom)==1){//ボムボタンが押されたら
ch.power-=100;
enter_bom();
}
}
}
上にも書きましたがボム中にボスの弾幕が終了すると
アイテムが2倍になるのは仕様なのでしょうか?
また、次のエクステンドまでの表示が常に200なのはなぜなのでしょうか?
ファンタズムでは最初のエクステンドは100ポイントの時のようです。