東方文花帖でよく使われるレーザーの作り方について
東方文花帖でよく使われるレーザーの作り方について
東方文花帖のエイジャの宝石で使われる赤いレーザーや、
慧音がつかうようなレーザーはどのようにして作られるのでしょうか?
確か過去ログを見たら、Dixqさんが、弾を重ねてレーザーに見せる方法もあるといっていたのですが、
それを使うと慧音が使うレーザーが作れません。このレーザーはどう作るのでしょうか?
あと被弾したときにレーザーが二つに割れて分かれますが、(確か過去ログの弾の補完とかいうのだったような。。。)過去ログを見てもよくわからなかったので教えてください。
あ~るさんのぐにゃぐにゃレーザーではねこさんが小さい画像をつなげるといっていましたが・・・
慧音がつかうようなレーザーはどのようにして作られるのでしょうか?
確か過去ログを見たら、Dixqさんが、弾を重ねてレーザーに見せる方法もあるといっていたのですが、
それを使うと慧音が使うレーザーが作れません。このレーザーはどう作るのでしょうか?
あと被弾したときにレーザーが二つに割れて分かれますが、(確か過去ログの弾の補完とかいうのだったような。。。)過去ログを見てもよくわからなかったので教えてください。
あ~るさんのぐにゃぐにゃレーザーではねこさんが小さい画像をつなげるといっていましたが・・・
Re:東方文花帖でよく使われるレーザーの作り方について

よく考えたら私のコードでは三角形に変形させても2つに分かれた場合の処理が対応していないので
とりあえず四角形に変形させてみましたが、見た感じ問題は無さそうですね・・
2つに分かれる処理ですがその部分の弾が消えれば自然に分かれるんではないでしょうか?
しかしこのレーザーの場合は無理だと思うので2Dポリゴンで繋ぐと良いと思います、私の所ではそれでうまく行ったので・・
Re:東方文花帖でよく使われるレーザーの作り方について
難しかったので、(意味が)もう少し詳しく教えていただけるでしょうか?
また自分の悪い癖ですぐ人に答えを求めてしまうのですが、よければコードをおしえてください。
また当たり判定はどうするのでしょう?
また自分の悪い癖ですぐ人に答えを求めてしまうのですが、よければコードをおしえてください。
また当たり判定はどうするのでしょう?
Re:東方文花帖でよく使われるレーザーの作り方について
何か私はほとんど質問するだけで熟練のプログラマーになってしまいましたからね・・
これは良くないと思ったので答えられそうな質問にはできるだけ答えるようにしています
すみません・・1人だけ出しゃばってしまって・・
意味ですが、これは難しいわけではなく私の説明が雑だっただけだと思います・・
曲げたりする必要もあると思うので沢山の弾を並べてレーザーを作ります
そのまま加算ブレンドで繋げて描画すれば簡単なんですが
弾の距離が大きくなった時や上のようなレーザーの時に不具合が出るので
私の場合は双方向循環リストの中に弾ノードを登録していき
弾ノードが連続している所では連続しているノードの座標を2Dポリゴンで繋いでいきます
被弾などで弾ノードのフラグが倒れている所があると、そこで繋ぐのをやめます
つまり内部的には繋がっているけど表示する時はフラグが倒れている所は避けます
イメージはぷよぷよで同じ色のぷよがくっ付いて表示される演出です
判定なんですが掲示板でわからない所を聞いたりしながら描画部分は大体完成させたんですが
最新の本家のレーザーを見たら何か閃くかもしれないので、判定部分はまだ作っていません
ですが方法は確定しています、過去ログにあるような方法で判定します
http://www.play21.jp/board/formz.cgi?ac ... &rln=36998
でコードなんですが私の性格を色濃く反映しており、描画部分を作っただけで関係処理が1000行近くあります
判定その他を加えて最終的には2000行ぐらいになると予想しています
私のコードにしては独立性が高い方なのでコピーすれば動くとは思いますが
長いので解読するよりはアルゴリズムを理解して自分のコードと相性の良い処理を作った方が簡単そうです・・
何か「多機能なレーザー」を作ろうとしたら「多機能だけど見た目が汚いレーザー」ができてしまった気がするんですよね・・
しかも地霊殿までのレーザーは全て再現できる性能だと思った矢先に星蓮船で進化したと聞いて落ち込みました・・
あと添付したコードですがメモ帳とかで開かないと改行されて見にくいので気を付けてください・・
これは良くないと思ったので答えられそうな質問にはできるだけ答えるようにしています
すみません・・1人だけ出しゃばってしまって・・
意味ですが、これは難しいわけではなく私の説明が雑だっただけだと思います・・
曲げたりする必要もあると思うので沢山の弾を並べてレーザーを作ります
そのまま加算ブレンドで繋げて描画すれば簡単なんですが
弾の距離が大きくなった時や上のようなレーザーの時に不具合が出るので
私の場合は双方向循環リストの中に弾ノードを登録していき
弾ノードが連続している所では連続しているノードの座標を2Dポリゴンで繋いでいきます
被弾などで弾ノードのフラグが倒れている所があると、そこで繋ぐのをやめます
つまり内部的には繋がっているけど表示する時はフラグが倒れている所は避けます
イメージはぷよぷよで同じ色のぷよがくっ付いて表示される演出です
判定なんですが掲示板でわからない所を聞いたりしながら描画部分は大体完成させたんですが
最新の本家のレーザーを見たら何か閃くかもしれないので、判定部分はまだ作っていません
ですが方法は確定しています、過去ログにあるような方法で判定します
http://www.play21.jp/board/formz.cgi?ac ... &rln=36998
でコードなんですが私の性格を色濃く反映しており、描画部分を作っただけで関係処理が1000行近くあります
判定その他を加えて最終的には2000行ぐらいになると予想しています
私のコードにしては独立性が高い方なのでコピーすれば動くとは思いますが
長いので解読するよりはアルゴリズムを理解して自分のコードと相性の良い処理を作った方が簡単そうです・・
何か「多機能なレーザー」を作ろうとしたら「多機能だけど見た目が汚いレーザー」ができてしまった気がするんですよね・・
しかも地霊殿までのレーザーは全て再現できる性能だと思った矢先に星蓮船で進化したと聞いて落ち込みました・・
あと添付したコードですがメモ帳とかで開かないと改行されて見にくいので気を付けてください・・
Re:東方文花帖でよく使われるレーザーの作り方について

