【はじめてのプチコン】プログラムの変更① | りょうのゲーム塾

りょうのゲーム塾

再開、準備中。

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

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

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


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

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


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

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


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


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

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

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


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

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


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



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

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


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




要するに遅い!!


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

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


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

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


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

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


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




思い出の欠片


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

説明は省きます。

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

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

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



思い出の欠片



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

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

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


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

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


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


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


X=R0


とありますが正解は


X=_R0


でした。



思い出の欠片

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

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

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

思い出の欠片




思い出の欠片



思い出の欠片


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


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