魔方陣の大きさを一定の大きさから開始する方法

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

魔方陣の大きさを一定の大きさから開始する方法

#1

投稿記事 by 素人 » 16年前

改造龍神録のボスの魔方陣で
boss.endtimeが小さくなるほど魔方陣も小さくする処理をしてるのですが
最初に魔方陣を展開したときの大きさは一定にして
小さくする割合をboss.endtimeによって決定したいのですが
どうしてもうまくいきません。(boss.endtimeはボスの弾幕によって全て時間が違うようにしてあります。)
DrawRotaGraphFdF(boss.dx,   boss.dy,
	(0.03*boss.endtime/60)*2,  //←ここの部分が分かりません
	2*PI*(count%300)/300,img_etc[2],	TRUE);
計算式が分かる方がいたらどのようにすれば修正すればいいのか教えてください。

素人

Re:魔方陣の大きさを一定の大きさから開始する方法

#2

投稿記事 by 素人 » 16年前

思ったんですけど、
東方のボスカウントによって回ってる魔方陣って
大きさは変わらないで円周だけ変わってますね・・
どうプログラムを変えたらそうなるんでしょうか?

yu

Re:魔方陣の大きさを一定の大きさから開始する方法

#3

投稿記事 by yu » 16年前

DrawPolygonBase関数で
円になるように頂点を指定してあげれば良いのではないでしょうか

頂点を指定するので東方本家の、
後半の魔方陣のようにグニャグニャにすることも多分可能ですよ

素人

Re:魔方陣の大きさを一定の大きさから開始する方法

#4

投稿記事 by 素人 » 16年前

DrawPolygonBase関数がリファレンスのページにもなく、
使い方が分からなくて困ってるのですが
どのように使うのでしょうか?

yu

Re:魔方陣の大きさを一定の大きさから開始する方法

#5

投稿記事 by yu » 16年前

http://www1.axfc.net/uploader/He/so/236788

実際に作ってみました。Zキーで魔方陣が出ます。
が、少し表示がおかしいことになりました。orz
( U値がおかしいですね... )
多分できるとか言ってすみません...

ソースも書き捨てなので使い方だけみてやってください...
(使い方も怪しいですが^^;)

DrawPolygonBase関数は
第一引数 : VERTEXのアドレス
第二引数 : 頂点の数
第三引数 : プリミティブタイプ
第四引数以降は分かると思います

参考 : プリミティブ
ttp://www.mitsubishielectric.co.jp/service/d-style/d_spec/504i_java/z3d/z3dg_31.html

素人

Re:魔方陣の大きさを一定の大きさから開始する方法

#6

投稿記事 by 素人 » 16年前

魔方陣がこんな処理をしてるとは思いませんでした・・
にしてもyuさんのこの処理はとても参考になります。
頑張って理解して実装してみます。
ただ、最初の展開で魔方陣が大きくなるのが気になりますけど

yu

Re:魔方陣の大きさを一定の大きさから開始する方法

#7

投稿記事 by yu » 16年前

>> ただ、最初の展開で魔方陣が大きくなるのが気になりますけど

自分は永夜抄を見て作りました
....にしても確かに極端すぎですねw

そこら辺はソースコードを少し弄れば変更できますので
自分好みにしてください

yu

Re:魔方陣の大きさを一定の大きさから開始する方法

#8

投稿記事 by yu » 16年前

って、思いっきり本題を無視していました
すみません orz

最初に設定した残り時間と現在の残り時間を変数に格納しておいて

r : 定数(円の最大の大きさ)
endtime : 現在の残り時間
max_endtime : 設定した残り時間

endtime * r / max_endtime


としてやれば良いのでは無いでしょうか(要はHPメーターと同じことです)
または、自分がさっき書いたコードのように
円の大きさから一定の値を引いていくか・・・ですかね

素人

Re:魔方陣の大きさを一定の大きさから開始する方法

#9

投稿記事 by 素人 » 16年前

なるほど!
max_endtimeのことを忘れてました。
さっそく実装してみたいと思います。
yuさん、本当にありがとうございました。

閉鎖

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