ページ 11

【龍神録】自機ショットの威力

Posted: 2014年10月17日(金) 08:25
by amehirune
お久しぶりです、アメヒルネです。
今回はちょっとプログラミングとは離れた内容になります。

私は今、弾幕作成と同時進行で自機ショットの威力の調節を行っていますが、
なかなかそれっぽい感じになりません。
そこで今までにSTGを作られた方にお尋ねしたいのですが、
・ホーミングショット
・前方集中
の、二つの装備の、「メインショットの威力」と「オプションショットの威力」を教えて頂けないでしょうか?
※因みにメインショットの威力は、2装備共通です。※

コード:

//通常ショット登録
void ch0_shot_pattern(){
        int k;
		int n=cshot0num[ch.power<200?0:1];
		int b=1;
		if(bom.flag==1)	b=stage+1;
        for(int i=0;i<n;i++){
                if((k=search_cshot())!=-1){
                        cshot[k].flag=1;
                        cshot[k].cnt=0;
                        cshot[k].angle=-PI/2;
                        cshot[k].spd=20;
                        cshot[k].x=ch.x+cshot0pos_x[i];
                        cshot[k].y=ch.y+cshot0pos_y[i];
                        cshot[k].power=30/b;
                        cshot[k].knd=0;
                        cshot[k].img=img_cshot[0];
                }
        }
        se_flag[2]=1;//発射音オン
        if(ch.power>=100){
                for(int i=0;i<(ch.power<300?2:4);i++){
                        if((k=search_cshot())!=-1){
                                cshot[k].flag=1;
                                cshot[k].cnt=0;
                                cshot[k].angle=option0ang[i];
                                cshot[k].spd=15;
                                cshot[k].x=option_bb[i%2].x;
                                cshot[k].y=option_bb[i%2].y;
				                if(use_char==1)	cshot[k].power= (ch.power/100*3)/b;
				                else			cshot[k].power= (n<2 ? 6 : 5 )/b;
                                cshot[k].knd=1;
                                cshot[k].img=img_cshot[1];
                        }
                }
        }
}

//低速通常ショット登録
void ch1_shot_pattern(){
        int k;
		int n=cshot0num[ch.power<200?0:1];
		int b=1;
		if(bom.flag==1)	b=stage+1;
        for(int i=0;i<n;i++){
                if((k=search_cshot())!=-1){
                        cshot[k].flag=1;
                        cshot[k].cnt=0;
                        cshot[k].angle=-PI/2;
                        cshot[k].spd=20;
                        cshot[k].x=ch.x+cshot0pos_x[i]/3;//低速中なら位置を中心側へ
                        cshot[k].y=ch.y+cshot0pos_y[i]/2;
                        cshot[k].power=30/b;
                        cshot[k].knd=0;
                        cshot[k].img=img_cshot[0];
                }
        }
        se_flag[2]=1;
        if(ch.power>=100){
                for(int i=0;i<(ch.power<300?2:4);i++){
                        if((k=search_cshot())!=-1){
                                cshot[k].flag=1;
                                cshot[k].cnt=0;
                                cshot[k].angle=option0ang[i+4];
                                cshot[k].spd=15;
                                cshot[k].x=option_bb[i%2].x;
                                cshot[k].y=option_bb[i%2].y;
                                if(use_char==1)	cshot[k].power=(ch.power/100*3)/b;
				                else			cshot[k].power=(n<2 ? 6 : 5 )/b;
                                cshot[k].knd=1;
                                cshot[k].img=img_cshot[1];
                        }
                }
        }
}

Re: 【龍神録】自機ショットの威力

Posted: 2014年10月17日(金) 09:37
by usao
オフトピック
なんとなくですが…
時間対効果(?)みたいなのを考えてみると良いのでは? [期待されるダメージ量/時間] みたいな.
例えばその値を 武器の強さS だとして,
・発射から相手に届くまでかかる平均的な?時間(弾の速度や経路等からなんとなく与える) T
・連射性能 N[発/時間]
・単発威力A
との関係性を
S = A*N / T
とかてきとーにでっちあげて,Aを決める,みたいな.

Sの値は,ある固さの敵を破壊するのに最速で(?)どの程度の時間を要する感じに調整したいのか? みたいなのから
なんとなーくざっくりと考える.

Re: 【龍神録】自機ショットの威力

Posted: 2014年10月17日(金) 13:40
by softya(ソフト屋)
弾の性能は、弾速や弾密度、当たり範囲、威力など総合的なものなので威力だけで決まるものなのか疑問なのですが、まんま龍神録と同じでないと比較できなかいと思いますよ。

Re: 【龍神録】自機ショットの威力

Posted: 2014年10月17日(金) 21:35
by Dixq (管理人)
ちなみに四聖龍神録Plusではこのようになっています。

コード:

int mainShotNum[6] = {  2,  2,  4,  4,  4,  4};//メインショットの一度に撃つ弾の数
int mainShotPower[6] = { 75, 55, 28, 28, 28, 28};//メインショット1発の威力
int subShotNum[6] = {  0,  1,  2,  5,  5,  5};
int subShotPower[6] = {  0, 50, 30, 13, 14, 16};
添え字には0~500まで変化するch.power/100が入ります。
実はショットレベルが上がるほど弾数は増えるが1発の威力は低くなるんですよね。

後、四聖龍神録Plusでは近くでうつほど強く、遠くで撃つほど弱いです。
弾が発射されてから時間がたつほど弱くなっていきます。

Re: 【龍神録】自機ショットの威力

Posted: 2014年10月18日(土) 09:49
by amehirune
返信が遅れてしまい、申し訳ないです。

usaoさん≫
ご意見ありがとうございます。
他のお二方の意見も見てみましたが、確かに同じようなことをおっしゃっていますし、
そのようにするのが正解のようです。参考にしてみます。

softyaさん≫
確かにそうですね…時間が許す限り、計算しなおしてみます。

Dixqさん≫
まさか管理人さんが直々に回答をくださるなんて…。感謝の言葉を申し上げます。
ショットが打たれてからの時間を各構造体内のcnt変数に保存しておいて、それを+1した値で威力を割る…的なものでいいのでしょうか?
威力や個数等、参考にさせて頂きます!

Re: 【龍神録】自機ショットの威力

Posted: 2015年1月31日(土) 10:44
by amehirune
申し訳ありません、解決にするのを忘れていました。
管理人さんの設定をベースに、ある程度の調整を行いました。
これからいろいろいじるかもしれないので、コードは載せません。
オフトピック
たまにはログを見返すのも大切ですね…