17 个版本 (10 个重大更改)
0.11.0 | 2024年2月7日 |
---|---|
0.10.0 | 2023年3月25日 |
0.9.0 | 2022年4月22日 |
0.8.0 | 2021年11月23日 |
0.3.0 | 2018年3月1日 |
#21 in 游戏开发
1,163 每月下载量
在 9 个库 中使用 7 个直接使用
14MB
96K SLoC
steamworks
此库提供了对 Steamworks SDK 的 Rust 绑定。
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
steamworks = "0.10.0"
库 | SDK | MSRV |
---|---|---|
git | 1.58a | 1.71.1 |
0.11.0 | 1.54 | 1.71.1 |
0.10.0 | 1.54 | 1.56.1 |
0.9.0 | 1.53a | 1.56.1 |
示例
您可以在 示例 中找到更多示例。
use steamworks::AppId;
use steamworks::Client;
use steamworks::FriendFlags;
use steamworks::PersonaStateChange;
fn main() {
let (client, single) = Client::init().unwrap();
let _cb = client.register_callback(|p: PersonaStateChange| {
println!("Got callback: {:?}", p);
});
let utils = client.utils();
println!("Utils:");
println!("AppId: {:?}", utils.app_id());
println!("UI Language: {}", utils.ui_language());
let apps = client.apps();
println!("Apps");
println!("IsInstalled(480): {}", apps.is_app_installed(AppId(480)));
println!("InstallDir(480): {}", apps.app_install_dir(AppId(480)));
println!("BuildId: {}", apps.app_build_id());
println!("AppOwner: {:?}", apps.app_owner());
println!("Langs: {:?}", apps.available_game_languages());
println!("Lang: {}", apps.current_game_language());
println!("Beta: {:?}", apps.current_beta_name());
let friends = client.friends();
println!("Friends");
let list = friends.get_friends(FriendFlags::IMMEDIATE);
println!("{:?}", list);
for f in &list {
println!("Friend: {:?} - {}({:?})", f.id(), f.name(), f.state());
friends.request_user_information(f.id(), true);
}
for _ in 0..50 {
single.run_callbacks();
::std::thread::sleep(::std::time::Duration::from_millis(100));
}
}
功能
serde
:此功能通过 serde
使一些类型的序列化和反序列化成为可能。
许可
帮助,我的游戏无法运行!
如果您看到类似 STATUS_DLL_NOT_FOUND
、Image not found
等错误,则可能缺少 Steamworks SDK 可分发文件。Steamworks-rs 以动态方式加载 SDK,因此库必须存在于操作系统可以找到它们的地方。这通常在您的游戏二进制文件(Windows 上的 .exe)旁边。您可以在 SDK 发布 ZIP 文件中找到所需文件,在 lib\steam\redistributable_bin
下。有关更多详细信息,请参阅 #63。