三角型の弾幕について・・・

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
situmon

三角型の弾幕について・・・

#1

投稿記事 by situmon » 16年前

チェンやチルノ、龍神録の2面でも使われる、
2つ(ひとつはたぶん応用)のつくりはどうなっているのですか?
使いたいのですが、考えても計算式が思いつきません。

situmon

Re:三角型の弾幕について・・・

#2

投稿記事 by situmon » 16年前

これは星蓮船でもつかわれていました。

チルチル

Re:三角型の弾幕について・・・

#3

投稿記事 by チルチル » 16年前

私も三角型の弾幕は作った事が無かったので効率悪いですが・・
V字型

float Angle=atan2( Player.y-Boss.y , Player.x-Boss.x );//とりあえず自機を狙う

for( j=-3;j<4;j++ ){//ショットfor文

	for( i=0;i<MAX;i++ ){//ショットfor文
	if( EnemyShot.flag==0 )break;
	}

	EnemyShot.flag=1;//フラグ
	EnemyShot.x=Boss.x+cos(Angle-PI/2)*(j*15)+cos(Angle)*((3-fabs(j))*15);//X座標
	EnemyShot.y=Boss.y+sin(Angle-PI/2)*(j*15)+sin(Angle)*((3-fabs(j))*15);//Y座標
	EnemyShot.Angle=Angle;//角度
	EnemyShot.Speed=3;//スピード

}//ショットfor文



ピラミット型

float Angle=atan2( Player.y-Boss.y , Player.x-Boss.x );//とりあえず自機を狙う

for( t=0;t<7;t++ ){//ショットfor文

	for( j=-6+t;j<7-t;j+=2 ){//ショットfor文

		for( i=0;i<MAX;i++ ){//ショットfor文
		if( EnemyShot.flag==0 )break;
		}

		EnemyShot.flag=1;//フラグ
		EnemyShot.x=Boss.x;//X座標
		EnemyShot.y=Boss.y;//Y座標
		EnemyShot[i].Angle=Angle+(float)j/20;//角度
		EnemyShot[i].Speed=2+(float)t/2;//スピード

	}//ショットfor文

}//ショットfor文
ちなみにfabsは絶対値関数です。

situmon

Re:三角型の弾幕について・・・

#4

投稿記事 by situmon » 16年前

すいません、できませんでした。
fabsがつかえないのと
あとなぜこうすると三角弾幕ができるのかを教えてくださるとうれしいです。

チルチル

Re:三角型の弾幕について・・・

#5

投稿記事 by チルチル » 16年前

私の作るコードはわかりにくいですからね・・
fabsを使うには<math.h>ヘッダをインクルードする必要がありますが
シューティングだとサインとかコサインとかを使いますから、おそらくインクルードしてますよね。
とりあえずfabsがなぜ使えないのかを教えて下さい、
でもよく考えたらfabsは実数型ですが、今回は整数を使っているのでabs関数でよかったですね・・
abs関数もfabsと使い方は同じです、abs関数を使う場合は<stdlib.h>または<math.h>ヘッダをインクルードして下さい。



なぜ三角弾幕になるかと言うと、V字型の場合はカウンタの値を使って弾をV字型に配置して
Angleの方向に同じ速度で飛ばしています。

EnemyShot.x=Boss.x+cos(Angle-PI/2)*(j*15)+cos(Angle)*((3-fabs(j))*15);//X座標
EnemyShot.y=Boss.y+sin(Angle-PI/2)*(j*15)+sin(Angle)*((3-fabs(j))*15);//Y座標

のBoss.x+はボスの座標なので発射点です、

cos(Angle-PI/2)*(j*15)は弾をAngleと直角に動かす式です、
Angle-PI/2でAngleと直角の角度にしています。
(j*15)は移動距離でもあり移動方向でもあります、
jはマイナスからプラスになるので0の時は発射点から動きません。

cos(Angle)*((3-fabs(j))*15)は弾をAngleの方向に動かす式です、
jは-3,-2,-1,0,+1,+2,+3と変化するので、
fabs関数で絶対値を求めると+3,+2,+1,0,+1,+2,+3になります、
この値を3から引いて反比例させると0,+1,+2,+3,+2,+1,0になるので、
これを移動距離にすれば真ん中に近いほど前に進み、端に行くほど動かないようになります。

この二つの動きを組み合わせるとV字型になります。



