りょうのゲーム塾 -23ページ目

りょうのゲーム塾

再開、準備中。

この処理はデバッグの際に便利な機能を追加します。


面倒な人は無視してください。



思い出の欠片

このデバッグモードはゲームのクリアやゲームオーバーにしたり

途中でゲームステージを強制的に終了します。

ただしゲームプログラムを終了させるわけではありません。


ゲームの実行を行っている部分に赤字で書かれた1行を追加してください。




思い出の欠片

ゲームタスクの後にゲーム中に使うサブルーチンが記述されています。

その先頭に赤色の@GAMETRAPサブウル-チンを追加してください。



ゲームステージでRボタンでゲームクリアに

Lボタンでゲームオーバーに

Yボタンでステージクリアになります。


実はこれを使うとあることが解ります。

この処理は隠れたバグを修正します。


面倒な人はここは無視しても構いません。


思い出の欠片




思い出の欠片


このバグはスタッフスクロールのタスクで変数Yを使っていますが、

この変数は別な場所でも使う可能性があるので

このスタッフスクロール専用の変数を使わなければなりません。

たまたま他のところで変数Yを使っていないのでバグが起こっていません。

この修正はひとつの記述ミスと

システムの効率(処理スピード)をあげるために行います。

実はプチコンmkIIのアナウンスをみて少し落胆しました。


もともと昔のホビーパソコンは処理能力が低いのですが、

その低いパソコンで使われていたベーシックには2つの大きな特徴があります。


ひとつはプログラミングに高度な技術を要求されないこと。

(ただしこれはプログラマ観点からですよ)


もうひとつは修正と実行がしやすい。


実は多くのプログラミングの場合コンパイラというツールを使って

プログラマの書いたプログラムをマシン語(ネイティブコード)に変換し実行します。

この場合すべての変更が出来ていないとエラーとなります。


ベーシックの場合にはプログラムを書いている途中でも実行する事が出来るのです。

詳しい説明はしませんが、こまめに作っては実行し訂正するといったことができます。


この仕組みを実現するのがインタープリタと呼ばれるツールです。



ただ欠点はこの場合実行速度が遅いという欠点があります。

それを解決するために中間コードというものを取り入れていました。


このプチコンではどうもこの方法を使っていないようです。




要するに遅い!!


実はプログラム作っていたらすぐに処理オーバーという現象が出ます。

処理オーバーについてはwikiサイトで説明することにしましょう。


このままではすぐに大変な目にあいます。

これも新しいプチコンmkIIの説明をみると『え??』ってなるんですが。。。


そこで少しでもプログラムの実行速度が速くなるであろうと思われる

方法に少し変更しておきます。


後で変更すると大変な目にあうので。。。




思い出の欠片


基本はライブラリの変更です。

説明は省きます。

赤で書かれているおところが変更点です。

ここではマップで使っていたマップカラーを

一時的に変数MAPCOLに代入し処理中の演算を軽減しました。



思い出の欠片



プログラムを確認しながらみていただければ

プログラムが簡略化されているのが解ります。

しかしこれはひとつの可能性を失います。


実は前のコードではマップのカラーを複数使用する事が出来るのですが

今回の変更でマップのカラ0は1色のみとなりました。


今後のサンプル3で機能を復活します。


ひとつの記述ミスは@GETDIRの最後らへんに


X=R0


とありますが正解は


X=_R0


でした。



思い出の欠片

マップカラーの変更のついでに

オブジェクトのキャラクタの扱い方を変更しました。

今まで文字列だった値を数値に変更しました。

思い出の欠片




思い出の欠片



思い出の欠片


上記の変更で各タスクのキャラクタの指定変更がされました。


これで動作は変りませんが少しだけ内部の処理が早くなっていると思います。