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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
amehirune
記事: 181
登録日時: 11年前
住所: どっか
連絡を取る:

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

#1

投稿記事 by amehirune » 10年前

お久しぶりです、アメヒルネです。
今回はちょっとプログラミングとは離れた内容になります。

私は今、弾幕作成と同時進行で自機ショットの威力の調節を行っていますが、
なかなかそれっぽい感じになりません。
そこで今までに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];
                        }
                }
        }
}
ほら、来いよ!! 誤字や矛盾を指摘したい奴から、前に出てこいよぉおおおおおおおッ!!!
※都合により、不定期でしか現れません。即返などはできませんのでご了承ください※

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

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

#2

投稿記事 by usao » 10年前

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

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

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

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

#3

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

弾の性能は、弾速や弾密度、当たり範囲、威力など総合的なものなので威力だけで決まるものなのか疑問なのですが、まんま龍神録と同じでないと比較できなかいと思いますよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前
住所: 北海道札幌市
連絡を取る:

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

#4

投稿記事 by Dixq (管理人) » 10年前

ちなみに四聖龍神録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では近くでうつほど強く、遠くで撃つほど弱いです。
弾が発射されてから時間がたつほど弱くなっていきます。

アバター
amehirune
記事: 181
登録日時: 11年前
住所: どっか
連絡を取る:

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

#5

投稿記事 by amehirune » 10年前

返信が遅れてしまい、申し訳ないです。

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

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

Dixqさん≫
まさか管理人さんが直々に回答をくださるなんて…。感謝の言葉を申し上げます。
ショットが打たれてからの時間を各構造体内のcnt変数に保存しておいて、それを+1した値で威力を割る…的なものでいいのでしょうか?
威力や個数等、参考にさせて頂きます!
ほら、来いよ!! 誤字や矛盾を指摘したい奴から、前に出てこいよぉおおおおおおおッ!!!
※都合により、不定期でしか現れません。即返などはできませんのでご了承ください※

アバター
amehirune
記事: 181
登録日時: 11年前
住所: どっか
連絡を取る:

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

#6

投稿記事 by amehirune » 10年前

申し訳ありません、解決にするのを忘れていました。
管理人さんの設定をベースに、ある程度の調整を行いました。
これからいろいろいじるかもしれないので、コードは載せません。
オフトピック
たまにはログを見返すのも大切ですね…
ほら、来いよ!! 誤字や矛盾を指摘したい奴から、前に出てこいよぉおおおおおおおッ!!!
※都合により、不定期でしか現れません。即返などはできませんのでご了承ください※

閉鎖

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