ピラミット型は最初は弾が全部発射点に重なっているんですが、
角度とスピードに差を付けることで進んでいくうちにピラミット型になります。

EnemyShot.Angle=Angle+(float)j/20;//角度
EnemyShot.Speed=2+(float)t/2;//スピード

のスピードの方はtが0~6まで変化するので
tが大きくなるほど弾のスピードが速くなるようになっています、
そのままだと差が大きすぎるしtが0の時はスピードも0になってしまうので、
2+(float)t/2としています、

角度の方なんですが、
-6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6
と言う数値の並びを想像して下さい、
jはこの範囲で変化します、
そしてこの数値を使って角度をAngleからずらしていきます、
j+=2としているので二個置きに変化します、
tが増えるごとにjの最小値と最大値が減っていきます、
tが0の時はjが-6 -4 -2 0 +2 +4 +6と変化して、
tが6の時はjは0で一回実行されて終わりです、

この二つを組み合わせることで上の段に行くと弾が一つ減りスピードが上がると言う変化を作ります。



私は説明も下手なので多分この説明じゃ不十分だと思うので、遠慮せずに聞いて下さい。

めいらる

Re:三角型の弾幕について・・・

#6

投稿記事 by めいらる » 16年前

人によって全く違うコードで実装されてて面白いですね~。勉強になります!

私のシューティングにもショットガン(ピラミッド型の速度差の付いた弾のことをそう呼んでます;)は実装されていて画像のような感じで弾を並べられます。

やっていることはチルチルさんとほとんど同じだと思いますが、私のシューティングでは一体の敵は一種類のnwayショットしか撃てない仕様のため、1フレームの間に一時的にway数と速度をいじくって複数回発射することによりムリヤリ三角に配置してます 

Dixq (管理人)

Re:三角型の弾幕について・・・

#7

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

三角に発射する方法は大体3種類かなと思います。

・1点から同時に三角の向きに発射する
これは時間と共に大きくなります。

・最初から三角の形をつくり、等速、等角で飛ばす
これは大きさ固定ですが、突然でかい三角形が出てくるので演出が少し安っぽくなるかも

・上と同じ物を時間差で発射して同じ形になるようにする


ん~なかなか携帯で説明するのは難しい‥。

作りたい三角形は進行方向と垂直の向きに裾が広がるわけですから広がりを進行方向+90度で計算すればどうでしょう。

チルチル

Re:三角型の弾幕について・・・

#8

投稿記事 by チルチル » 16年前

あ~確かに、
>>上と同じ物を時間差で発射して同じ形になるようにする
って言うのは良いかもしれませんね。

Dixq (管理人)

Re:三角型の弾幕について・・・

#9

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

作ってみました。これでどうでしょう?

WIDE010の値で弾の行の間隔を決められます。
発射時間を変更する事で弾の列の間隔を決められます(但しこの場合計算式も少々弄る必要あり)

上でも述べたとおり「進行方向と90度異なった方向に行が伸びる」考え方で作っています。
まず、同時に発射するのは進行方向と垂直な行成分ですよね。
ですから画像のsub1分だけまず一番端に座標をずらしてやり、
そこからsub2分(弾1つ分)だけずらしながら弾を置いていけばいいと思います。

画像
//ただの円形発射
void boss_shot_bulletH010(){
#define TM010 180
#define WIDE010 20

    int i,k,t=boss_shot.cnt%TM010,t2=boss_shot.cnt;
    static double RemAngle;

    if(t==0){//最初の角度を記憶
        RemAngle = bossatan2();
    }

    //60カウント以下で10カウントに1回
    if(t<60 && t%10==0){
        for(i=0; i<t/10+1; i++){
            if((k=search_boss_shot())!=-1){
                double x_sub1 = cos(RemAngle+PI/2)*(WIDE010/2) * (t/10);
                double y_sub1 = sin(RemAngle+PI/2)*(WIDE010/2) * (t/10);
                double x_sub2 = cos(RemAngle+PI/2)*(WIDE010/2) * (i*2);
                double y_sub2 = sin(RemAngle+PI/2)*(WIDE010/2) * (i*2);

                boss_shot.bullet[k].col   = 0;//弾の色
                boss_shot.bullet[k].x     = boss.x - x_sub1 + x_sub2;//座標
                boss_shot.bullet[k].y     = boss.y - y_sub1 + y_sub2;
                boss_shot.bullet[k].knd   = 8;//弾の種類
                boss_shot.bullet[k].angle = RemAngle;//角度
                boss_shot.bullet[k].flag  = 1;
                boss_shot.bullet[k].cnt   = 0;
                boss_shot.bullet[k].spd   = 2;//スピード
                se_flag[0]=1;
            }
        }
    }
}
 

