ページ 1 / 1
地霊殿
Posted: 2009年10月04日(日) 16:05
by 6226
地霊殿のまりさ、パチュリーペアの五種類のショットと霊夢、紫ペアの隙間の作り方を教えてください。
Re:地霊殿
Posted: 2009年10月04日(日) 19:50
by ちゃお
プログラミングが得意では全くありませんが、
まりさとパチュリーのショットは、
if(ショットボタン押してたら && 低速ボタンおしてたら)
オプションフラグ++
みたいにして、オプションフラグの数字ごとに対応したショットとmoveのプログラム書けばいけると思いますよ。
オプションの変更が一周したら、オプションフラグを最初のオプションのショットとmoveに戻すif文も必要ですね。
オプションmove関数をそれぞれ必要な分だけ(5種類)
オプションのショットについてもそれぞれmoveに対応する関数が入りますね。(5種類)
霊夢と紫の方は、
オプションの動きは、Option.ang += PI/6といったようなものを何フレームかごとに呼び出すようにして
sinとcosで回転するようにいじればいけそうです。
あと低速ボタン押したときは、回転速度落としてとか。。
Option.x += cos(Option.ang) * Option.sp;
Option.y += sin(Option.ang) * Option.sp;
ちなみに中心座標は常にキャラクターの位置を中心として回転させないとダメですね。
龍神録プログラミングの自機にショットを打たせる章を参考にして、オプションの位置から玉を出すようにプログラムすればokだと思います。あとポンポンオプションのソースも参考になると思います。
ソース例とかだと
オプション1個だと下みたいな考え方はありかな。
void Option_shot1()//オプションのショットの種類ごとに関数を用意
{
int k;
if((k=search_Jiki_shot())!=-1)//弾の配列の登録
{
Jiki_shot[k].flag=1;
Jiki_shot[k].cnt=0;
Jiki_shot[k].angle = -PI/2;//ここ変更していろいろ角度調整してください
Jiki_shot[k].spd=10;
Jiki_shot[k].x = Option1.x + Jiki_shot0pos_x1[0];//オプションの位置から
Jiki_shot[k].y = Option1.y + Jiki_shot0pos_y1[0];//オプションの位置から
Jiki_shot[k].power=5;
Jiki_shot[k].knd=0;//ショットの画像の種類
}
}
みたいな風かな。
作ってみてないので、ハッキリしたことはわからないですが、オプションの数が1,2,3,4となるはずなので、オプションの位置ごとに弾の角度とか一つ一つ調整してください。
ちなみにオプションのショットを自機のショットとして判定させれば、当たり判定処理が楽になりそうです。
弾の表示絶対数も上げたほうがよさそうですね。
説明下手ですみません。
頑張ってください。
Re:地霊殿
Posted: 2009年10月04日(日) 20:04
by ちゃお
霊夢と紫の隙間ってなんぞ?
東方詳しくないので。。
画面の端にいる場合に応じた描画処理をifで作るなり、キャラクター移動ですばやく2回ある方向キー押したら、逆サイドから出てくるようにキャラクターのx座標とy座標を変更するようにすればいいかな。
アクションゲームのキャラクターのダッシュみたいな機能がいりますね。作ったことないんですけど。
方向キー押してるときに方向キーカウントを何カウントかさせて、あるカウントまでにもう一回同じ方向キー押したら、ダッシュするというフラグ立てて、それに対応したif文に入るみたいなことすればいいのかな。
ダッシュを隙間の移動?みたいな解釈してください。
隙間ってなんぞ。
あの移動隙間っていうんすか。
Re:地霊殿
Posted: 2009年10月04日(日) 21:26
by あ~る
パチュリーのオプションなんですが、ちゃおさんの言ってる条件だと低速移動しながらショットを撃ってると、常にオプションのタイプが切り替わり続けてしまうんで、カウンタを使って条件を
if(一つ前のカウントの時ショットボタンも低速ボタンも押されてなくて&&ショットボタンと低速ボタンが両方押されていたら)
にして下さい
別にカウンタを使わなくても、一つ前のフレームのキーの入力状況がわかれば大丈夫ですけど、まぁとにかくそんな感じです
Re:地霊殿
Posted: 2009年10月04日(日) 22:44
by ちゃお
> パチュリーのオプションなんですが、ちゃおさんの言ってる条件だと低速移動しながらショットを撃ってると、常にオプションのタイプが切り替わり続けてしまうんで、カウンタを使って条件を
> if(一つ前のカウントの時ショットボタンも低速ボタンも押されてなくて&&ショットボタンと低速ボタンが両方押されていたら)
> にして下さい
> 別にカウンタを使わなくても、一つ前のフレームのキーの入力状況がわかれば大丈夫ですけど、まぁとにかくそんな感じです
あ、すいません。
あ~るさん、本当ですね~。
プログラムのバグとかは、その都度作っていくうちに考えながら、修正したり思い描いてます。
なんで、突発的に考えたアドバイスになってしまいました。頭回り来ってませんでしたTT
実際作っていくうちに
そういえば、こうしなきゃいけないな~っていっつも考えながらやってます~^^
ご指摘ありがとうございます。
6226さん、頑張ってください。