11个版本 (6个重大更新)
0.7.0 | 2024年7月10日 |
---|---|
0.6.1 | 2024年5月30日 |
0.5.0 | 2024年2月17日 |
0.4.0 | 2023年8月7日 |
0.1.1 | 2022年11月6日 |
#142 in 游戏开发
每月下载量630
125KB
3K SLoC
seldom_pixel
seldom_pixel
是一个针对限制色彩调色板像素艺术游戏的Bevy插件。它处理
- 精灵
- 过滤器(通过图像定义;应用于层或单个实体)
- 简单UI(文本、按钮和锁定到摄像机的精灵)
- 瓦片图
- 动画(为精灵、过滤器、瓦片集和文本;支持抖动!)
- 自定义层
- 粒子(带预先模拟!启用
particle
特性) - 调色板更改
- 字体
- 游戏内光标
- 摄像头
- 行(启用
line
特性) - 等等!
它还提供了可选的与
seldom_state
的集成(用于动画状态机;state
特性)seldom_map_nav
(实现SubPxPosition
;nav
特性)
请参阅 examples
目录中的示例。如果您需要帮助,请随时在Bevy Discord服务器(@Seldom
)上联系我!如果任何文档需要改进,请随时提交问题或pr!
理念
- 资源是通过图像创建的
所有资源,包括过滤器,都是从图像加载的。 seldom_pixel
的范围仅限于渲染内容,因此它不应用于像级别和声音这样的东西。我推荐找到你舒服的艺术程序。我个人使用 GIMP,但可能难以理解。我听说 Aseprite 很好,你可以免费使用它,如果你能编译它的话。我只在这个插件中使用 .png
文件,所以我推荐使用该格式,但你可以自由尝试其他无损格式。
- 看起来就像这样
本crate的位置组件PxPosition
使用一个IVec2
(二维的i32
向量)来存储位置。这意味着实体位于精确的像素位置。因此,如果看起来玩家撞到了墙壁,或者一个投射物击中了敌人,那么游戏将做出相应的反应。还有一个SubPxPosition
组件,它使用一个Vec2
,用于运动和速度等特性。它将自动更新PxPosition
组件,我建议尽可能使用它。我还建议在停止移动时将SubPxPosition
重置为PxPosition
的值,以便移动对象对玩家来说感觉更一致。对于像素较小的游戏来说,这不太成问题。
- 为了生产力牺牲灵活性
如果您已经对制作有限色彩调色板的像素艺术游戏感兴趣,这对你来说是个容易的胜利。在seldom_pixel
中的过滤器就是将调色板中每种颜色映射到调色板中的另一种颜色。对于16,777,216种RGB颜色中的每一种,创建这样的过滤器都将是困难的,但seldom_pixel
只允许您在调色板中使用最多255种颜色(您可能想用得更少),因此创建效果变得容易。这也适用于库开发的端。seldom_pixel
的限制意味着我只需要为其功能使2D游戏(使用字节作为像素)工作,因此开发和维护更容易。无论如何,限制可以激发创造力。
未来工作
这个crate目前处于维护模式,所以我目前没有添加新功能。
- 高级UI,足以构建UI库
- 更高级的粒子系统
- 更多的形状原语
- 空间过滤器,可以过滤定义的区域,并在空间中而不是在时间上应用它们的动画。用于光照和散景等效果。
- 使渲染发生在渲染世界中
使用方法
将其添加到您的Cargo.toml
# Replace * with your desired version
[dependencies]
seldom_pixel = "*"
然后,将PxPlugin
添加到您的应用程序中。查看示例以获取更多使用方法。
兼容性
Bevy | seldom_state |
seldom_map_nav |
seldom_interop |
bevy_ecs_tilemap |
seldom_pixel |
---|---|---|---|---|---|
0.14 | 0.11 | 0.7 | 0.7 | ||
0.13 | 0.10 | 0.6 | 0.6 | ||
0.12 | 0.9 | 0.5 | 0.12 | 0.5 | |
0.11 | 0.7 | 0.4 | 0.11 | 0.4 | |
0.10 | 0.6 | 0.3 | 0.10 | 0.3 | |
0.10 | 0.5 | 0.3 | 0.10 | 0.2 | |
0.8 | 0.2 | 0.1 | 0.7 | 0.1 |
许可
seldom_pixel
可根据您的选择在MIT和Apache 2.0下双许可。
贡献
除非您明确表示,否则任何提交给工作以包含在内的贡献,根据Apache-2.0许可定义,都将如上所述双许可,不附加任何额外条款或条件。
演示视频
依赖关系
~35–73MB
~1.5M SLoC