0240-RLTK-生成小房间

环境

  • Time 2022-11-30
  • WSL-Ubuntu 22.04
  • RLTK 0.8.7

前言

说明

参考:https://bfnightly.bracketproductions.com/rustbook

目标

基于前一节的内容,生成两个小房间,只修改 map.rs 文件。

生成房间函数

fn apply_room_to_map(room: &Rect, map: &mut [TileType]) {
    for y in room.y1 + 1..=room.y2 {
        for x in room.x1 + 1..=room.x2 {
            map[index(x, y)] = TileType::Floor;
        }
    }
}

新地图

pub fn new_map() -> Vec<TileType> {
    let mut map = vec![TileType::Wall; 80 * 50];

    let room1 = Rect::with_size(20, 15, 10, 15);
    let room2 = Rect::with_size(35, 15, 10, 15);

    apply_room_to_map(&room1, &mut map);
    apply_room_to_map(&room2, &mut map);

    map
}

效果

生成小房间

总结

重新生成地图,在地图上生成两个小房间。

附录

posted @ 2024-08-16 16:31  jiangbo4444  阅读(21)  评论(0)    收藏  举报