しかし冷静に考えると私のコードは参考にならない気がしますね・・
この処理はゲームのクオリティを上げるためにレーザーで陰陽玉を描いたりできるように作ったのですが
普通のゲームにおいてレーザーで陰陽玉を描く機会なんて無いと思うし
慧音のレーザーの参考に陰陽玉が描けるレーザーをサンプルにするのは不適切でしたね・・
何か私が書き込んだ事で他の人が書き込みづらくなってる気がしますね・・すいません・・
でもsitumonさんが最終的に陰陽玉その他が描けるぐらい多機能なレーザーを作りたいと思ったら
やはりコードはこのぐらいの量になるかもしれませんね・・
共通部分が長いので陰陽玉を描くのに必要な処理は
if( P->Count==0 )for( int i=0;i<=100;i++ )SetNode(P);//ノードを登録 int i=0; for( Node_t *p=P->Next;p->flag<=2;p=p->Next,i++ ){//管理ノード間ポインタfor文 float Angle=-(float)Count/180; float R=180; if( i<=50 ){ p->x=P->x+cos(Angle)*(cos(PI/25*i)*(-R/2+(i<25)*R)-R/2+(i<25)*R)+cos(Angle-PI/2)*(sin(PI/25*i)*R/2);//X方向の移動 p->y=P->y+sin(Angle)*(cos(PI/25*i)*(-R/2+(i<25)*R)-R/2+(i<25)*R)+sin(Angle-PI/2)*(sin(PI/25*i)*R/2);//Y方向の移動 } else{ p->x=P->x+cos(Angle+PI+PI/25*i)*R;//X方向の移動 p->y=P->y+sin(Angle+PI+PI/25*i)*R;//Y方向の移動 } }//管理ノード間ポインタfor文このぐらいで済みます、しかしよく考えたら陰陽玉が描けるのは別に凄くないですね・・
そもそも陰陽玉を描く処理は10分ぐらいで作りましたから・・
時間をかければもう少し行けます・・
Re:東方文花帖でよく使われるレーザーの作り方について
チルチルさんは今高校生でしょうか?(過去ログにかいてあったのがふとみえて・・・)、、、(失礼だったらすいません)
とてもすごいプログラムをかかれていてびっくりなのですが、
基礎学力として(そのうちならいますが。。。)必要なものは何でしょう?
あと双方向循環リストとノードとは何でしょう?
>陰陽玉が描けるのは別に凄くないですね
いやいやすごいですよ!!
ですが、やはりとても難しいですね・・・
あと余談ですが、チルチルさんの作ったシューティングをやってみたいのですが・・・
これも余談ですがチルチルさんは東方のどれが好きですか?
自分は東方文花帖が好きです。
といってもついちょっと前にやっとEXが出せただけなのですがmmm
しかし百万鬼夜行はがんばってクリアしましたよ!!!(すいか大好きです。)
とてもすごいプログラムをかかれていてびっくりなのですが、
基礎学力として(そのうちならいますが。。。)必要なものは何でしょう?
あと双方向循環リストとノードとは何でしょう?
>陰陽玉が描けるのは別に凄くないですね
いやいやすごいですよ!!
ですが、やはりとても難しいですね・・・
あと余談ですが、チルチルさんの作ったシューティングをやってみたいのですが・・・
これも余談ですがチルチルさんは東方のどれが好きですか?
自分は東方文花帖が好きです。
といってもついちょっと前にやっとEXが出せただけなのですがmmm
しかし百万鬼夜行はがんばってクリアしましたよ!!!(すいか大好きです。)
Re:東方文花帖でよく使われるレーザーの作り方について
>チルチルさんは今高校生でしょうか
現在は高校2年生ですね、情報系の工業高校に通っています
>とてもすごいプログラムをかかれていてびっくりなのですが
私のコードの場合は簡単な処理を沢山並べる事で凄くなっているんだと思います
何が凄いかと言うと「量が凄い」んだと思います・・
逆に言えば一箇所が理解できれば他も同じような事をやってるので全体が理解できるかもしれません
>基礎学力として(そのうちならいますが。。。)必要なものは何でしょう?
私の成績は現在クラスで5位ですが、偏差値が低いので凄くは無いです、中学の頃はビリに近かったです
今でも英語と体育はギリギリで2です・・C言語初めて1年半ぐらいでCの知識は構造体を使えるぐらいです
私の経験で言えば学力よりも時間が大事ですね
最近は放課後の時間を全てプログラムに当てています(と言っても悩んでる時間の方が長いですが・・)
そのせいでクラスメイトと話す時に流行に全く付いて行けません(笑)
しかし何と言っても一番大事なのは「上司」だと思います
一年の頃は1人で中途半端なコードを作っては飽きて放り出していましたが
2年生になってしばらくしてパソコン部の先輩から
「俺は絵が描けるし曲も作れるしアイデアも出せる、しかしプログラムは組めない、だからお前がやれ」
って言われました(笑)
それからは先輩がコミケで売るゲームのプログラムを組んでいます
案外ゲームプログラミングは半ば強制された方が効率が良くなる気がしますね
相方がいれば気付かない所を指摘し合えるし、素材とプログラムを分担しているのでプログラムに集中できます
まあ最近は簡単にできる事を「こういうのできるか?」って聞かれて、う~ん状態ですが・・
>あと双方向循環リストとノードとは何でしょう?
そうですね・・話すと長くなるのでとりあえず私が勉強したサイトを何個か貼っておきます
http://www.cc.kyoto-su.ac.jp/~yamada/ap/list.html
http://ja.wikipedia.org/wiki/線形リスト
http://www.geocities.jp/ky_webid/algorithm/010.html
http://cai.cs.shinshu-u.ac.jp/sugsi/Lec ... 02-01.html
http://www.hrtdotnet.jp/pro/c/step4/step4_2.html
私は双方向循環リストを使うまでポインタを意識して使った事は無いですが、案外簡単に理解できました
ついでに線形リストの練習に組んだコードも添付しておきます
>いやいやすごいですよ!!
>ですが、やはりとても難しいですね・・・
陰陽玉を描く処理を見てみると何となくわかると思いますが、ほとんど陰陽玉の座標を計算する式だけです
座標さえ代入してしまえば共通部分が勝手に2Dポリゴンでトライアングルストリップを構築してくれます
>あと余談ですが、チルチルさんの作ったシューティングをやってみたいのですが・・・
内心では誰かに言って欲しかったセリフですね(笑)
今回は1人で作ってるわけではなく一応売り物らしいので、ここで公開するわけにも行かないんですよね・・
そうですね・・アップローダーを使った事は無いですがメールアドレスなどを教えてくれればパスを送りますよ
>これも余談ですがチルチルさんは東方のどれが好きですか?
東方は全部好きですが特に好きなのは永夜抄ですかね、私は多機能なのが好きなようです
最近はプログラムで忙しくて攻略している時間が無く、ノーマルだと4面で死ぬぐらいの実力です・・
Meを使っていた頃は処理落ちさせてEXをクリアしてたりしましたね・・
特に好きなキャラはいないんですが今は封獣ぬえが気になっていますね
現在は高校2年生ですね、情報系の工業高校に通っています
>とてもすごいプログラムをかかれていてびっくりなのですが
私のコードの場合は簡単な処理を沢山並べる事で凄くなっているんだと思います
何が凄いかと言うと「量が凄い」んだと思います・・
逆に言えば一箇所が理解できれば他も同じような事をやってるので全体が理解できるかもしれません
>基礎学力として(そのうちならいますが。。。)必要なものは何でしょう?
私の成績は現在クラスで5位ですが、偏差値が低いので凄くは無いです、中学の頃はビリに近かったです
今でも英語と体育はギリギリで2です・・C言語初めて1年半ぐらいでCの知識は構造体を使えるぐらいです
私の経験で言えば学力よりも時間が大事ですね
最近は放課後の時間を全てプログラムに当てています(と言っても悩んでる時間の方が長いですが・・)
そのせいでクラスメイトと話す時に流行に全く付いて行けません(笑)
しかし何と言っても一番大事なのは「上司」だと思います
一年の頃は1人で中途半端なコードを作っては飽きて放り出していましたが
2年生になってしばらくしてパソコン部の先輩から
「俺は絵が描けるし曲も作れるしアイデアも出せる、しかしプログラムは組めない、だからお前がやれ」
って言われました(笑)
それからは先輩がコミケで売るゲームのプログラムを組んでいます
案外ゲームプログラミングは半ば強制された方が効率が良くなる気がしますね
相方がいれば気付かない所を指摘し合えるし、素材とプログラムを分担しているのでプログラムに集中できます
まあ最近は簡単にできる事を「こういうのできるか?」って聞かれて、う~ん状態ですが・・
>あと双方向循環リストとノードとは何でしょう?
そうですね・・話すと長くなるのでとりあえず私が勉強したサイトを何個か貼っておきます
http://www.cc.kyoto-su.ac.jp/~yamada/ap/list.html
http://ja.wikipedia.org/wiki/線形リスト
http://www.geocities.jp/ky_webid/algorithm/010.html
http://cai.cs.shinshu-u.ac.jp/sugsi/Lec ... 02-01.html
http://www.hrtdotnet.jp/pro/c/step4/step4_2.html
私は双方向循環リストを使うまでポインタを意識して使った事は無いですが、案外簡単に理解できました
ついでに線形リストの練習に組んだコードも添付しておきます
>いやいやすごいですよ!!
>ですが、やはりとても難しいですね・・・
陰陽玉を描く処理を見てみると何となくわかると思いますが、ほとんど陰陽玉の座標を計算する式だけです
座標さえ代入してしまえば共通部分が勝手に2Dポリゴンでトライアングルストリップを構築してくれます
>あと余談ですが、チルチルさんの作ったシューティングをやってみたいのですが・・・
内心では誰かに言って欲しかったセリフですね(笑)
今回は1人で作ってるわけではなく一応売り物らしいので、ここで公開するわけにも行かないんですよね・・
そうですね・・アップローダーを使った事は無いですがメールアドレスなどを教えてくれればパスを送りますよ
>これも余談ですがチルチルさんは東方のどれが好きですか?
東方は全部好きですが特に好きなのは永夜抄ですかね、私は多機能なのが好きなようです
最近はプログラムで忙しくて攻略している時間が無く、ノーマルだと4面で死ぬぐらいの実力です・・
Meを使っていた頃は処理落ちさせてEXをクリアしてたりしましたね・・
特に好きなキャラはいないんですが今は封獣ぬえが気になっていますね
Re:東方文花帖でよく使われるレーザーの作り方について

