レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
おちゃめくらぶ掲示板
-
セーブ機能のあるゲームを作ろう
プチコン用の自作プログラム内でデータをセーブする方法についてまとめてみたにょ。
http://ww5.tiki.ne.jp/~ochame/petitcom/tips/save.htm
プチコンではSAVEの必要性のないようなアクションゲームやシューティングゲームが多くて
セーブが必要不可欠なRPGやシミュレーションゲームは少なめとなっているにょ。
これはRPGではやらなければならないことが多くて完成させるためのハードルが高いというのも
あるけれどセーブデータの作り方も分からないという人が居るのではないかと思われるにょ。
一般的なBASICの場合だとSAVE "(ファイル名)"、変数名という感じで保存したい変数を指定
してSAVEをするのだけどプチコンのsmile basicではその方法をサポートしていないからね。
では、どうするのかというと上記のまとめの最初に書いているようにMEM$を使って保存する
ことになるにょ。
このMEM$こそがプチコン内部に唯一保存可能な変数といえるにょ。
そのためMEM$にSAVEしたいすべての変数の値を入れていかないといけないにょ。
文字変数であるということで数値変数はSTR$を使って文字列化するというのは初心者でも
簡単に分かることだけど(スコアのトップ5をSAVEするなどの)複数のデータを保存する場合
には桁揃えをしないと元に戻せないという問題があるからね。
実際、MEM$を使ったセーブ方法はよく分からないという人もネット上でよく目にするため
今回まとめることにしたにょ。
それとMEM$では256文字制限が大きすぎるという場合にはGRPでセーブするという方法もある
けどこちらは特殊な方法であり、リソースをそれぞれ別々に記録可能なプチコンならではの
方法といえるにょ。
しかし、変数のデータを画像として記録するという方法は仕組みそのものは単純だけど
知らなければ全く分からないものであるためこちらもまとめることにしたにょ。
特殊な方法であり、ユーザーが独自に考えたのだけどmkIIではサンプルのGAME6で採用されて
いるようにほぼ公式化されたものになっているにょ。
GRP(グラフィック面)を使用すれば48KBまでセーブ可能ということで巨大なセーブデータに
なるRPGなども作りやすくなるのだけどアクションゲームなどではリプレイデータの記録に使用
することができるにょ。
http://ww5.tiki.ne.jp/~ochame/petitcom/tips/save.htm#replay
というか、今回のセーブ機能の付け方のまとめの発端となったのはリプレイデータの記録
方法について書いてみようというのが発端になっているにょ。
リプレイデータの記録、再生機能は自作ゲーム「JUMPING ISLAND」において搭載しようと
思ったのだけど満足のいくものを作るためにはリストが大幅に大きくなってしまい最終的な
上限ラインとして掲げていた「2KB以内」を完全に越えてしまうので搭載を見送ったにょ。
というわけで、せめてその方法だけでも書こうと思ったけどせっかく書くならばリプレイだけ
ではなく上記のようにSAVEの方法がよく分からないという人にも参考になるようなものに
しようということで今回のような形になったにょ。
さて、上記のまとめで「JUMPING ISLAND」にリプレイ記録、再生を組み込む方法を書いた
わけだけどここで問題なのはJUMPING ISLANDがリスト短縮をかなりやっているため実は修正
すべき箇所が非常に多くなってしまうにょ。
本来ならばリプレイ記録、再生ルーチンを組み込んで記録か再生かを条件判断するだけで
済むのだけど「JUMPING ISLAND」の場合は特例であり、それだけでは済まないということで
具体的な組み込み方に関してはボタン操作のみの対応としているにょ。
それではあまりに何なのでとりあえず最低限の機能だけ持たせたリプレイ記録、再生機能
付きのテストバージョンを作ったにょ。(テストバージョンということでQRのみ公開)
http://ww5.tiki.ne.jp/~ochame/petitcom/qr/ji_replay.png
使用方法はリプレイ記録は常時行っており、スタートするたびに上書きしているので再生
可能なのは直前プレイ分のみとなるにょ。
再生したい場合はタイトル画面でSTARTボタンを押しながらステージ選択をすればいいにょ。
当然ながら直前にプレイしたステージでないとリプレイ再生は無意味なので注意にょ。
再生中は左上に「PLAY」の文字が出るため後は見ているだけにょ。
なお、このリプレイ記録、再生ルーチンの特徴の1つとしてBREAKしてもその直前までは
リプレイデータを再生可能というものが挙げられるにょ。
実際にBREAKして試してみるのが一番分かりやすいにょ。
この時はリプレイデータは途中までしかないのだけどBREAKした部分以降は操作可能な状態に
なっているため自由に動かすことは可能にょ。(ただし、再生モード時は記録はされない)
再生モードを終了するためには一端タイトル画面に戻り、普通に開始すれば解除されるにょ。
制限が多くて実用になるのかは疑問だけどこれを使ってみてリプレイの記録、再生は良いと
感じる人が居ればより良くなるように各自で改造してもらったらいいと思うにょ。
あくまでこれはテストバージョンであり、改造のための支援みたいなバージョンだからね。
《追記》
上記のリプレイ対応版だけどデータにプレイしたステージが入ってないのは不便なので
データ形式を変えて3ドット目にステージを入れたにょ。(上記のQRコードは新しいものに
差し替え済み)
これで、1〜9のどれを選択してもリプレイデータのあるステージに自動的になるにょ。
ついでにステージ1のハイスコア10879点、ステージ9のハイスコア8410点を出したときの
リプレイデータを公開するにょ。
ステージ1 http://ww5.tiki.ne.jp/~ochame/petitcom/qr/ji_st1data.png
ステージ9 http://ww5.tiki.ne.jp/~ochame/petitcom/qr/ji_st9data.png
それぞれタイトル画面から[B]ボタンを押してロード画面に行きOCHAJI1もしくはOCHAJI9と
入力すればステージデータをロードできるので良かったら見てにょ。
|
|
|
掲示板管理者へ連絡
無料レンタル掲示板