💀洞窟を創造する💀
今回は洞窟をつくります。
💀ローグライクのおさらい💀
>> [DTL]ローグライク(穴掘り法)💀
以前作ったローグライク穴掘り法のアルゴリズムを使用します。
詳しくは前回の記事をご参照ください。
💀手順💀
1. ローグライク穴掘り法でローグライクダンジョンの生成
2. 1以上の数値と0の数値で2値化する
3. ノイズを加えて洞窟っぽくする
こんな感じでいきます。
1.ローグライク穴掘り法でローグライクダンジョンの生成
前回の解説記事の時に作った**"RogueLike関数"**を使用します。
生成
int main() {
std::array<std::array<std::uint8_t, 64>, 32> matrix{ {} };
dtl::RogueLike<std::uint8_t> d(matrix, 20);
}
2. 1以上の数値と0の数値で2値化する
dtl::RogueLike<std::uint8_t> d(matrix, 20);
dtl::dungeonBinarization(matrix_, 1);
ID | 名前 | 色 |
---|---|---|
0. | 外壁 | ■■青■■ |
1. | 内壁 | ■■白■■ |
2. | 部屋 | ■■緑■■ |
3. | 玄関 | ■■黒■■ |
4. | 通路 | ■■黄■■ |
1以上の数値を1に変えます。
ほんの少し洞窟みが出てきました。
3. ノイズを加えて洞窟っぽくする
このままだとあまり洞窟っぽくないのでノイズを加えます。
dtl::RogueLike<std::uint8_t> d(matrix, 20);
dtl::dungeonBinarization(matrix_, 1);
dtl::noiseShoreBothBool(matrix_, 0.1);
💀完成💀
無事に実装できました。
💀実装ライブラリ(ソースコード)💀
今回解説した洞窟の自動生成は**"Dungeon Template Library"に"RogueLike Cave"**として実装されています。
ぜひ、活用してみてください!
#💀ソースコードのライセンス💀
These codes are licensed under CC0.
この記事のソースコードはCC0ライセンスとします。
ぜひ、自由に改変して遊んでみてください。
最後までお読みいただきありがとうございました!