> チルチルさん
キャラのネタバレはまだ控えたほうがよろしいかと…。
とりあえず、参考程度に弾を重ねてレーザーに見せた例として、
曲がるレーザーの様子の画像を添付しておきますね。
(透明度が変化しているところがポイントです)
もし、いくつかのレーザーのタイプを用意するとしたら、
下記のようにそれぞれ別の処理として纏めておいた方が逆にまとまりが良くなる(処理の向上につながるかも)と思います。
・当たっても変化が無いただのレーザー
・当たるとその部分が消滅し、分裂するレーザー
・曲がるレーザー
(星蓮船の方に出るレーザーは、ただのレーザーにアニメーションエフェクトと当たり判定の追加で実現できると思いますよ)
Re:東方文花帖でよく使われるレーザーの作り方について
>キャラのネタバレはまだ控えたほうがよろしいかと…。
そうですね、気を付けます・・
>曲がるレーザーの様子の画像を添付しておきますね。
透明度を変化させるのは思い付きませんでしたね・・
>もし、いくつかのレーザーのタイプを用意するとしたら、
消えるかどうかには考えが行き届かなかったですね・・
描画タイプではわけたんですがそうしないと作れなかったからですからね・・
複数のタイプが競合する事もありえるし・・
実際に作ってみたら曲がるレーザーと普通のレーザーをわけた意味があるのか怪しくなったしで・・
>(星蓮船の方に出るレーザーは、ただのレーザーにアニメーションエフェクトと当たり判定の追加で実現できると思いますよ)
星蓮船をまだプレイしていないのですが、先輩の話では弾がレーザーに変化する事があるそうです
小さいレーザーが合体して大きなレーザーになる事は想定していたんですが、そういうのは想定していなかったので対策を検討中です・・
そうですね、気を付けます・・
>曲がるレーザーの様子の画像を添付しておきますね。
透明度を変化させるのは思い付きませんでしたね・・
>もし、いくつかのレーザーのタイプを用意するとしたら、
消えるかどうかには考えが行き届かなかったですね・・
描画タイプではわけたんですがそうしないと作れなかったからですからね・・
複数のタイプが競合する事もありえるし・・
実際に作ってみたら曲がるレーザーと普通のレーザーをわけた意味があるのか怪しくなったしで・・
>(星蓮船の方に出るレーザーは、ただのレーザーにアニメーションエフェクトと当たり判定の追加で実現できると思いますよ)
星蓮船をまだプレイしていないのですが、先輩の話では弾がレーザーに変化する事があるそうです
小さいレーザーが合体して大きなレーザーになる事は想定していたんですが、そういうのは想定していなかったので対策を検討中です・・
Re:東方文花帖でよく使われるレーザーの作り方について
> 星蓮船をまだプレイしていないのですが、先輩の話では弾がレーザーに変化する事があるそうです
余り詳しく構造を言ってしまうと弾幕のネタバレなのでその部位だけ解説すると、
弾が一直線に並ぶように動かし、その一直線になった弾とその長さと同じレーザーに置き換えているだけです。
なので、特に難しくはないはずですよ。
余り詳しく構造を言ってしまうと弾幕のネタバレなのでその部位だけ解説すると、
弾が一直線に並ぶように動かし、その一直線になった弾とその長さと同じレーザーに置き換えているだけです。
なので、特に難しくはないはずですよ。
Re:東方文花帖でよく使われるレーザーの作り方について
話ではって言いましたけど実際は思いっきりスナップショット見せられましたね(笑)
一列になった弾をレーザーに置き換えるだけなら簡単なんですが
私の場合は弾とレーザーが頻繁に入れ替わる弾幕を作る事が多そうなので
弾がボムなどで消された場合はレーザーに変化してもその部分は欠けたままでないといけなんですよ・・
レーザーだけなら対応しているのですが通常弾は対応させてなかったんですよね・・
まあそれをやると通常弾がレーザーに吸収されそうで怖いですが・・
やはりエフェクトが貧弱なので大変そうです・・
一列になった弾をレーザーに置き換えるだけなら簡単なんですが
私の場合は弾とレーザーが頻繁に入れ替わる弾幕を作る事が多そうなので
弾がボムなどで消された場合はレーザーに変化してもその部分は欠けたままでないといけなんですよ・・
レーザーだけなら対応しているのですが通常弾は対応させてなかったんですよね・・
まあそれをやると通常弾がレーザーに吸収されそうで怖いですが・・
やはりエフェクトが貧弱なので大変そうです・・
Re:東方文花帖でよく使われるレーザーの作り方について
質問なのですが、
でレーザー開始位置の座標が求まるのかを教えてください。とくにPI/2とかはなぜでてくるのでしょう。
ゲームプログラミングの館の、sin.cosの概念は読みました。
あと弾の場合ならわかるのですが、開始する位置は動かないのに(弾は指定方向に動くじゃないですか・・・)なんでもとまるのでしょう。
わかりにくくてすいません。ModiGraphが難しくてどうも。。。
あと何回も質問すいませんが、
玉がレティーの弾幕のように一回てん(ようは円をまわるようにするには)どのような文を書けばいいのでしょう、それと、地霊殿の一面の中雑魚がつかうsin波?ショットはどのように作られているのでしょう?一度考えてみたのですが、できませんでした。(シューティングゲームの館のsin波はそれ自体が動くというか、角度が変わらなかったのです。)
円を回るのはわかりません。。。
lazer[k].startpt.x= boss.x+cos(lazer[k].angle)*DIST;//座標 lazer[k].startpt.y= boss.y+sin(lazer[k].angle)*DIST; と lazer.disppt[0].x=lazer.startpt.x+cos(lazer.angle+PI/2)*lazer.haba; lazer.disppt[0].y=lazer.startpt.y+sin(lazer.angle+PI/2)*lazer.haba; と lazer.disppt[2].x=lazer.startpt.x+cos(lazer[i].angle-PI/2)*lazer[i].haba+cos(lazer[i].angle)*lazer[i].length; lazer[i].disppt[2].y=lazer[i].startpt.y+sin(lazer[i].angle-PI/2)*lazer[i].haba+sin(lazer[i].angle)*lazer[i].length;
でレーザー開始位置の座標が求まるのかを教えてください。とくにPI/2とかはなぜでてくるのでしょう。
ゲームプログラミングの館の、sin.cosの概念は読みました。
あと弾の場合ならわかるのですが、開始する位置は動かないのに(弾は指定方向に動くじゃないですか・・・)なんでもとまるのでしょう。
わかりにくくてすいません。ModiGraphが難しくてどうも。。。
あと何回も質問すいませんが、
玉がレティーの弾幕のように一回てん(ようは円をまわるようにするには)どのような文を書けばいいのでしょう、それと、地霊殿の一面の中雑魚がつかうsin波?ショットはどのように作られているのでしょう?一度考えてみたのですが、できませんでした。(シューティングゲームの館のsin波はそれ自体が動くというか、角度が変わらなかったのです。)
円を回るのはわかりません。。。
Re:東方文花帖でよく使われるレーザーの作り方について
あとチルチルさんのもやってみたいですが、
一応売り物ということなので、まずいかもですね・・・
また配布できるような(売り物とかではないような)のがあったらやらせてください
!!
一応売り物ということなので、まずいかもですね・・・
また配布できるような(売り物とかではないような)のがあったらやらせてください
!!
Re:東方文花帖でよく使われるレーザーの作り方について

