#playdate #api-bindings #gamedev #memory-safety

无需 std playdate-rs

Playdate SDK C-CPI 的安全 Rust 绑定

15 个版本

0.0.15 2023 年 9 月 20 日
0.0.14 2023 年 9 月 18 日
0.0.10 2023 年 8 月 29 日

#279 in 游戏开发

MIT/Apache

470KB
13K SLoC

playdate-rs

crates.io docs workflow-status

注意:在达到 v0.1.0 版本之前,这是一个进行中的项目。API 不完整,版本之间的破坏性更改可能会频繁发生。

Playdate SDK C-API 的安全绑定,

  1. 易于使用且文档齐全。
  2. 以内存安全性为设计理念。

目前仅适用于 Linux/macOS 和 Playdate 模拟器。

入门指南

  1. 确保环境变量 PLAYDATE_SDK_PATH 设置正确。
    • 在 macOS 上跳过此步骤,因为工具箱将自动通过检查默认安装位置来查找 SDK。
  2. 安装 CLI 工具:cargo install playdate-cli
  3. 创建新项目:cargo playdate new hello-world
  4. 运行项目:cd hello-world && cargo playdate run

有关所有可用的 CLI 命令,请参阅 Playdate CLI 文档

应用程序打包

使用 cargo playdate build 命令将自动创建一个可以运行在模拟器上的 target/<profile>/<package_name>.pdx 文件夹。对于设备构建,它将位于 target/thumbv7em-none-eabihf/<profile>/<package_name>.pdx

游戏资源打包

请将所有资源文件放在项目根目录下的assets文件夹中(包含Cargo.toml的文件夹)。CLI将自动将所有内容复制到.pdx文件夹。所有受支持的资源都将由pdc编译器转换。

有关更多详细信息,请参阅examples/hello-world项目。

pdxinfo生成和打包

CLI将自动在.pdx文件夹下生成一个pdxinfo文件。设置pdxinfo文件内容有两种方式

  1. 在项目的根目录下创建一个pdxinfo文件(包含Cargo.toml的文件夹)。CLI将自动拾取它。
  2. Cargo.toml中创建一个[package.metadata.pdxinfo]部分
[package.metadata.pdxinfo]
name = "Your game name" # Default value: package.name
author = "Your Name" # Default value: package.authors
description = "Your game description" # Default value: package.description
bundle_id = "com.your-game.bundle-id" # Default value: "com.example." + package.name
image_path = "image/path" # Default value: empty string
launch_sound_path = "launch/sound/path" # Default value: empty string
content_warning = "Content warning" # Default value: empty string
content_warning2 = "Content warning 2" # Default value: empty string

请注意,[package.metadata.pdxinfo]中的所有字段都是可选的。默认值将来自Cargo.toml中的其他字段。请参阅上面关于# 默认值的注释。

示例:examples/hello-world/Cargo.toml

待办事项

  • Linux / macOS模拟器构建
  • Cortex-M7F构建
  • 在真实的Playdate设备上运行
  • 支持所有公共PlaydateSDK C-API

依赖项

~1.5–4.5MB
~81K SLoC