プチコン3号 SmileBASIC コミュニティ投稿みさき 1166812015/02/11 11:57:23質問今シューティングゲームを作っているのですが、Aボタンで弾が沢山出る仕組みなのですが弾を撃つところを見せたいのでVSY…?(コードを忘れています。)みたいなコードを使ってスピードを抑えているのですが、そうすると自機の動くのが遅くなってしまうのです。どうしたら改善できますか? 分かる人お願いします。2そうだね 6返信プレイ済み2017/11/03 23:40:02に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿みさき 1166812015/2/11 12:00このようなプログラムです。2/10そうだね プレイ済み2017/11/03 23:40:02に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿みさき 1166812015/2/11 12:02続きのプログラムです。0そうだね プレイ済み2017/11/03 23:40:02に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿みさき 1166812015/2/11 12:04追記 VSY…?と言っていたのはVSYNCです。0そうだね プレイ済み2017/11/03 23:40:02に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿おにぎり EasyPuzzler652015/2/11 12:1973行目からが自機の動きですね。86行目でGOSUB @Aとしているから、@Aはサブルーチンですね。とするとRETURN文がありません。72行目にRETURNが必要でしょう。サブルーチンがプログラムの流れの 途中にあるのはまずい(意図せず実行されてしまう)から、100行目の後ろにまわすか, 72行目に挿入したRETURN文の次にもう1行追加して@MAINLOOP(と仮にしておきましょう)という ラベルを立て,46行目のところあたりからGOTO @MAINLOOPとして飛んでしまいましょう。1そうだね プレイ済み2017/11/03 23:40:02に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿おにぎり EasyPuzzler652015/2/11 12:22さて,サブルーチン@Aが@MAINLOOP以下から呼ばれることが確定すれば、74行目に書かれたVSYNCで表示待ちは十分ですから、58行目のVSYNCはいりません、というか、これが遅さの原因ですからとってください。弾が動くためにここで確実に60フレーム時間がカウントされてしまって,それからやっと自機の動きを受け付けるBUTTON文にいくわけで、つまりこのプログラムではBUTTON文が1秒に1回しか実行されないので遅いのです。1そうだね プレイ済み2017/11/03 23:40:02に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿みさき 1166812015/2/11 12:33おにぎりさん とても詳しい解説ありがとうございます!これでより良いシューティングゲームが作れそうです\(^∀^)/0そうだね プレイ済み2017/11/03 23:40:02に取得