ページ 1 / 1
龍神録のパターン化できない
Posted: 2012年2月08日(水) 02:35
by ahiru
僕が自分でパターンを作ろうとしていますが
パターン11として3次関数や2次関数をパターン化したいのですが?
わかりやすいように教えてくださいお願いします
Re: 龍神録のパターン化できない
Posted: 2012年2月08日(水) 09:44
by softya(ソフト屋)
とっかかりとして一次関数でなら出来るのでしょうか?
Re: 龍神録のパターン化できない
Posted: 2012年2月11日(土) 11:14
by ahiru
1次関数はプログラムを作ることができるのですが、
2次関数が滑らかにプログラムできなくて困っています。
3次4次も同じで滑らかにができないのです。
Re: 龍神録のパターン化できない
Posted: 2012年2月11日(土) 11:38
by softya(ソフト屋)
一次関数だと差分を足していく形になりますが、2次や3次関数だと毎回起点フレーム・座標からの位置を計算した方が簡単だと思います。
もし足していく形にするには2次や3次関数をフレーム時間で微分したものを加算する形になります。 → [更に訂正]いや、式としては微分ですね。
Re: 龍神録のパターン化できない
Posted: 2012年2月11日(土) 11:40
by Dixq (管理人)
それは
y=x^2
のような方程式の曲線を弾幕で表現したいということでしょうか?
それとも仕組み自体はできているが、計算結果が期待通りではないということでしょうか?
現在の仕組みだと大きく言えば
・飛ぶ方向
・飛ぶ速さ
で弾の飛びを決めています。
もし前者でお困りの場合でしたら、
x,y座標を自分で計算して代入したいなら、飛ぶ速さを0にし、
弾幕計算関数の中で座標を自分で代入するのが手っ取り早いかと思います。
もしきちんと作りたければ弾構造体に、弾の軌跡計算関数へのポインタを持たせて計算する等の手法が考えられるのではないでしょうか。
Re: 龍神録のパターン化できない
Posted: 2012年2月11日(土) 11:44
by ahiru
codeであらわすとどうなりますか?
Re: 龍神録のパターン化できない
Posted: 2012年2月11日(土) 11:47
by ahiru
Dixqさん弾幕ではなくて、雑魚の話のパターンですが?
Re: 龍神録のパターン化できない
Posted: 2012年2月11日(土) 11:52
by softya(ソフト屋)
元のコードを提示してもらえば問題点を指摘できますのでお願いします。
Re: 龍神録のパターン化できない
Posted: 2012年2月11日(土) 12:11
by ahiru
codeですが
enemy_act_pattern.cppについか
void enemy_pattern11(int i){
int t=enemy.cnt;
if(t==0) enemy.vy=4;
if(t==0) enemy.vx=0;
if(t==40) enemy.vy=2;
if(t==40) enemy.vx=1;
if(t==60) enemy.vy=-2;
if(t==60) enemy.vx=1;
if(t==80) enemy.vy=4;
if(t==80) enemy.vx=0;
}
enemy.cppに
extern void enemy_pattern11(int);
void (*enemy_pattern[ENEMY_PATTERN_MAX])(int)にenemy_pattern11,をついか
Re: 龍神録のパターン化できない
Posted: 2012年2月11日(土) 12:25
by ahiru
このコード角角じじゃないですか?
Re: 龍神録のパターン化できない
Posted: 2012年2月11日(土) 13:01
by softya(ソフト屋)
codeタグをご利用くださいね。 →
http://dixq.net/board/board.html#k10
vxとvyは速度ですので2次関数の形で動かしたいならvxとvyはtを使った一次関数となります。
使いたい元々の2次関数式がわかりませんが、
x = a*t*t + b*t + c
だとするとこれを微分して
vx = 2*a*t + b
となります。
Re: 龍神録のパターン化できない
Posted: 2012年2月11日(土) 13:20
by ahiru
私中学生だから微分あまりよくわからない。
codeタグ未使用ごめんなさい。
vxの微分はわかりました。
が
じゃあ
vyの微分はどうなるのですか?
Re: 龍神録のパターン化できない
Posted: 2012年2月11日(土) 13:37
by softya(ソフト屋)
ahiru さんが書きました:vyの微分はどうなるのですか?
使いたい2次関数とxとyの関係が分からないと答え様が無いです。
私の書いた例も、あくまで例ですから。
Re: 龍神録のパターン化できない
Posted: 2012年2月11日(土) 13:43
by Dixq (管理人)
何をどう実現したいのかをもっと明確化してもらわないと答えられないです。
具体的にどのような軌跡を移動させたいのですか?
Re: 龍神録のパターン化できない
Posted: 2012年2月11日(土) 15:41
by ahiru

雑魚がこのような感じに
Re: 龍神録のパターン化できない
Posted: 2012年2月11日(土) 15:43
by ahiru

これはどうですか?
Re: 龍神録のパターン化できない
Posted: 2012年2月11日(土) 17:55
by softya(ソフト屋)
画像が添付されていません。プレビューで確認してくださいね。
上手くできない場合は、何処かのアップローダサイトにでも上げて下さい。
数式でxとyの関係を書いてもらったほうが早いかも知れません。
Re: 龍神録のパターン化できない
Posted: 2012年2月12日(日) 23:24
by Dixq (管理人)
投稿されたコメントの生データを見ましたが、URLがむちゃくちゃになっています。
画像はここのHPのユーザー登録を行ってもらえれば添付できるようになります。
mixc++への登録は画面右下のユーザー登録より行えます。
Re: 龍神録のパターン化できない
Posted: 2012年2月15日(水) 03:19
by ahiru
Re: 龍神録のパターン化できない
Posted: 2012年2月15日(水) 03:20
by ahiru
二つ目のグラフですよ、
Re: 龍神録のパターン化できない
Posted: 2012年2月15日(水) 09:44
by softya(ソフト屋)
自機からの発射される弾の軌跡ではないのでイメージが湧きませんが、計算式そのものイメージが出来ていないということは分かりました。
x = a * t * t + b *t + c
y = d * t + e
で座標を計算すれば良いと思います。
cとeは発射座標。a,b,dはテストの上適当に決めて下さい。tはフレーム数です。