#screeps #graphics #game-engine

scrcreeps-本地可视化

为可编程的MMO游戏Screeps提供一个库,允许工具在没有依赖游戏引擎进行渲染的情况下生成游戏数据的图像。

3个版本

0.1.2 2024年7月29日
0.1.1 2024年6月3日
0.1.0 2024年3月3日

401图像

Download history 182/week @ 2024-06-03 4/week @ 2024-06-10 142/week @ 2024-07-29

每月142次下载

MIT许可证

1.5MB
503

scrcreeps 本地可视化

该库为可编程的MMO游戏Screeps提供创建房间图像的帮助方法,不依赖游戏中的渲染器。

示例用法

以下示例代码生成一个图像 simple.png,表示一个带有扩展、资源、催化剂矿物、沼泽和3面墙的空房间。

use screeps_local_visuals::render;
use render::{ Terrain, Resource, BuildableStructure, OutputImage, DEFAULT_ROOM_MAX_ROWS, DEFAULT_ROOM_MAX_COLUMNS };


fn main()   {
  make_map_image("simple.png");
}


fn make_map_image(filename: &str) {

  let mut imgbuf = render::create_image();

  draw_terrain(&mut imgbuf);

  draw_test_terrain(&mut imgbuf);
  draw_test_resource(&mut imgbuf);
  draw_test_structure(&mut imgbuf);

  render::draw_grid(&mut imgbuf);

  imgbuf.save(filename).unwrap();
}

fn draw_terrain(imgbuf: &mut OutputImage) {
  for col in 0..DEFAULT_ROOM_MAX_COLUMNS {
    for row in 0..DEFAULT_ROOM_MAX_ROWS {
      render::draw_terrain_tile_xy(imgbuf, col, row, &Terrain::Plain);
    }
  }
}

fn draw_test_terrain(imgbuf: &mut OutputImage)  {
  render::draw_terrain_tile_xy(imgbuf, 20, 20, &Terrain::Swamp);
  render::draw_terrain_tile_xy(imgbuf, 21, 20, &Terrain::Wall);
  render::draw_terrain_tile_xy(imgbuf, 21, 21, &Terrain::Wall);
  render::draw_terrain_tile_xy(imgbuf, 20, 21, &Terrain::Wall);
}

fn draw_test_resource(imgbuf: &mut OutputImage)  {
  render::draw_resource_tile_xy(imgbuf, 10, 20, &Resource::Source);
  render::draw_resource_tile_xy(imgbuf, 20, 10, &Resource::Catalyst);
}

fn draw_test_structure(imgbuf: &mut OutputImage)  {
  render::draw_buildablestructure_tile_xy(imgbuf, 10, 10, &BuildableStructure::Extension);
}

依赖关系

~17MB
~293K SLoC