敵キャラの動き(円状)について

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

敵キャラの動き(円状)について

#1

投稿記事 by Huzzy » 16年前

只今、龍神録様のコードを応用して横STGを
製作中です。

そこで質問なのですが、龍神録第12章に書かれていたような
敵のコードをどのように弄れば、画面上にて敵キャラが
常に円状にグルグル回っているような軌道を画いてくれるのでしょうか?

因みに下記のものをベースとして考えているのですが、
angを弄っても角度が変わるだけなので何処に
円の計算を入れてよいか判りません;;

//移動パターン7
//停滞してそのまま左上に
void enemy_pattern7(int i){
int t=enemy.cnt;
if(t==enemy.wait){//登録された停滞時間だけして
int r=cos(enemy.ang)< 0 ? -10 : 1;
enemy.vx=-cos(enemy.ang);//左へ
// enemy.vx=0.5;
enemy.vy=-0.1;
enemy.sp=6+rang(2);
enemy.ang=rang(PI/4)-PI*r/5;//上がっていく
enemy.muki=2-2*r;//左向き
}
}


判る方が居られましたら、ご教授の程宜しくお願いします。

すずめ

Re:敵キャラの動き(円状)について

#2

投稿記事 by すずめ » 16年前

こんにちは。
私も初心者なので人に教える立場ではないんですが、
敵の行動パターンはしっかり勉強しましたので、
私のできる範囲で回答したいと思います。

//=================================================================
//行動パターン11 左上から下へ 途中で円を1回描いて上へ
//=================================================================
void enemy_pattern11(int i){
	int t=enemy.cnt;
	if(t==0)
		enemy.vy=3.0f;
	if(t>=60 && t<540){
		enemy.vx=sin(PI*(enemy.cnt-60.0f)/160.0f)*2.0f;
		enemy.vy=sin(PI*(enemy.cnt+20.0f)/160.0f)*2.0f;
	}
	if(t>=540){
		enemy.vx=0.0f;
		enemy.vy=-3.0f;
	}
}

これはいま参考に作ったんですが、上から降りてきて1回転して
また上へいくパターンです。
if(t>=60 && t=<540) と if(t>=540) の540に320を足すごとに
回転数が1回増えます。
xとyの初期座標は、x=100, y=-20です。
なお、これは縦シューティングようです。
うまくいくといいんですが。

Huzzy

Re:敵キャラの動き(円状)について

#3

投稿記事 by Huzzy » 16年前

すずめ様のお陰で問題解決出来ました。
有難う御座いました。

すずめ

Re:敵キャラの動き(円状)について

#4

投稿記事 by すずめ » 16年前

役にたてたなら私もうれしいです。

閉鎖

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