う~ん他の人のプログラムを解読するのは苦手なので悩みますね・・
situmonさんの参考になるかもしれないと色々なレーザーを作っていたので
とりあえずレティーを再現してみました
簡単にするためにブレーキを掛けていないので画面外に飛んでいきますが・・
地霊殿は作成中です・・少々お待ちください
円移動はこんな感じでしょうかね・・
if( P->Count<60 )SetNode(P);//ノードを登録 for( Node_t *p=P->Next;p->flag<=2;p=p->Next,i++ ){//管理ノード間ポインタfor文 if( p->Next->flag<=2 ){ p->x=p->Next->x;//前のノードを追う p->y=p->Next->y;//前のノードを追う } else{ p->x=P->x+cos(P->Angle+(float)P->Count/30)*P->Count;//円移動 p->y=P->y+sin(P->Angle+(float)P->Count/30)*P->Count;//円移動 } }//管理ノード間ポインタfor文 if( P->Count==600 ){P->flag=-1;for( Node_t *p=P->Next;p->flag<=2;p=p->Next )p->flag=-1;}それでゲームの方ですが、別に問題は無いですよ
と言うか部活の人とかにテストプレイとかしてもらってますし
コミケで売ると言っても20枚ぐらいですから、それほど影響力は無いので・・
他に配布できる物と言えば去年の文化祭で配布しようと製作して
先輩達にボツを食らった東方のパズルゲームぐらいしかないですね・・
今になってみるとアレはボツを食らって良かったです・・
Re:東方文花帖でよく使われるレーザーの作り方について

