こんな感じですか?
配列変数にキャラとBGMの番号を記憶しておいて
スペースキーを押す度に取り出す配列の順番を変える方法。
// 素材読み込み
celload dir_tv + "\\hsptv_img.bmp" : src_id1 = stat
celdiv src_id1, 64, 64
celload dir_tv + "\\sozai4.jpg" : src_id2 = stat
mmload dir_tv + "bgm1.mid", 0, 1
mmload dir_tv + "bgm2.mid", 1, 1
mmload dir_tv + "\\se_aaa.wav", 3, 2
// 初期化
cel_list = 28, 32 ; celputで表示するキャラの番号
chr_no = 0 ; 最初のキャラ番号
bgm_list = 0, 1 ; BGMの番号
bgm_no = 0 ; 最初のBGM番号
cx = 0 ; キャラのX座標
cy = 380 ; キャラのY座標
cmx = 4 ; キャラの移動速度
mmplay bgm_list(bgm_no) ; BGM再生
// ゲーム処理
*main
redraw 0
// キー入力
stick key ; スペースキーを押したら音楽とキャラを変更
if key & 16 {
mmstop ; BGMを一時停止
mmplay 3 ; 効果音を再生(ムービー再生の代わり)
bgm_no = (bgm_no + 1) \ 2 ; BGMの変更
mmplay bgm_list(bgm_no)
chr_no = (chr_no + 1) \ 2 ; キャラの変更
}
// 表示
pos 0, 0 : celput src_id2 ; 背景表示
gmode 2 ; キャラのコピーモード
pos cx, cy : celput src_id1, cel_list(chr_no) ; キャラの表示
cx + cmx ; キャラの移動
if (cx <= 0) or (cx >= 566) : cmx * -1 ; キャラが画面端に来たら反転
redraw 1
await 16
goto *main