6个版本 (破坏性更新)
0.4.0 | 2024年1月26日 |
---|---|
0.3.0 | 2023年8月3日 |
0.2.0 | 2022年11月15日 |
0.1.0 | 2022年8月1日 |
0.0.1 | 2022年3月7日 |
#405 in 游戏开发
每月45次下载
1.5MB
1K SLoC
Bevy Match 3

bevy_match3
是一个处理Bevy中匹配3游戏逻辑的crate。
Bevy版本支持
bevy |
bevy_match3 |
---|---|
0.6 | 0.0.1 |
0.7 | 0.0.2 |
0.8 | 0.1.0 |
0.9 | 0.2.0 |
0.10 | N/A |
0.11 | 0.3.0 |
0.12 | 0.4.0 |
功能
- 可配置宝石类型数量和棋盘尺寸
- 创建棋盘时保证没有匹配
- 级联匹配
- 棋盘移动完成后检查匹配
- 洗牌棋盘
立即todo
- 将棋盘与插件解耦,并创建多个棋盘示例
根据需求可能的todo
- 实体而不是u32宝石类型
- 更多匹配类型
- 自定义各种方面,例如让交换始终成功并允许创建棋盘时匹配
示例
要开始使用此crate,您只需要设置插件
use bevy_match3::prelude::*;
fn main() {
App::new()
.add_plugins((DefaultPlugins, Match3Plugin))
.run();
}
响应棋盘事件
fn consume_events(
mut events: ResMut<BoardEvents>,
) {
if let Ok(event) = events.pop() {
match event {
BoardEvent::Swapped(pos1, pos2) => todo!(),
BoardEvent::FailedSwap(pos1, pos2) => todo!(),
BoardEvent::Popped(pos) => todo!(),
BoardEvent::Matched(matches) => todo!(),
BoardEvent::Dropped(drops) => todo!(),
BoardEvent::Spawned(spawns) => todo!(),
}
}
}
然后开始使用BoardCommands
资源发送命令到棋盘!
目前有一个包含所有功能的示例在 basic.rs
许可证
此仓库中的所有代码都根据您的选择,在以下两种许可证下双授权
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
- Apache许可证,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
。
鸣谢
- Ilustragm 为他们在示例中使用精彩的宝石图标包! https://ilustragm.itch.io/set-gems-icon-01
依赖关系
~23MB
~418K SLoC