sin波ショットを再現してみました
レーザーなので先端の弾が波移動をして
後の弾は前の弾の座標をコピーしているだけですが
通常弾の場合も全ての弾が波移動をすればsin波ショットになると思います
if( P->Count<120 )SetNode(P);//ノードを登録 for( Node_t *p=P->Next;p->flag<=2;p=p->Next,i++ ){//管理ノード間ポインタfor文 if( p->Next->flag<=2 ){ p->x=p->Next->x;//前のノードを追う p->y=p->Next->y;//前のノードを追う } else{ p->x=P->x+cos(P->Angle+PI/2*P->Exception[0])*(sin((float)P->Count/10)*40);//波移動 p->y=P->y+sin(P->Angle+PI/2*P->Exception[0])*(sin((float)P->Count/10)*40);//波移動 } }//管理ノード間ポインタfor文 if( DeleteJudge(P->Next->x,P->Next->y) ){P->flag=-1;for( Node_t *p=P->Next;p->flag<=2;p=p->Next )p->flag=-1;}PI/2が出てくる意味ですが進行方向に対して右とか左という意味かもしれません
実際に上のコードでもPI/2を使って進行方向に対して右と左に弾をずらす事で波移動しているので・・
Re:東方文花帖でよく使われるレーザーの作り方について
しかしシーケンスレーザーは最初からこういう動きをするために作ってあるので簡単ですが
通常弾とかだと難しいかもしれないし、移動と関係ない部分もあるので一応文字式で説明します
円移動
弾のX座標 = 回転軸のX座標 + cos( 回転軸からの角度 ) * 回転軸からの距離
弾のY座標 = 回転軸のY座標 + sin( 回転軸からの角度 ) * 回転軸からの距離
回転軸からの角度を増やしていけば時計回り、減らしていけば反時計回りに回転すると思います
回転軸からの距離も同時に増やせば回りながら外に広がると思います
回転軸はボスの座標、角度や距離は弾のカウンタを使う事が多いと思います
sin波ショット
弾のX座標 = 中心軸のX座標 + cos( 中心軸の角度 + PI/2 * -1か1 ) * ( sin( 何らかのカウンタ ) * 波の幅の半分 )
弾のY座標 = 中心軸のY座標 + sin( 中心軸の角度 + PI/2 * -1か1 ) * ( sin( 何らかのカウンタ ) * 波の幅の半分 )
中心軸はアシストか何かを進行方向に向かって真っ直ぐ飛ばせば良いんですが、多分これが大変ですね
シーケンスレーザーでは管理ノードと言う弾幕とアシストの役目をするノードがあるので楽ですが・・
-1か1は2本あるのでどちらかを-1にしてもう1つを1にしてください、XとYでは同じ値が入ると言う事で・・
あとカウンタを使うと言っていますが角度を1づつ増やすと変化が大きすぎるので実際は(float)Count/60ぐらいで使います
通常弾とかだと難しいかもしれないし、移動と関係ない部分もあるので一応文字式で説明します
円移動
弾のX座標 = 回転軸のX座標 + cos( 回転軸からの角度 ) * 回転軸からの距離
弾のY座標 = 回転軸のY座標 + sin( 回転軸からの角度 ) * 回転軸からの距離
回転軸からの角度を増やしていけば時計回り、減らしていけば反時計回りに回転すると思います
回転軸からの距離も同時に増やせば回りながら外に広がると思います
回転軸はボスの座標、角度や距離は弾のカウンタを使う事が多いと思います
sin波ショット
弾のX座標 = 中心軸のX座標 + cos( 中心軸の角度 + PI/2 * -1か1 ) * ( sin( 何らかのカウンタ ) * 波の幅の半分 )
弾のY座標 = 中心軸のY座標 + sin( 中心軸の角度 + PI/2 * -1か1 ) * ( sin( 何らかのカウンタ ) * 波の幅の半分 )
中心軸はアシストか何かを進行方向に向かって真っ直ぐ飛ばせば良いんですが、多分これが大変ですね
シーケンスレーザーでは管理ノードと言う弾幕とアシストの役目をするノードがあるので楽ですが・・
-1か1は2本あるのでどちらかを-1にしてもう1つを1にしてください、XとYでは同じ値が入ると言う事で・・
あとカウンタを使うと言っていますが角度を1づつ増やすと変化が大きすぎるので実際は(float)Count/60ぐらいで使います
Re:東方文花帖でよく使われるレーザーの作り方について
龍神録レーザーですが見たところ表示位置の中心にレーザーの座標があるようなので
回転するレーザーの場合とかならレーザーの向いている方向と逆に長さだけ進めば
視覚的な発射点の座標になるのではないでしょうか・・?
ModiGraph関数については質問の意味が良くわからないのですが
4点を求めるなら、レーザーの座標を中心として
向いている方向に長さだけ進み、向いている方向+PI/2に幅だけ進めば
進行方向に対する右上の座標が求まるんじゃないでしょうか・・?
しかし長さとか幅は中心に対しての距離か視覚的な距離なのかを理解しなくてはいけないんでしょうかね
視覚的な距離なら頂点を求める時は半分にしないと表示した時に大きさが2倍になるかもしれませんから・・
回転するレーザーの場合とかならレーザーの向いている方向と逆に長さだけ進めば
視覚的な発射点の座標になるのではないでしょうか・・?
ModiGraph関数については質問の意味が良くわからないのですが
4点を求めるなら、レーザーの座標を中心として
向いている方向に長さだけ進み、向いている方向+PI/2に幅だけ進めば
進行方向に対する右上の座標が求まるんじゃないでしょうか・・?
しかし長さとか幅は中心に対しての距離か視覚的な距離なのかを理解しなくてはいけないんでしょうかね
視覚的な距離なら頂点を求める時は半分にしないと表示した時に大きさが2倍になるかもしれませんから・・
Re:東方文花帖でよく使われるレーザーの作り方について
それでゲームの方ですが、別に問題は無いですよ
と言うか部活の人とかにテストプレイとかしてもらってますし
>では、やらせていただきたいです。
他に配布できる物と言えば去年の文化祭で配布しようと製作して
先輩達にボツを食らった東方のパズルゲームぐらいしかないですね・・
今になってみるとアレはボツを食らって良かったです・・
>今まで作ってきたのを見てくと前のはびっくりするほどwwwですよね。。
しかしやってみたいです。
と言うか部活の人とかにテストプレイとかしてもらってますし
>では、やらせていただきたいです。
他に配布できる物と言えば去年の文化祭で配布しようと製作して
先輩達にボツを食らった東方のパズルゲームぐらいしかないですね・・
今になってみるとアレはボツを食らって良かったです・・
>今まで作ってきたのを見てくと前のはびっくりするほどwwwですよね。。
しかしやってみたいです。
Re:東方文花帖でよく使われるレーザーの作り方について
え~と、ではアップローダーの使い方などを覚えたりするので少々お待ちください
下手をすると明日とかになるかもしれないので気長にお待ちください・・
下手をすると明日とかになるかもしれないので気長にお待ちください・・
Re:東方文花帖でよく使われるレーザーの作り方について
ありがとうございました。
レーザーはそれなりにがんばって考えないとだめですね!!
しかし、やはり龍神録のレーザーについての座標の求め方がわかりません。
レーザーはそれなりにがんばって考えないとだめですね!!
しかし、やはり龍神録のレーザーについての座標の求め方がわかりません。
Re:東方文花帖でよく使われるレーザーの作り方について
ちなみにシーケンスレーザーを作った時は構造の関係で
描画できる所まで作らないとテストプレイができませんでした
実行してみてうまく行かなかったので
少し直してちゃんと動いた時は安心しました・・
龍神録のレーザーはよくわからないですね・・
ちなみに座標と言うのは何の座標でしょうか?
これはメールとかで管理人さんに聞いた方が良いかもしれません・・
描画できる所まで作らないとテストプレイができませんでした
実行してみてうまく行かなかったので
少し直してちゃんと動いた時は安心しました・・
龍神録のレーザーはよくわからないですね・・
ちなみに座標と言うのは何の座標でしょうか?
これはメールとかで管理人さんに聞いた方が良いかもしれません・・
Re:東方文花帖でよく使われるレーザーの作り方について
レーザーで陰陽玉などを描くのは難しいと思われがちですが
共通部分さえ作ってしまえば後は座標の代入だけすればOKです
逆に言えば通常弾を陰陽玉の形に並べる事ができれば
レーザーで陰陽玉を描く事もできると言う事です
共通部分さえ作ってしまえば後は座標の代入だけすればOKです
逆に言えば通常弾を陰陽玉の形に並べる事ができれば
レーザーで陰陽玉を描く事もできると言う事です
Re:東方文花帖でよく使われるレーザーの作り方について
最終的にお二人のアドバイス、コードなどから、
レーザーでも分けて、
一つ一つ、作るのですね。
弾を拡大して作る、玉をつなげて作るなどいろいろありますが、
弾をつなげて、透明度を利用するのからはじめ、
チルチルさんのシーケンスレーザーと
龍神録のレーザーに挑戦してみます。
御津凪さん、チルチルさん、どうもありがとうございました。
レーザーでも分けて、
一つ一つ、作るのですね。
弾を拡大して作る、玉をつなげて作るなどいろいろありますが、
弾をつなげて、透明度を利用するのからはじめ、
チルチルさんのシーケンスレーザーと
龍神録のレーザーに挑戦してみます。
御津凪さん、チルチルさん、どうもありがとうございました。
Re:東方文花帖でよく使われるレーザーの作り方について
私もチルチルさんに質問なんですが、上のレスで、No:38492、No:38496、の画像はどういったもの
を使っていますか?
どういう感じにああいった画像の演出をやっているのか気になります。
先端のほうは尖っていて透明度も変えてるみたいです。
僕も同じようなのを作りたいので教えてください。
を使っていますか?
どういう感じにああいった画像の演出をやっているのか気になります。
先端のほうは尖っていて透明度も変えてるみたいです。
僕も同じようなのを作りたいので教えてください。