#pixel-art #bevy #camera #2d #pixel #2d-game #pixel-perfect

bevy_tiled_camera

bevy中渲染低分辨率像素艺术相机的库

16个不稳定版本 (7个破坏性更新)

0.9.0 2024年3月17日
0.8.0 2023年11月5日
0.7.0 2023年7月12日
0.6.0 2023年3月8日
0.2.4 2021年11月22日

#703 in 游戏开发

Download history 38/week @ 2024-04-05 29/week @ 2024-04-12 17/week @ 2024-04-19 16/week @ 2024-04-26 6/week @ 2024-05-03 10/week @ 2024-05-10 18/week @ 2024-05-17 20/week @ 2024-05-24 27/week @ 2024-05-31 16/week @ 2024-06-07 16/week @ 2024-06-14 16/week @ 2024-06-21 26/week @ 2024-06-28 70/week @ 2024-07-05 15/week @ 2024-07-12 11/week @ 2024-07-19

每月125次下载
用于 2 库

MIT 协议

585KB
349

License: MIT Crates.io docs

Bevy Tiled Camera

在bevy中正确显示低分辨率像素完美2D游戏的相机。它通过调整视口以匹配目标分辨率来实现,目标分辨率由瓦片数量和每瓦片的像素数定义。

示例

use bevy_tiled_camera::*;
use bevy::prelude::*;

fn setup(mut commands:Commands) {
  // Sets up a camera to display 80 x 35 tiles.
  // Defaults to 8 pixels per tile with WorldSpace::Units.
  let camera_bundle = TiledCameraBundle::unit_cam([80,35]);
  commands.spawn(camera_bundle);
}
fn main() {
    App::new()
    .add_plugins((DefaultPlugins, TiledCameraPlugin))
    .add_systems(Startup, setup)
    .run();
}

世界空间

你的世界空间定义了你的游戏中变换和缩放的处理方式。你可以使用世界单位或像素来定位一切。相机通过其 world_space 函数支持这两种方式。

版本

bevy bevy_tiled_camera
0.13 0.9.0
0.12 0.8.0
0.11 0.7.0
0.10 0.6.0
0.9 0.5.0
0.8 0.4.0
0.6 0.3.0
0.5 0.2.4
0.5 0.2.3

模糊精灵

默认情况下,bevy将创建所有新的图像使用线性图像采样。这对于较小的、高分辨率的图像来说是好的,但对于低分辨率图像会导致严重的模糊。要修复它,你可以在创建图像时手动将图像采样器设置为最近邻,或将默认值更改为始终使用最近邻采样创建新图像。

use bevy::prelude::*;
use bevy_tiled_camera::*;

App::new()
    .add_plugins((DefaultPlugins.set(ImagePlugin::default_nearest()), TiledCameraPlugin))
    .run();

依赖项

~18–46MB
~729K SLoC