situmon

Re:三角型の弾幕について・・・

#10

投稿記事 by situmon » 16年前

みなさんありがとうございます。
しかしシューティングの館と構造が違うので、
上記のコードをなおしてるのですが・・・
シューティングの館の構造でできる方法はないものでしょうか?

通りすがり

Re:三角型の弾幕について・・・

#11

投稿記事 by 通りすがり » 16年前

理論もサンプルも示されているのに実現出来ないということは、
完全に答えを貰わないと実現出来ないということになりますね。
それでは上達しませんよ。

situmon

Re:三角型の弾幕について・・・

#12

投稿記事 by situmon » 16年前

void enemy_shot_pat7(int i){

#define WIDE010 20

    int h,t2=e_shot.count;
	int t = e_shot.count;
	int j = e_shot.count;
    static double RemAngle;

    if(t==0){//最初の角度を記憶
        RemAngle = atan2(enemy.x-player.x,enemy.y-player.y);
    }

    //60カウント以下で10カウントに1回
    if(t<60 && t%10==0){
        for(h=0; h<t/10+1; h++){
                double x_sub1 = cos(RemAngle+PI/2)*(WIDE010/2) * (t/10);
                double y_sub1 = sin(RemAngle+PI/2)*(WIDE010/2) * (t/10);
                double x_sub2 = cos(RemAngle+PI/2)*(WIDE010/2) * (h*2);
                double y_sub2 = sin(RemAngle+PI/2)*(WIDE010/2) * (h*2);

		e_shot.bullet[j].flag=1;
		e_shot.bullet[j].x=enemy.x - x_sub1 + x_sub2;
		e_shot.bullet[j].y=enemy.y - y_sub1 + y_sub2;
		e_shot[i].bullet[j].img=5;
		e_shot[i].bullet[j].col=3;
        e_shot[i].bullet[j].spd=3.0f;
		e_shot[i].bullet[j].angle=RemAngle;//角度
        }
    }
	for(int j=0;j<200;j++){
		e_shot[i].bullet[j].x+=e_shot[i].bullet[j].spd*cos(e_shot[i].bullet[j].angle);
		e_shot[i].bullet[j].y+=e_shot[i].bullet[j].spd*sin(e_shot[i].bullet[j].angle);
		   }
}


としたのですが・・・

チルチル

Re:三角型の弾幕について・・・

#13

投稿記事 by チルチル » 16年前

う~ん、私はシューティングの館のコードも龍神録のコードも理解できなかったので、
的確には答えられませんが、とりあえずどこがうまくいかないのか教えてくれれば、
わかる範囲で手伝いますが・・

チルチル

Re:三角型の弾幕について・・・

#14

投稿記事 by チルチル » 16年前

他のショットは撃てるんですよね?

situmon

Re:三角型の弾幕について・・・

#15

投稿記事 by situmon » 16年前

返事が遅くなってすいません。
他のショットはばっちりです。

チルチル

Re:三角型の弾幕について・・・

#16

投稿記事 by チルチル » 16年前

ではとりあえず弾を一発だけ登録するコードを教えて下さい
できる限り理解して発展させてみます

あと変数名には何の変数か注釈をお願いします・・

チルチル

Re:三角型の弾幕について・・・

#17

投稿記事 by チルチル » 16年前

ところでシューティングの館の構造になおすのが失敗した原因は何ですか?

situmon

Re:三角型の弾幕について・・・

#18

投稿記事 by situmon » 16年前

返事遅くてすいません。
失敗した原因・・・

boss_shotではないため
たくさんの配列を用意している。
・・・e_shot

#define TM010 180
#define WIDE010 20
などをつかっていない。

このコードを入れないければいけない・・・
for(int j=0;j<200;j++){
		e_shot.bullet[j].x+=e_shot.bullet[j].spd*cos(e_shot.bullet[j].angle);
		e_shot.bullet[j].y+=e_shot.bullet[j].spd*sin(e_shot.bullet[j].angle);
		   }


どれがどの文字にあてはまるのかが複雑でわからなかった。

ことです。

