スプライト操作の基本が解ったところで、次はアドベンチャーモード の作成方法の説明に入りたいと思います。 ではまず以下のコードを書いてみてください。

void game_main(void)
{
    int nSp背景 = SP_GET_UNUSE_NUM();
    SP_SET_CG(nSp背景, 13);
	
    int nSpキャラ = SP_GET_UNUSE_NUM();
    SP_SET_CG(nSpキャラ, 12);
    
    int nSpメッセージ枠 = SP_GET_UNUSE_NUM();
    SP_SET_CG(nSpメッセージ枠, 14);
    SP_SET_POS(nSpメッセージ枠, 0, 480 - 121);
    SP_SET_TEXT_POS(nSpメッセージ枠, 16, 24);
    SP_SET_TEXT_HOME(nSpメッセージ枠, 16, 24);
    
    MES(nSpメッセージ枠);
    MES_SET_SIZE(32);
    MES_SET_WAIT(100);
    
    for (;;) {
        'やっほー' R;
        'だよー' A;
    }
    
}
実行すると、



こんな感じになると思います。左クリックすると、メッセージ表示がループ し、右クリックするとメッセージウィンドウが非表示になると思います。

コードをみてみると、3つのスプライトが作成されていることが分かる と思います。背景とキャラとメッセージ枠です。

12〜13行目は、スプライトの上に表示されるテキストの表示位置を 設定しています。15行目は、「nSpメッセージ枠」スプライトを シナリオメッセージを表示するスプライトとして設定しています。 16〜17行目は、表示するテキストのサイズや表示時間の設定です。

20〜21行目がシナリオテキストにあたります。シングルクォーテーション (')でくくられたテキストが、そのまま表示されるようになっています。 「R;」ですがこれは「R();」と同じ意味で、R関数を呼び出しています。 引数がない関数は「()」を省略できます。「A;」も同様にA関数を呼び出して います。

R関数はテキストの改行を意味し、A関数はキー入力を待ち、キー入力が あればテキストを削除し、次のテキスト表示位置をホームポジションに 戻すものです。