Expand description
BMSのライブラリです。
BMSファイルの読み書きが出来ます
§拡張子がbms,bme,bml,pmsのファイル
// 読み込み
let bms_str = r"
#PLAYER 1
#GENRE ジャンル
#TITLE タイトル
#ARTIST 制作者
#BPM 180
#PLAYLEVEL 12
#RANK 3
#SUBTITLE サブタイトル
#SUBARTIST サブ制作者
#STAGEFILE ステージ画像.bmp
#BANNER バナー画像.bmp
#BACKBMP タイトル文字画像.bmp
#DIFFICULTY 4
#TOTAL 400
#LNOBJ ZZ
#PREVIEW preview.wav
#LNMODE 2
";
// ランダム要素を確定していない状態のBMSを作成
let rawbms = bms_utils::RawBms::parse(bms_str);
// ランダム要素を確定させる
// この時、疑似乱数生成器を渡す
let bms = rawbms.make_bms(rng);
// 書き込み
// !!!開発中!!!
§Bmsonファイル
// 読み込み
let bmson_string = r#"
{
"version": "1.0.0",
"info": {
"title": "タイトル",
"subtitle": "サブタイトル",
"artist": "制作者",
"subartists": [],
"genre": "ジャンル",
"mode_hint": "beat-7k",
"chart_name": "ANOTHER",
"level": 12,
"init_bpm": 200.0,
"judge_rank": 100.0,
"total": 400.0,
"back_image": "背景画像.bmp",
"eyecatch_image": "アイキャッチ画像.bmp",
"title_image": "タイトル画像.bmp",
"banner_image": "バナー画像.bmp",
"preview_music": "preview.wav",
"resolution": 240
},
"lines": [],
"bpm_events": [],
"stop_events": [],
"sound_channels": [],
"bga": {
"bga_header": [],
"bga_events": [],
"layer_events": [],
"poor_events": []
}
}
"#;
let bmson = bms_utils::Bmson::parse(bmson_string).unwrap();
// 書き込み
// 改行が無く、小さい長さの文字列へ
let bmson_string = bmson.to_string().unwrap();
// 改行やインデントがなされ、読みやすい文字列へ
let bmson_string = bmson.to_string_pretty().unwrap();