トピック
コーン Maise.Corn

2つのスプライトを同時に動かしたら…

シューティングを作っている過程で、   弾を撃ちながら移動させむうとしたら   弾発射→消失までの動作がVSYNC並に  重くなってしまいました。        どなたか助けてください…!
6そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
57行目のVSYNCは不要だと思います。 52行から61行までのループの中で一通り処理が終わった後にVSYNCを 1回行えば最高60FPSまで出せますが、VSYNCを2回行うと最高で30FPS までしか出なくなります。
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
また弾を発射してから消失するまでCHMVの値が変化しないため 自機のコントロールができなくなってしまいますがそれは問題無いですか? VSYNC並に重くなっているというのが自機が操作できないということ でしたらループの中の IF MCVH ~の前の行に MVCH=BUTTON()を入れる必要があると思います。
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
最後の行で変数名を間違えました。正しくは CHMV=BUTTON() です。
0そうだね
プレイ済み
返信[4]
親投稿
ほしけん Hosiken
VSYNCは通るたびに1/60秒待ってしまうので、全てのキャラを動かしたあとに通る1ヶ所に置くだけでいいです。そうしないと重くなったような動きになります。(実際は重いのではなく、待っているだけ) 画面を見るだけでも5ヶ所ぐらいありますが、これを1つに整理してください。その1つは、状態に関わらず必ず1回通る場所へ置きます。 また、63行目の「VSYNC 12」は「VSYNC 1」の間違いではないでしょうか。
0そうだね
プレイ済み
返信[5]
親投稿
コーン Maise.Corn
VSYNCって、ループ内で一度使えば 全てに機能するんですね!覚えておかなきゃ。 ひとまず、重くなる(待っている)問題は 解決しました。 お二方ありがとうございました!
2そうだね
プレイ済み