10个版本
0.2.0 | 2024年7月11日 |
---|---|
0.1.8 | 2024年5月11日 |
#204 在 游戏开发
每月下载量 187
34KB
608 行
bevy_ios_gamecenter
Bevy插件和Swift包,用于从Bevy应用中访问iOS原生GameKit(Gamecenter)。它使用Swift-Bridge来自动生成粘合代码和传输数据类型。
使用此crate的游戏演示:zoolitaire.com
另请参阅 bevy_ios_iap、bevy_ios_notifications、bevy_ios_alerts、bevy_ios_review 及 bevy_ios_impact
功能
- 身份验证
- 保存游戏(基于iCloud)
- 成就
- 排行榜
待办事项
- 挑战,匹配
说明
- 添加到XCode:添加SPM(Swift Package Manager)依赖
- 添加Rust依赖
- 设置插件
1. 添加到XCode
-
添加
GameKit
框架:![gamekit](https://img.gs/czjpqfbdkz/800,2x/https://raw.githubusercontent.com/rustunit/bevy_ios_gamecenter/be67f918e876756eaebb54d930af46036dc2f76b/crate/assets/framework.png) -
转到
文件
->添加包依赖
并将https://github.com/rustunit/bevy_ios_gamecenter.git
粘贴到右上角的搜索栏:![xcode](https://img.gs/czjpqfbdkz/800,2x/https://raw.githubusercontent.com/rustunit/bevy_ios_gamecenter/be67f918e876756eaebb54d930af46036dc2f76b/crate/assets/xcode-spm.png)
注意:使用的rust crate版本必须与Swift Package完全相同。建议使用特定版本(如截图中的0.2.0
)以确保始终使用二进制匹配的版本!
2. 添加Rust依赖
cargo add bevy_ios_gamecenter
或
# always pin to the same exact version you also of the Swift package
bevy_ios_gamecenter = { version = "=0.2.0" }
3. 设置插件
初始化Bevy插件
// request auth right on startup
app.add_plugins(IosGamecenterPlugin::new(true));
fn bevy_system() {
bevy_ios_gamecenter::achievements_reset();
// update achievement progress, 100 % will complete it
bevy_ios_gamecenter::achievement_progress("id".into(),100.);
bevy_ios_gamecenter::leaderboards_score(
"raking id".into(),
// score
1,
// context
2,
);
// open gamecenter view (leaderboard)
bevy_ios_gamecenter::trigger_view(view_states::LEADERBOARDS);
// save arbitrary binary buffer as a savegame
bevy_ios_gamecenter::save_game("test".into(), vec![1, 2, 3].as_slice());
// request list of `IosGCSaveGame`
bevy_ios_gamecenter::fetch_save_games();
// based on result of above `fetch_save_games` request
let save_game = IosGCSaveGame {..}
bevy_ios_gamecenter::load_game(save_game);
}
处理从iOS返回到我们的Rust中的响应事件
fn process_gamecenter_events(
mut events: EventReader<IosGamecenterEvents>,
) {
for e in events.read() {
match e {
IosGamecenterEvents::SaveGames(response) => todo!(),
IosGamecenterEvents::Player(player) => todo!(),
IosGamecenterEvents::Authentication(response) => todo!(),
IosGamecenterEvents::SavedGame(response) => todo!(),
IosGamecenterEvents::LoadGame(response) => todo!(),
IosGamecenterEvents::AchievementProgress(response) => todo!(),
IosGamecenterEvents::AchievementsReset(response) => todo!(),
IosGamecenterEvents::LeaderboardScoreSubmitted(response) => todo!(),
}
}
}
Bevy版本支持
bevy | bevy_ios_gamecenter |
---|---|
0.14 | 0.2,main |
0.13 | 0.1 |
许可证
此仓库中的所有代码均采用双重许可,任选其一:
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
- Apache许可证,版本2.0(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
这意味着您可以选择您喜欢的许可证。
您的贡献
除非您明确声明,否则根据Apache-2.0许可定义的您提交的任何有意包含在工作中的贡献,将按照上述方式双许可,不附加任何额外条款或条件。
依赖关系
~27MB
~450K SLoC