トピック
ばTAソso ^_^ bantaka0225

スプライトでどうやっても弾幕が作れません。

作り方を教えてください。できれば上の3つからお願いします。
1そうだね
プレイ済み
返信[1]
親投稿
みむ*mim hidemimtp
座標は配列で持ち、弾の飛ぶ方向は、三角関数「COS」と「SIN」を使用します。単純に360度方向に360発の弾を撃つ(円)には、 DIM X[360] , Y[360] FOR I=0 TO 359 SPSET I,0 X[I]=150:Y[I]=100 '最初の座標 VX[I]=COS(RAD(I)) 'X方向への速度(移動量) VY[I]=SIN(RAD(I)) 'Y方向への速度(移動量) NEXT @LOOP FOR I=0 TO 359 INC X[I],VX[I]:INC Y[I],VY[I] '移動 SPOFS I,X[I],Y[I] VSYNC NEXT GOTO @LOOP て感じ。全て準備してから移動すれば「円」、角度を変えながら準備と移動を繰り返せば「ぐるぐる」、角度を「I」ではなく「RNDF()*360」で決めれば「ランダム」
0そうだね
プレイ済み
返信[2]
親投稿
ばTAソso ^_^ bantaka0225
エラーになります。
0そうだね
プレイ済み
返信[3]
親投稿
みむ*mim hidemimtp
だいたいの説明のつもりで、試さず書いたので・・・ 今から打ってみますが、とりあえずDIM文にVX[360],VY[360]は必要ですね。
0そうだね
プレイ済み
返信[4]
親投稿
みむ*mim hidemimtp
1行目を DIM X[360] , Y[360] , VX[360] , VY[360] にするのと、13行目のVSYNCは、14行目のNEXTの後にしてください。 これで動くと思います。
0そうだね
プレイ済み
返信[5]
親投稿
みむ*mim hidemimtp
1度ずつの360個だとさすがに見にくいので、 ・ 2箇所ある「FOR I=0 TO 359」を「FOR I=0 TO 35」 ・ 同じく2箇所ある「RAD(I)」を「RAD(I*10)」 に変更すれば、10度ずつの36個になります。
0そうだね
プレイ済み
返信[6]
親投稿
ばTAソso ^_^ bantaka0225
ぐるぐるができません。
0そうだね
プレイ済み
返信[7]
親投稿
みむ*mim hidemimtp
やり方は色々ありますが、元のプログラムの「@LOOP」の下に、 CNT=CNT+1 ’カウンター N=CNT MOD 360 ’0-359を回す X[N]=150:Y[N]=100 ’順番にクリアする とすれば、とりあえずグルグルしますよん。 なぜそうなるのかを読み取って、頑張ってみてください。
1そうだね
プレイ済み
返信[8]
親投稿
ばTAソso ^_^ bantaka0225
ありがとうございます!
0そうだね
プレイ済み