まずまだ規模が小っちゃかったのでDxLib->Siv3Dへ移植(?)してみました。たぶん合計して3時間ないぐらいで移植完了、コピペメインでちょこっとづつ修正。
DxLibより行数が減った!!!(体感的に) 特にライブラリのほうでcsvの読み込みがサポートされているのはとても大きい。むっちゃ楽です。
それとデプスステートとか(動かんかったけど)結構DxLibに比べて便利な機能がそろっている気がする。でも分割された画像を配列ごとに...的な機能はなかったので、
自分で実装する必要がありました。
で、移植完了後とりあえずなんか実装しないと、ということで効果音の再生、制御の関数を作って終わり、結局この前質問させていただいたあのあたり判定云々は解決せず。
設計から見直すって、どうすりゃいいんだー。まぁまた今度大量の時間が取れたら考えてみるとしましょうかね。
こんな感じで描画の前面や背面が制御できる
//描画順序定義 上ほど背面に描画される
enum
{
DEP_BACK,
DEP_ENEMY_SHOT,
DEP_ENEMY,
DEP_PLAYER_SHOT,
DEP_PLAYER,
DEP_BOARD,
DEP_SCORE,
DEP_MENU,
};
void Back::Draw()
{
//背景画像
Graphics2D::SetZ(DEP_BACK);
BackImg.draw(BackPos.x,BackPos.y);
BackImg.draw(BackPos.x, BackPos.y + BackImg.height);
BackImg.draw(BackPos.x, BackPos.y - BackImg.height);
BackImg.mirror().draw(BackPos.x + BackImg.width, BackPos.y);
BackImg.mirror().draw(BackPos.x + BackImg.width, BackPos.y + BackImg.height);
BackImg.mirror().draw(BackPos.x + BackImg.width, BackPos.y - BackImg.height);
//ボード描画
Graphics2D::SetZ(DEP_BOARD);
BoardImg.draw(0,0);
}
void Manager::LoadEnemyData()
{
EnemyData_t data[ENEMY_MAX];
const CSVReader csv(L"src/enemy/enemy00.csv");
for (int i = 0;i (row, 0);
data[i].s_type = csv.get(row, 1);
data[i].m_pattern = csv.get(row, 2);
data[i].s_pattern = csv.get(row, 3);
data[i].in_time = csv.get(row, 4);
data[i].stop_time = csv.get(row, 5);
data[i].shot_time = csv.get(row, 6);
data[i].out_time = csv.get(row, 7);
data[i].x = csv.get(row, 8);
data[i].y = csv.get(row, 9);
data[i].speed = csv.get(row, 10);
data[i].hp = csv.get(row, 11);
data[i].item = csv.get(row, 12);
}
...etc
}