トピック
いぎょ igyochan

花火を沢山打ち上げたい!

突然花火を作りたい衝動にかられ、作り始めたのですが、一つずつしか花火が上がらなくてなんだか寂しいです。 試しに作ってみたものは簡潔にまとめると while 1 花火 wend def 花火 花火の動き end といったプログラムになっています。 花火大会のクライマックスのように沢山花火を上げるにはどういった構造にすれば良いのでしょうか? どなたかご存じの方、よろしくおねがいします(>д<)
2そうだね
プレイ済み
返信[1]
親投稿
ぴくと kanau1203
自分ならwhile-wend間にカウンタ変数を用意してwendするごとにカウンタをインクリメントしてカウンタがXXの時に花火を打ち上げるようにします けどそれ貴方の書いたプログラムの場合は 複数個同時に花火を打ち上げて複数個の花火の動きを同時に処理できない(多分) ので根本的に改装する必要があると思います
1そうだね
プレイ済み
返信[2]
親投稿
MIKI ifconfig
while 1: vsync for i = 0 to 花火の数-1: hanabi_move i: next wend var 花火の状態[n], 花火のx座標[n], 花火のy座標[n] def hanabi_move i 'i番目の花火の動きを 1 ステップ進める if 花火の状態[i]==待機 then 乱数 > 0.5 なら花火の状態[i]=上昇中にする: 花火の座標[i]を設定 elseif 花火の状態[i]==上昇中 then 花火の座標[i]を更新: 描画: ある程度上昇したら状態[i]を破裂中にする elseif 花火の状態[i]==破裂中 then : endif end という感じになります。
3そうだね
プレイ済み
返信[3]
親投稿
いぎょ igyochan
お二方とも、どうもありがとうございます!! コメントを参考にして、シーズン中に完成できるように頑張りますっ!
1そうだね
プレイ済み
返信[4]
親投稿
NeG TEAMNEG
発射処理と花火の動作処理を わけてみてはどうですか? 例えば動作処理をSPFUNCで登録 WHILE 1 IF RND(100)==0 THEN 発射処理 ENDIF CALL SPRITE `動作処理 WEND
2そうだね
プレイ済み
返信[5]
親投稿
GRS grs8001
■ 複数の花火が開くサンプル(手抜き) コレ系の処理は ・1回の命令で少ししか実行しない ・何処までやったか記憶しておく 変数:S (この処理を何回も繰り返す事) ・複数実行するために変数は配列変数を使う ■ 簡単な説明 (円が広がるだけですが…) 7行目:右端の 0 は同時に実行する数です。配列変数は0から始まるので 0 は1個目です (5 にすると 6個の円を同時に書きます) 15行目:変数 S[N] はカウンタで S[N]==0 の場合は打ち上げた瞬間の処理 (打ち上げた瞬間に座標等のデータを代入) 24行目:カウンタを進める 25行目:カウンタが最大半径に達したらカウンタを0に戻して終了 基本的な仕組みが解れば何とかなると思うのでSAMPLEを実行してみてね
2そうだね
プレイ済み
返信[6]
親投稿
あきと SideBurnsM
「複数の花火を飛ばす」前にこのソースを読んでみると一瞬しか火花が出ないのでは。 GRSさんがサンプルで書かれていますが、配列変数を勉強して花火の散らばるパーツ一つ一つの動きを制御するという事を勉強する必要があると思います。 花火一発が爆発すると数百のパーツに分裂し、その一つ一つが重力にしたがって落ちていくという計算を行うという意味です。この計算を配列変数で管理できるようになれば複数の花火を飛ばすこともできるようになると思います。
2そうだね
プレイ済み
返信[7]
親投稿
いぎょ igyochan
皆さん、どうもありがとうございます! GRSさんのサンプルを見ているだけでも楽しいですね! 皆さんの例やアドバイスを組み合わせて上手く作れるように頑張ります☆ また疑問などが出てくると思うので完成できるまではトピックを閉じずに置いておきます……(._.)
0そうだね
プレイ済み
返信[8]
親投稿
スー thanks_0u0
私の考える一番楽な実装方法ー(・ω・) 1.花火が上がって散るまでのアニメーションを全部絵で描く 2.ループの中で花火を作るときにSPANIMとSPFUNKを設定する。 SPANIMの内容はUVかIで画像を変えるのと、XYで座標を動かすの。 SPFUNKの内容はSPCHK?(アニメーション状態を調べるやつ)が0ならSPCLRするだけ。 お好みでZ座標やSPSCALE、SPCOLORを変えても良さげ。 3.ループ内でCALL SPRITEする 終わり!これなら花火の飛び散り方などの難しい計算を考えないですみますよー。プログラマさん的には邪道ですかも?(ノ´∀`*)
0そうだね
プレイ済み
返信[9]
親投稿
いぎょ igyochan
皆様のおかげで複数の花火を咲かせることができました~(*>∀<*)♪ ただ、6つ位花火が表示されると途端にぬるぬるな動きになってしまうのでまだまだ課題はありそうです! 途中経過の作品です【QKAXX4V3】 ほぼ丸写しですみません……(汗) 次は火花の形を勉強してきます!! 本当にありがとうございました☆ スーさんの案も魅力的ですね! 本物の大きな花火を間近で見ると自分に迫ってきているように見えるので、Z座標との相性が抜群のような気がします!
1そうだね
プレイ済み
返信[10]
親投稿
スー thanks_0u0
花火綺麗でした!季節感もあるし、癒されますね( ´ ω ` ) 特に高速化に詳しいわけではないですけれど花火が増えると重くなっちゃうのは、「FORの中で何度も同じ計算をしていないかチェックする」「配列はすごく遅いので何度も出てくるなら変数に入れてから使う」の2点に気をつけるとちょっと速くなるかもしれませんー(・u・)
0そうだね
プレイ済み