
※途中で戻りたい場合は、ブラウザの「戻る」機能を使ってください。
プログラムリストの意味を解析 第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.