[ AMIDER(アミダー) その11 ]

※途中で戻りたい場合は、ブラウザの「戻る」機能を使ってください。

プログラムリストの意味を解析 第2ブロック(290行〜390行)



PLAY文の解析



290行のPLAY文の解析をします。

書式としては

PLAY ”文字式1”,”文字式2”,”文字式3”

3重和音まで表現でき、文字式1がチャンネル1というように文字式とチャンネルが対応しています。

文字式は、MML(ミュージックマクロ言語)で記述され、文字列変数に代入して扱う事も出来ます。

それでは、ミュージックマクロ命令を1つずつ解析してみましょう。

まずはじめのT120ですが、これはT(テンポ)を意味し、その後の数字(32〜255)は1分間に4分音符が何回演奏できるかで、テンポを決めます。

この場合だと、4分音符を120回演奏するテンポとなります。

S0のSはエンベローブの種類を指定し、その後に続く数字(0〜15)はエンベローブの番号を意味しています。

この場合だと、0番のエンベローブの音を使う事を意味します。

M5000のMはエンベローブの周期を指定し、その後に続く数字(0〜65535)は周期の幅を指定します。

この場合だと、5000の周期のエンベローブの音を使う事を意味します。

L8のLは音の長さを指定し、その後に続く数字(1〜64)は1が全音符、2が2分音符となり、64が64分音符となります。

この場合だと、L8は8分音符で演奏する事を意味します。

O5のOはオクターブを意味し、その後に続く数字(1〜8)で1が最低音音域で8が最高音音域となり、デフォルトだと4となります。

この場合だと、デフォルトよりも1音階高い音域になります。

Cはド、Aはラ、Gはソとなり、この場合だと「ドラソラドラソラドラソラド」と鳴ります。

最後のA6とC2の数字の意味が不明です。


タイトル画面の解析



画面を消して、FOR文を使い、キャラクタ座標(3,0〜19)へ「AMIDER」と表示し、(22,0〜19)へ「REDIMA」と表示させています。



ここでもFOR文を使って、キャラクタ座標(15,0〜19)へ「あ」を表示させています。

で、「AMIDER(アミダー) その5」でここを解析したときに、「あ」と言うキャラクタの意味がわからなかったのですが、タイトル画面ではこのキャラクタ座標にロープのパターンが描かれていることと、「AMIDER(アミダー) その10 」でキャラクタパターンが「あ」からロープのパターンに変わった事で、はっきりしました。






320行から350行までは、LOCATE文でキャラクター座標を決め、PRINT文でダブルクォーテーションマークの内容をそのまま表示しています。



PUTSPRITE命令で、スプライトを表示させています。

スプライト面番号0番を、座標(120,I*8)に、カラーコード15(白)で、スプライトパターンI MOD 2(0か1)を表示させています(スプライトパターンの0と1は、「AMIDER(アミダー) その10」で紹介していますので、参考にしてください。

最後にあるFOR文は間に何も入っていないので、ウエイトの処理です。



IF文でSTRIG(0)を判定して、スペースキーが押されたら、0面のスプライトを座標(0,209)を指定する事で消し、400行へ飛ぶようになっています。



360行で指定した変数Iが19より小さければカウントアップさせ、360行の表示に戻る事で、スプライトのY座標は8ドット下へ(I*8)表示される事になります。

変数Iが19よりも大きければ(この場合は19になったら)、変数Iを0に戻して360行へ戻ります。

エイリアンが座標(120,144)まで行ったら、次は座標(120,0)に戻り、それを繰り返す事になります。

次は第3ブロック(400行〜510行)を解析します。

 

Copyright(C) 2006. ピコピコテクノロジー All Right Reserved.