あとひとつうつショットのコードは
void enemy_shot_pat1_e(int i){

     for(int j=0;j<1;j++){
       if(e_shot.count==0){
		e_shot.bullet[j].flag=1;
		e_shot.bullet[j].x=e_shot[i].ex;
		e_shot[i].bullet[j].y=e_shot[i].ey;
		e_shot[i].bullet[j].img=5;
		e_shot[i].bullet[j].col=j%6;
        e_shot[i].bullet[j].spd=1.0f;
		e_shot[i].bullet[j].angle=PI2/100*j+atan2(player.y-e_shot[i].bullet[j].y,player.x-e_shot[i].bullet[j].x);

	    PlaySoundMem( sound_effect[4] , DX_PLAYTYPE_BACK ) ;
		   }
}
	for(int j=0;j<1;j++){
		e_shot[i].bullet[j].x+=e_shot[i].bullet[j].spd*cos(e_shot[i].bullet[j].angle);
		e_shot[i].bullet[j].y+=e_shot[i].bullet[j].spd*sin(e_shot[i].bullet[j].angle);
		   }

}

です。

チルチル

Re:三角型の弾幕について・・・

#19

投稿記事 by チルチル » 16年前

void enemy_shot_pat1_e(int i){

	static float Angle;

	if( e_shot.count==0 )Angle=atan2(player.y-e_shot.bullet[j].y,player.x-e_shot.bullet[j].x);

	static int j,t;

	if( e_shot.count==0 )j=0;

	if(e_shot.count<=20 && e_shot.count%5==0){

		t=j+e_shot.count/5;

		float p=(float)(t-j)/2;

		for(;j<=t;j++){

			e_shot.bullet[j].flag=1;
			e_shot.bullet[j].x=e_shot.ex+cos(Angle+PI/2)*(float)(10*(t-j)-5*p);
			e_shot[i].bullet[j].y=e_shot[i].ey+sin(Angle+PI/2)*(float)(10*(t-j)-5*p);
			e_shot[i].bullet[j].img=5;
			e_shot[i].bullet[j].col=j%6;
			e_shot[i].bullet[j].spd=1.0f;
			e_shot[i].bullet[j].angle=Angle;

		}

		PlaySoundMem( sound_effect[4] , DX_PLAYTYPE_BACK ) ;

	}

	for(int j=0;j<15;j++){
		e_shot[i].bullet[j].x+=e_shot[i].bullet[j].spd*cos(e_shot[i].bullet[j].angle);
		e_shot[i].bullet[j].y+=e_shot[i].bullet[j].spd*sin(e_shot[i].bullet[j].angle);
	}

}
こんな感じでしょうかね?
私の所ではシューティングの館のコードは実行できないので
多分ちゃんと動かないでしょうね・・

アルゴリズムの設計を手伝うので
それを基にコードを作ってみてはどうですか?

すみません、頼りなくて・・

situmon

Re:三角型の弾幕について・・・

#20

投稿記事 by situmon » 16年前

やってみましたが・・・
自機を向いてくれないのと
if( e_shot.count==0 )Angle=atan2(player.y-e_shot.bullet[j].y,player.x-e_shot.bullet[j].x);


でjが定義されていないのでエラーが出ました。
static int j,t;を先においたらなんとかできましたが・・・
やはり自機を向いてくれないです・・・

チルチル

Re:三角型の弾幕について・・・

#21

投稿記事 by チルチル » 16年前

自機を向いてくれないのは多分

e_shot.bullet[j].angle=PI2/100*j+atan2(player.y-e_shot.bullet[j].y,player.x-e_shot.bullet[j].x);



Angle=atan2(player.y-e_shot.bullet[j].y,player.x-e_shot.bullet[j].x);

にしたからですね

