龍神録のパターン化できない

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

龍神録のパターン化できない

#1

投稿記事 by ahiru » 14年前

僕が自分でパターンを作ろうとしていますが
パターン11として3次関数や2次関数をパターン化したいのですが?
わかりやすいように教えてくださいお願いします

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 龍神録のパターン化できない

#2

投稿記事 by softya(ソフト屋) » 14年前

とっかかりとして一次関数でなら出来るのでしょうか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ahiru

Re: 龍神録のパターン化できない

#3

投稿記事 by ahiru » 14年前

1次関数はプログラムを作ることができるのですが、
2次関数が滑らかにプログラムできなくて困っています。
3次4次も同じで滑らかにができないのです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 龍神録のパターン化できない

#4

投稿記事 by softya(ソフト屋) » 14年前

一次関数だと差分を足していく形になりますが、2次や3次関数だと毎回起点フレーム・座標からの位置を計算した方が簡単だと思います。
もし足していく形にするには2次や3次関数をフレーム時間で微分したものを加算する形になります。 → [更に訂正]いや、式としては微分ですね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: 龍神録のパターン化できない

#5

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

それは
y=x^2
のような方程式の曲線を弾幕で表現したいということでしょうか?
それとも仕組み自体はできているが、計算結果が期待通りではないということでしょうか?

現在の仕組みだと大きく言えば
・飛ぶ方向
・飛ぶ速さ
で弾の飛びを決めています。

もし前者でお困りの場合でしたら、
x,y座標を自分で計算して代入したいなら、飛ぶ速さを0にし、
弾幕計算関数の中で座標を自分で代入するのが手っ取り早いかと思います。
もしきちんと作りたければ弾構造体に、弾の軌跡計算関数へのポインタを持たせて計算する等の手法が考えられるのではないでしょうか。

ahiru

Re: 龍神録のパターン化できない

#6

投稿記事 by ahiru » 14年前

codeであらわすとどうなりますか?

ahiru

Re: 龍神録のパターン化できない

#7

投稿記事 by ahiru » 14年前

Dixqさん弾幕ではなくて、雑魚の話のパターンですが?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 龍神録のパターン化できない

#8

投稿記事 by softya(ソフト屋) » 14年前

元のコードを提示してもらえば問題点を指摘できますのでお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ahiru

Re: 龍神録のパターン化できない

#9

投稿記事 by ahiru » 14年前

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,をついか

ahiru

Re: 龍神録のパターン化できない

#10

投稿記事 by ahiru » 14年前

このコード角角じじゃないですか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 龍神録のパターン化できない

#11

投稿記事 by softya(ソフト屋) » 14年前

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
となります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ahiru

Re: 龍神録のパターン化できない

#12

投稿記事 by ahiru » 14年前

私中学生だから微分あまりよくわからない。
codeタグ未使用ごめんなさい。
vxの微分はわかりました。

じゃあ
vyの微分はどうなるのですか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 龍神録のパターン化できない

#13

投稿記事 by softya(ソフト屋) » 14年前

ahiru さんが書きました:vyの微分はどうなるのですか?
使いたい2次関数とxとyの関係が分からないと答え様が無いです。
私の書いた例も、あくまで例ですから。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: 龍神録のパターン化できない

#14

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

何をどう実現したいのかをもっと明確化してもらわないと答えられないです。
具体的にどのような軌跡を移動させたいのですか?

ahiru

Re: 龍神録のパターン化できない

#15

投稿記事 by ahiru » 14年前

画像雑魚がこのような感じに

ahiru

Re: 龍神録のパターン化できない

#16

投稿記事 by ahiru » 14年前

画像
これはどうですか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 龍神録のパターン化できない

#17

投稿記事 by softya(ソフト屋) » 14年前

画像が添付されていません。プレビューで確認してくださいね。
上手くできない場合は、何処かのアップローダサイトにでも上げて下さい。
数式でxとyの関係を書いてもらったほうが早いかも知れません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: 龍神録のパターン化できない

#18

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

投稿されたコメントの生データを見ましたが、URLがむちゃくちゃになっています。
画像はここのHPのユーザー登録を行ってもらえれば添付できるようになります。
mixc++への登録は画面右下のユーザー登録より行えます。


ahiru

Re: 龍神録のパターン化できない

#20

投稿記事 by ahiru » 14年前

二つ目のグラフですよ、

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 龍神録のパターン化できない

#21

投稿記事 by softya(ソフト屋) » 14年前

自機からの発射される弾の軌跡ではないのでイメージが湧きませんが、計算式そのものイメージが出来ていないということは分かりました。
x = a * t * t + b *t + c
y = d * t + e
で座標を計算すれば良いと思います。
cとeは発射座標。a,b,dはテストの上適当に決めて下さい。tはフレーム数です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

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