コミュニティアイコン プチコン 非公式コミュニティ プレイ日記

アバター
おちゃめ ◆jH1opV6FnGyx
2019/3/10 13:13
昨日公開した新作QSPゲーム「SIMPLE RACING QSP」の可読性を向上したプログラムを作ってみました。コメントを多めにしたのでこのゲームの仕組みを知りたい人はご覧になってください。(1/4)

コメント

アバター
おちゃめ 2019/3/10 13:13 ◆jH1opV6FnGyx
(2/4)
アバター
おちゃめ 2019/3/10 13:14 ◆jH1opV6FnGyx
(3/4)
アバター
おちゃめ 2019/3/10 13:22 ◆jH1opV6FnGyx
(4/4)
この可読性向上版の公開キーは【 LRNV33RJ 】です。

QSP版のプログラムと比較すればQSPがどのように作られているかの参考になると思います。
なお、加減速の計算式の数字の意味ですが、これは何度もプレイして「これがベストな値」というのを試行錯誤で見つけ出したものです。
基本的にアクセル全開で曲がれる部分と大幅に減速しないと曲がれない部分を作り出しているのですが、「プレイしていて気持ちいい」と思えるような値に設定しています。(つまり、自分がこのゲームをプレイしていて楽しいと思えるような値にしているということ)

QSP版のトピックスはこちら
http://petitverse.hosiken.jp/community/petitcom/diary/?read=2652
QSP版の自サイトでの紹介
http://ochameclub.web.fc2.com/petitcom3/soft/qsp2.htm#race

この可読性向上版とQSP版の処理は全く同じなので同じ走りをすればどちらでも同じ記録が出ます。
アバター
HUCU 2019/3/10 14:56 ◆B7lOIJDWuOqi
バグを発見してしまった
アバター
おちゃめ 2019/3/12 5:46 ◆jH1opV6FnGyx
HUCUさんへ

どこにバグがありました?
アバター
HUCU 2019/3/12 10:36 ◆B7lOIJDWuOqi
始めからBボタンを押しながらスティックを右に倒す

7時の方向を向いたらスティックを戻す

タイマーが4秒になったらスティックを右に倒し続ける

周回数が増え続ければ成功
アバター
おちゃめ 2019/3/13 5:00 ◆jH1opV6FnGyx
それはバグではなく仕様です。

プログラムのコメントにも書いているように縦128ドットのスタートラインを左から右に通過すれば「周回した」という判定になっているためです。(実際には負の座標方向にもスタートラインがあるので128ドットよりもずっと長いけど)
プログラムをQSPに収めるためはこれ以外の方法で周回判定は不可能であるためこのような簡易判定としています。
この可読性向上版も基本的にQSP版をそのままの仕様となっているためあえてゲームのルールに関わる部分の変更は行っていません。

では、QSPでなければ正確な周回判定が可能かというとそうではありません。
こういったレースゲームの場合はよくある方法としては途中にチェックポイントを複数用意しておいてそれを順番に通過したかどうかで行うものです。
しかし、その方法であってもコースに外壁を設けてコース外を自由(フリーダム)に走れないようにしないと正しく判定はできません。
したがって、このゲームのようにフリーダムな走りが可能なゲームにおいて正確な周回判定を行う方法はないのです。
やるとしたらどこまで許容できるのかを設定しておいてそれを外れた走りは周回したと認めないということくらいですね。(これだと「フリーダムな走りができる」と言えるかは微妙なので結局「フリーダムな走りが可能なゲームにおいて正確な周回判定を行う方法はない」というのと同じだけど)

ちなみにこの簡易的な方法ですが、コース外をフリーダムに走れないようにするならばこれで何ら問題はなく判定できるのでこの方法も手抜きの方法というわけではなくちゃんとした周回判定ができる方法なのです。

そのやり方の一例としてはこんな感じです。
まずは、GFILL 60,70,310,140,#NAVY としてコースの真ん中に大きな池を表示します。
そして自車の移動処理の後に次の1行を追加して池を通れなくすればOKです。
IF GSPOIT(X,Y)==#NAVY THEN X=X-COS(A)*S:Y=Y-SIN(A)*S

これでこの周回判定方法が正しく機能しているというのが分かると思います。(自車の判定は中心のみで行っているため「車の半分が池から落ちているではないか!」というツッコミは無しの方向で)
だから普通のレースゲームは外壁等を設置することによってコースをフリーダムに走れるような作りにはなってないのです。
アバター
おちゃめ 2019/3/13 5:01 ◆jH1opV6FnGyx
ちなみにスタートラインは256で自車の初期座標が255なのはその方がプログラムを短縮できるためです。
このプログラムを見てのように短縮できそうな部分をとことんまで追求した仕様(普通にプレイしていたら気にならない部分をそぎ落とした仕様)になっているためQSPに収まっているのです。
普通に作ったら絶対にQSPには収まりません。

「プログラムそのものの短縮」ではなく「QSPに収まる仕様にできるかどうか」が実はQSPを作る際に重要になっています。
この辺は私が書いた本「プチコン3号QSP完全マニュアル」「プチコン3号QSP完全マニュアル PART 2」「プチコン3号QSP究極完全マニュアル」に詳しく記述しています。
なお、「プチコン3号QSP完全マニュアル」は自サイトで無償公開しているのでQSPに興味があればぜひご覧になってください。
http://ochameclub.web.fc2.com/CLUB/qsp_manual_1/index.htm

「QSP究極完全マニュアル」はこの無償公開している最初のQSPマニュアルとは比べ物にならないくらい詳細解説を行っています。(QSPに興味ある方であれば必読の内容)
http://petitverse.hosiken.jp/community/petitcom/topic/?read=128
アバター
HUCU 2019/3/13 10:41 ◆B7lOIJDWuOqi
そうだったのか!!

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -