PlaydateKit 为 Playdate C API 提供了易于使用的 Swift 绑定。PlaydateKit 旨在尽可能地“Swift 化”,用可抛出异常的函数替换错误指针,尽可能避免使用指针和内存管理,并为所有函数添加了文档注释(从 Playdate SDK 文档中复制)。
PlaydateKit 提供了(几乎)完整的 Playdate C API 覆盖。 PlaydateKit 为某些值(Sprite、Bitmap、FileHandle 等)添加了包装类型,这些类型自动管理资源的分配/释放。 虽然我已尝试密切遵循 C API 规范,但其中大部分都未经测试,因此如果您遇到意外问题或无法使用 Swift API 执行某些操作,请打开一个 issue!
目前,以下 API 部分已实现
有关如何开始使用 PlaydateKit 创建游戏的详细说明和文档,请参阅此处。
swift package pdc
进行构建。 使用 swift package pdc
构建时,构建好的 pdx
游戏文件将位于 .build/plugins/PDCPlugin/outputs/PlaydateKitTemplate.pdx
,并且可以在 Playdate 模拟器中打开。您的 PlaydateGame
对象管理游戏生命周期,接收诸如 gameWillPause
和 deviceWillSleep
之类的事件。
import PlaydateKit
final class Game: PlaydateGame {
init() {
System.addCheckmarkMenuItem(title: "check me") { isChecked in
print(isChecked ? "checked!" : "not checked")
}
}
func update() -> Bool {
System.drawFPS()
return true
}
func gameWillPause() {
print("Paused!")
}
}
我很高兴接受对这个项目的贡献,无论是错误修复、实现缺失的功能还是打开一个 issue。 请尽量遵循项目中现有的约定/风格。
如果您使用 PlaydateKit 创建了一个游戏,并且希望在此处展示它,请打开一个 issue 或 pull request! 如果您想重制一个复古游戏或创建一个新的游戏来展示 PlaydateKit 的功能,请随时在 Examples/
目录中添加一个示例游戏。
PlaydateKit 的灵感来自 @rauhul 在 swift-playdate-examples 上所做的出色工作,没有他们的工作,PlaydateKit 是不可能实现的。 具体来说,PlaydateKit 的创建源于 swift-playdate-examples 仓库中的说明
它不打算成为一个全功能的 Playdate SDK,所以请不要提交 PR 来将 Playdate Swift 覆盖扩展到新的领域。