改良すると
void enemy_shot_pat1_e(int i){

	static float Angle;

	static int j,t;

	if( e_shot.count==0 ){

		j=0;

		Angle=PI2/100*j+atan2(player.y-e_shot.bullet[j].y,player.x-e_shot.bullet[j].x);

	}

	if(e_shot.count<=20 && e_shot.count%5==0){

		t=j+e_shot[i].count/5;

		float p=(float)(t-j)/2;

		for(;j<=t;j++){

			e_shot[i].bullet[j].flag=1;
			e_shot[i].bullet[j].x=e_shot[i].ex+cos(Angle+PI/2)*(float)(10*(t-j)-5*p);
			e_shot[i].bullet[j].y=e_shot[i].ey+sin(Angle+PI/2)*(float)(10*(t-j)-5*p);
			e_shot[i].bullet[j].img=5;
			e_shot[i].bullet[j].col=j%6;
			e_shot[i].bullet[j].spd=1.0f;
			e_shot[i].bullet[j].angle=Angle;

		}

		PlaySoundMem( sound_effect[4] , DX_PLAYTYPE_BACK ) ;

	}

	for(int j=0;j<15;j++){
		e_shot[i].bullet[j].x+=e_shot[i].bullet[j].spd*cos(e_shot[i].bullet[j].angle);
		e_shot[i].bullet[j].y+=e_shot[i].bullet[j].spd*sin(e_shot[i].bullet[j].angle);
	}

}
でしょうかね、

しかし自機を向いてくれないって事は
一応三角にはなったんでしょうか?

situmon

Re:三角型の弾幕について・・・

#22

投稿記事 by situmon » 16年前

やはりなおりません・・・が考えて見ます。

situmon

Re:三角型の弾幕について・・・

#23

投稿記事 by situmon » 16年前

あとなぜこんな弾ができるのかの原理を教えていただけると助かります。

チルチル

Re:三角型の弾幕について・・・

#24

投稿記事 by チルチル » 16年前

すいません、役に立たなくて・・

原理はそんなに難しくありません

弾を横に並べて行って、一番端までの長さの半分だけ逆方向にずらしています

つまり・・

△△△△△


こう並べて

△△△△△
__○

逆方向にずらす

実際は一個ごとにずらしています

(自機の方向に直角な角度)×(カウンタ×弾の間隔-(弾の間隔の半分×(弾の数-1)))

みたいな感じかな・・

弾を五個並べる場合
自機の方向に直角な方向にfor文で 角度×カウンタ×弾の間隔
みたいな感じで配置します

自機が前にいるなら、どちらでもいいですが、とりあえず右に伸ばすとして・・
弾の間隔が10として

発射点との距離が 0 10 20 30 40
最大値は40なので半分の20だけ左に戻すと・・

-20 -10 0 +10 +20

となります

これを数カウントごとに弾の数を増やしながら
やると三角になります

for文の式が浮かばなかったら
とりあえず呼ばれた回数でスイッチ文とかを
作って
一回目は0で一回
二回目は-5 +5で二回
三回目は-10 0 +10で三回
みたいに条件分岐してもいいかも・・

situmon

Re:三角型の弾幕について・・・

#25

投稿記事 by situmon » 16年前

>すいません、役に立たなくて・・
すごく手伝ってくれて本当に助かります。
原理も時間があるときゆっくりよみます。

チルチル

Re:三角型の弾幕について・・・

#26

投稿記事 by チルチル » 16年前

はい、どうぞゆっくりとやって下さい。
これができたら次はV字型を・・

チルチル

Re:三角型の弾幕について・・・

#27

投稿記事 by チルチル » 16年前

よく考えたらV字型の方が簡単かも・・

アルゴリズムは・・

一回目は自機の方向を記録して
その角度に一発だけ発射

二回目以降は
-1→+1みたいなfor文で
記録した角度と直角な方向に
弾幕のカウンタ×for文のカウンタ
だけ進めた位置に
記録した角度を弾の角度にして登録

みたいな感じかな・・

Ma

Re:三角型の弾幕について・・・

#28

投稿記事 by Ma » 16年前

質問者ではないのですが、私も三角形弾幕を導入しようとして、上手くいっていないので質問させてください。
(新しく投稿したほうが良かったら教えてください。出直します。)

私は龍神録のプログラムではない独自の物を作っているため、
事情が変わり勝手に勘違いをしているかもしれませんが
できるかぎり私が考えている事を伝えられるよう努力します。

私の疑問としては、静的変数がどうして維持できるか という点にあります。

みなさんのコードを見ていると、
>static float Angle;
>static double RemAngle;
のように、角度を保存するために静的変数が使われていますが、
いくつかの敵がこの同じショットを同時に行った場合、
すなわちこの関数が複数の敵に同時に呼ばれた場合、静的変数 がふたつ以上の敵によって操作されるので
変数の中身が変わってしまうのではないのですか?


