【東方永夜抄→ttp://www16.big.or.jp/~zun/html/game.html】の「幻想の結界チーム「八雲紫」」
のオプションと同じ動きを再現したいと思っています。
オプションから発射されている弾ではなくて、オプション自体の動きです。
動きとしては、
1:自機の一定範囲に近づく敵を追尾させる
2:追尾目的箇所に近づくにつれて減速させる
3:追尾のタイミングを少しずらす
2,3の計算方法が解らなくて困っています。
3はボス戦だとよくわかるのですが、ボスが移動すると少し遅れる感じで追尾しています。
すごく悩んでいます。ご教授お願いします。
自機ショットオプションの動きを作りたい
Re:自機ショットオプションの動きを作りたい
>2:追尾目的箇所に近づくにつれて減速させる
本家に近づけるには試行錯誤が必要ですが
手っ取り早いのは物理的計算ではないでしょうか?
>3:追尾のタイミングを少しずらす
追尾の速度自体を下げるか
残像させる時のように敵の少し前の座標を記録しておくのはどうですか?
本家に近づけるには試行錯誤が必要ですが
手っ取り早いのは物理的計算ではないでしょうか?
>3:追尾のタイミングを少しずらす
追尾の速度自体を下げるか
残像させる時のように敵の少し前の座標を記録しておくのはどうですか?
ソースファイルのまとめ方
一つのメインファイルとヘッダーに殆んどソースを
書いています。しかし、プログラムが大きくなるにつれて
非常に読むのが面倒になってきました。
どのようにまとめたら綺麗になるんでしょうか?
ヘッダーにグローバル変数をまとめると綺麗らしいですが・・・。
ソースプログラムの雛型のまとめ方や、こうやったら綺麗にまとまるよって
方法があったら是非おしえてください。
書いています。しかし、プログラムが大きくなるにつれて
非常に読むのが面倒になってきました。
どのようにまとめたら綺麗になるんでしょうか?
ヘッダーにグローバル変数をまとめると綺麗らしいですが・・・。
ソースプログラムの雛型のまとめ方や、こうやったら綺麗にまとまるよって
方法があったら是非おしえてください。
Re:ソースファイルのまとめ方
とりあえず現状認識からですね。
http://www.doxygen.jp/でも使って可視化してみてください。
> ヘッダーにグローバル変数をまとめると綺麗らしいですが・・・。
同じ努力を払うのなら、グローバル変数をなくすか、せめて減らす方向を検討してみてください。
http://www.doxygen.jp/でも使って可視化してみてください。
> ヘッダーにグローバル変数をまとめると綺麗らしいですが・・・。
同じ努力を払うのなら、グローバル変数をなくすか、せめて減らす方向を検討してみてください。
Re:ソースファイルのまとめ方
自分は、ソースファイルを別々に書いてますね。
deifne定義専用(define.h)とかグローバル専用(global.h)とか・・・
何度も使う関数(共通関数的なもの)も、別ファイルに書いてます。
mainファイルに作ったヘッダーファイルをインクルードすればすみますし、
define値を変えたいって時は、define.hを見ればいいですし。
まぁグローバル変数を複数のファイルで参照(インクルード)する場合は、
注意が必要ですが、そのあたりは自分で調べてください。
ネットとかで検索すればすぐ出てくると思います。
deifne定義専用(define.h)とかグローバル専用(global.h)とか・・・
何度も使う関数(共通関数的なもの)も、別ファイルに書いてます。
mainファイルに作ったヘッダーファイルをインクルードすればすみますし、
define値を変えたいって時は、define.hを見ればいいですし。
まぁグローバル変数を複数のファイルで参照(インクルード)する場合は、
注意が必要ですが、そのあたりは自分で調べてください。
ネットとかで検索すればすぐ出てくると思います。
Re:ソースファイルのまとめ方
> 一つのメインファイルとヘッダーに殆んどソースを
> 書いています。しかし、プログラムが大きくなるにつれて
> 非常に読むのが面倒になってきました。
ちなみに大きいとはどの位の行数なのでしょうか。
大きいプログラムを理解するのに最適な方法は、自然な形に分割することです。
処理の流れの塊を考えて関数に分割しますよね?
関数を分類して関連性の高いグループ毎にヘッダーファイルや
ソースファイルに分割するのが定石です。
例えば、文字列処理の関数を集めたソースファイル、とか、
画面表示に使う関数を集めたソースファイル、とか。
とはいっても上手な分割は簡単ではなく、非常に重要なスキルです。
多くのプログラムを読んで多くのプログラムを書いて、
経験を積んでいってください。
> 書いています。しかし、プログラムが大きくなるにつれて
> 非常に読むのが面倒になってきました。
ちなみに大きいとはどの位の行数なのでしょうか。
大きいプログラムを理解するのに最適な方法は、自然な形に分割することです。
処理の流れの塊を考えて関数に分割しますよね?
関数を分類して関連性の高いグループ毎にヘッダーファイルや
ソースファイルに分割するのが定石です。
例えば、文字列処理の関数を集めたソースファイル、とか、
画面表示に使う関数を集めたソースファイル、とか。
とはいっても上手な分割は簡単ではなく、非常に重要なスキルです。
多くのプログラムを読んで多くのプログラムを書いて、
経験を積んでいってください。
Re:ソースファイルのまとめ方
1000行は見づらいですかね。
なんにせよ、プログラムの構造が見やすいかによると思います。
同じような処理を何回も書いてないか? → 関数に
引数が多すぎないか → 構造体に
もしくはスコープを見直したら変数の宣言は見やすくなるかも?
あと、初心者っていう名前は他の人とかぶるんでやめましょうね。
なんにせよ、プログラムの構造が見やすいかによると思います。
同じような処理を何回も書いてないか? → 関数に
引数が多すぎないか → 構造体に
もしくはスコープを見直したら変数の宣言は見やすくなるかも?
あと、初心者っていう名前は他の人とかぶるんでやめましょうね。
Re:ソースファイルのまとめ方
> defineのファイルは
> #define a 10;
> とかまとめたものですか?
です。
ただし、あくまで例の一つにすぎないので、
できれば、他の人の作り方をみてコーディングパターンを学んだほうがいいです。
自分が、「綺麗に書かれている」と思ったソースを見て、
最初は作り方とか真似して書いていれば、
自ずと、どうソースを書いていくべきかというのが
見えてくるはずです。
あとは、そこに自分なりの工夫を加えるなりして、
自分の作り方を固めればいいです。
ですが、最初に言ったとおり例のひとつにすぎないので、
いくつかのコーディングパターンをもっといたほうが便利です。
長文失礼しました。
> #define a 10;
> とかまとめたものですか?
です。
ただし、あくまで例の一つにすぎないので、
できれば、他の人の作り方をみてコーディングパターンを学んだほうがいいです。
自分が、「綺麗に書かれている」と思ったソースを見て、
最初は作り方とか真似して書いていれば、
自ずと、どうソースを書いていくべきかというのが
見えてくるはずです。
あとは、そこに自分なりの工夫を加えるなりして、
自分の作り方を固めればいいです。
ですが、最初に言ったとおり例のひとつにすぎないので、
いくつかのコーディングパターンをもっといたほうが便利です。
長文失礼しました。