共同リネ日記(仮)
友人3人で共同で付ける、オンラインゲーム「リネージュ2」(ドビアンヌ鯖)の日記です。メセニー最高。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。




  1. --/--/--(--) --:--:--|
  2. スポンサー広告|
  3. トラックバック(-)|
  4. コメント(-)

残り2回 チラシの裏日記

練習がてらシューティングゲーム的なものを作成
してみよーとしているわけです。

今現在の敵機体の挙動や弾の起動を作成しようとしてる
んですが、このあたりの情報はネットを検索するとかなり
豊富に存在するようです。

「弾幕スクリプト」

とか

「弾幕 ソースコード」

とかで検索すると、数日は眺めてくらせるんじゃないかってくらい
おもしろそーな資料がひっかかります。
「弾幕シューティングゲー」って一部ではなかなかの盛況っぷり
を見せてるようで、皆「弾幕作成!」とか萌え・・もとい燃えてる
ようです。

一つ特に面白い記事があって、外国のページでしたが
次の式を使用すると、すさまじい種類の弾幕パターンを
表現できるらしいです。

数学


当然のごとく意味不明ですが

地球の言葉じゃないですよね?

数学ってすごいな~と実感することもたまにありますが・・・
自分じゃ理解できんw
高校のときに数学テストで21点を取った男ですぜ・・・。
俺の中には数学なんて分野はありませんあるのは算数のみw


幸いそのページにコードものってました。
void Eval(double m,double n1,double n2,double n3,double phi,double *x,double *y)
{
double r;
double t1,t2;
double a=1,b=1;

t1 = cos(m * phi / 4) / a;
t1 = ABS(t1);
t1 = pow(t1,n2);

t2 = sin(m * phi / 4) / b;
t2 = ABS(t2);
t2 = pow(t2,n3);

r = pow(t1+t2,1/n1);
if (ABS(r) == 0) {
*x = 0;
*y = 0;
} else {
r = 1 / r;
*x = r * cos(phi);
*y = r * sin(phi);
}
}


ややこしー。
数学関数とか普段あまりお目にかからない・・・。

pow(t1,n2);

ポゥッ!マ○ケル・ジャクソン?





・・・数学テスト、21点








まーいろいろあるわけですが、
ところで最近の弾幕ゲーというともう「弾幕」だけあって
弾が乱れ飛ぶわけですよ。

こんなんとか
え

こんなん
あ


もー1000発を超える数の弾が画面を飛び交うわけです。

以前ためしたんですが、弾の一発一発に
sin(なんちゃら~)cos(なんちゃら~)
とシンプルな計算をもたせて実行してみたことがありました。
画面更新の0.5秒毎に次々と弾ごとに計算するわけですが、
しょぼいノートPCを使用したところ弾が600発を越えたあたりで
画面がちらつき、2000発こえるともう画面がチカチカして
なにも見えませんでした。
弾(画像を読み込んだわけでもない黒い点)しか表示してなくて
これですから、えらいこっちゃ。

でまあやっぱり弾幕軽量化の実験もいろんな人がやってるみたいなん
ですよね。
俺も参加してみることにしました。

で、数学21点のしょぼい頭で考えた
結果、
わざわざ計算しなくても、弾幕の起動は
決定してるんだから、軌道データをもってくればいいのでは


日本中の人が気づいてるであろう事実に
やっと気づいたわけで


たとえば円形弾幕ですが、
* 初期座標
* 移動ベクトル方向
だけ外部から渡せばなんとかなりそう。
初期座標は、・・なんだっけ

パ、パイアール?

パ、パイ?

オパーイ?

脳が数学用語拒否
・・3.14なんとかいう悪魔の数字を使えば弾を円形に配置するのはなんとかなりそうだし、
ベクトルも軌道データに渡す数値をいじれば表現できそう。

さて問題はどうやって軌道データを作るか・・・。

シンプルなのはウィンドウの上でマウスうごかして、
そのマウスの軌跡を記録する~とかだけど、
それだとラインががたがたなりそう。
んだからやっぱり一度は式で計算させるのがいいですよね。
一次関数つかえば直線運動ができそうだから、式のxを1づつ増やして
yの値と一緒に記録する~とか。
(座標記録しなくても、+-の記号と増減の値だけ記録させれば少ない
データ量で保存できる?)

で・・・そーいうのを作ろうとしてるわけですが・・・・

やべー頭が働かない

21点をなめるなよ数式をコードにとかいうプロセスがなかなか理解できないw

すでに3時間悩んでおりますo.....rz

で、なんとなく日記を書きはじめたと、

ようするに今回の日記

現実逃避の回でした

あはーーん。
ご飯くってまた頑張るか・・・・・・

ぬこ画像
k


これすごい好きw
スポンサーサイト




  1. 2006/05/28(日) 18:00:59|
  2. 日記:博麗|
  3. トラックバック:0|
  4. コメント:4

  

コメント

n乗根なんて何年ぶりだろう

このくらいは複雑なアルゴリズムもないし軽々と読んで欲しい・・・orz

予想:次にお前はポインタで戸惑う
  1. 2006/05/28(日) 19:51:33 |
  2. URL |
  3. Aly #Wc.Bxbro
  4. [ 編集]

軽々とかぁ~、pow()は知ってたけど、
ABS()は素で知らなかったしなあw


>>予想:次にお前はポインタで戸惑う

*x = r * cos(phi);
*y = r * sin(phi);

ここけ?ここのことけ!?

これは関数の外からきてるあたり、
x座標とy座標の参照渡しなんやないかな!
違ったらはずいが・・・orz



  1. 2006/05/28(日) 20:08:43 |
  2. URL |
  3. 博 #-
  4. [ 編集]

チラシの裏。

上下左右対称に出る玉なら一周じゃなくて1/4周の軌道データがありゃよさそうね。
原点を中心として、xの符号反転、yの符号反転、x、yの符号反転で1周が楽に表現できそうだ。
xとyの入れ替え、なんかも考えると1/8周でも行けるか。
5度刻みとすると、9x40くらいの軌道データを作っておけば、あとは間引けばいいかな・・・

はっ、ハマッてしまった!寝よ。
  1. 2006/05/29(月) 00:54:14 |
  2. URL |
  3. xNaGIx #-
  4. [ 編集]

おお~ためになるご意見ありがとうございます。
わーいデータ量が減ったぞとw

しかしあれですね、軌道データ使うような
弾幕は考えるのが難しく、
けれど楽しいですねw
「弾幕様式美」という
謎の世界に突入してゆきますw
  1. 2006/05/29(月) 17:07:34 |
  2. URL |
  3. 博麗 #-
  4. [ 編集]

コメントの投稿

管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://the3has.blog19.fc2.com/tb.php/125-1b912f36
 

  

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。