龍神録のプログラムを一部しか見ていないので、勝手な勘違いをしているのかもしれませんが
私の想像では、どこかの cpp ファイル(shotH.cpかな?)にこの関数が宣言されていて、
その関数をどの敵でも呼び出せるようにしているのですよね?

ならば、「static が書き換えられてしまうのではないか?」と思ったのです。

よろしくお願いします。<(_ _)>

チルチル

Re:三角型の弾幕について・・・

#29

投稿記事 by チルチル » 16年前

そういえばそうですよね・・

私も龍神録のプログラムが理解できなかったので
独自の処理を行っています

なのでよくわかりませんが

そのうち誰かが来て答えてくれるんじゃないでしょうか・・

ちなみにMaさんの作っているゲームはどんな感じですか?

Ma

Re:三角型の弾幕について・・・

#30

投稿記事 by Ma » 16年前

>チルチル 様
宣伝になってしまわないか心配ですが^^;
トップビューの2Dシューティングを製作しています。

公式:
http://cielsorciere.web.fc2.com/index.html

Justy

Re:三角型の弾幕について・・・

#31

投稿記事 by Justy » 16年前


>ならば、「static が書き換えられてしまうのではないか?」と思ったのです。

 このスレの頭から読んでちゃんと理解しているわけではないので推測ですが、
いくつかの敵がこの同じショットを同時に行った場合は書き換えられてしまうので、
誤動作するでしょう。


 最初にこのスレで staticが出てきたのは No:33236の Dixqさんのコードですが
こちらはボスのショットを前提としているように見えます。

 龍神録のプログラムではボスは同時には1体しか出ませんし、
そのボスがこのショットを同時に使わなければ問題は出ない、ということで
staticにしたのでしょう。

Ma

Re:三角型の弾幕について・・・

#32

投稿記事 by Ma » 16年前

>Justy 様
やはりそうでしたか。
回答ありがとうございました。

チルチル

Re:三角型の弾幕について・・・

#33

投稿記事 by チルチル » 16年前

Maさんはかなり本格的にゲームを製作しているようですね
これは私も負けていられませんね

そういえば上に書いたコードがうまく動かないのって
staticが変更されてたからなのかな?

見るからに複数の敵に呼ばれてるし・・
でもそれならもっとぐちゃぐちゃになるかな?

Dixq (管理人)

Re:三角型の弾幕について・・・

#34

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

Justyさんの仰るとおり、ボスが一体しかいないので、staticを使いました。
このstatic変数はini関数で変数諸々初期化する時に一緒に初期化されないので、少々危険ではありますが、
(途中でゲームをやめて再スタートした時などに再度呼ばれるとバグが出る可能性がある)
必ずこの関数が初めて呼ばれる時は初期化されるように気をつけて使っていました。

雑魚的などでこれと同じ事をする時は、雑魚的の変数構造体の中に入れてやるようにしています。
統一した方がよかったですね、すみません。
初期化漏れの可能性もあり、うまく動いているように見えるのにリプレイを動かしてみるとうまくいかないといった原因解明の難しいバグが生まれる可能性があるので、
static変数の乱用はしない方がいいかもしれません。

Ma

Re:三角型の弾幕について・・・

#35

投稿記事 by Ma » 16年前

>チルチル 様
初心者には違いありませんので、がんばりたいと思います^^;

管理人様、返信ありがとうございます。
そうですね、やはり構造体の中でデータを保存した方が良いのでしょう。
△弾幕が上手くできないのはこの方法で解決しました。
static の使用はできるだけ避けた方がよさそうですね。
ありがとうございました。

situmon

Re:三角型の弾幕について・・・

#36

投稿記事 by situmon » 16年前

staticをbossではなく普通の敵につかうとあまりよくないのですね・・・

チルチル

Re:三角型の弾幕について・・・

#37

投稿記事 by チルチル » 16年前

いや~しかしMaさんのゲームは普通のオンラインゲームと同じぐらいの存在感がありますね、
完成したらぜひやらせていただきます。

それにしても、皆さんかなり真剣にゲームを製作しているようですね、
何か真面目に作ってても無意識のうちに手を抜いちゃう自分が恥ずかしい・・

Ma

Re:三角型の弾幕について・・・

#38

投稿記事 by Ma » 16年前

>チルチル 様
ありがとうございます。期待にこたえられるように、がんばりたいと思います。
それでは、これ以上トピックに関連のないことであげてしまうのは申し訳ないので、
もう書き込まないようにします。

閉鎖

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