Added missing documentation to the source code in the Playdate bindings target.
CI / Build & test (macOS) (push) Has been cancelled
CI / Embedded Swift cross-compile (push) Has been cancelled
Documentation / deploy (push) Has been cancelled

This commit is contained in:
2026-07-25 12:55:53 +02:00
parent b435a6e8bd
commit 91783deb7b
63 changed files with 259 additions and 3 deletions
@@ -1,10 +1,16 @@
internal import CPlaydate
/// The cached `playdate->sprite` C API table.
private var spriteAPI: UnsafePointer<playdate_sprite> { Playdate.spriteAPI.unsafelyUnwrapped }
/// A sprite: a drawable object with position, z-order, and collision
/// support. Wraps `LCDSprite`. Static members wrap the global sprite
/// system functions.
///
/// The binding stores a back-reference to each `Sprite` wrapper in the
/// underlying `LCDSprite`'s userdata slot, so callbacks and queries can
/// recover the wrapper. Do not mix these wrappers with C code that sets
/// its own sprite userdata; use `userdata` for per-sprite storage instead.
public final class Sprite {
let pointer: OpaquePointer
let isOwned: Bool
@@ -269,11 +275,13 @@ public final class Sprite {
set { spriteAPI.pointee.setUpdatesEnabled.unsafelyUnwrapped(pointer, newValue ? 1 : 0) }
}
/// Whether the sprite participates in collisions.
public var collisionsEnabled: Bool {
get { spriteAPI.pointee.collisionsEnabled.unsafelyUnwrapped(pointer) != 0 }
set { spriteAPI.pointee.setCollisionsEnabled.unsafelyUnwrapped(pointer, newValue ? 1 : 0) }
}
/// Whether the sprite is drawn.
public var isVisible: Bool {
get { spriteAPI.pointee.isVisible.unsafelyUnwrapped(pointer) != 0 }
set { spriteAPI.pointee.setVisible.unsafelyUnwrapped(pointer, newValue ? 1 : 0) }
@@ -3,9 +3,13 @@ internal import CPlaydate
extension Sprite {
/// How a sprite reacts when a collision occurs.
public enum CollisionResponse: UInt32, Sendable {
/// The sprite slides along the edge of the other sprite.
case slide = 0
/// The sprite stops at the point of collision.
case freeze = 1
/// The sprite passes through, still reporting the collision.
case overlap = 2
/// The sprite bounces off the other sprite.
case bounce = 3
init(_ response: SpriteCollisionResponseType) {
@@ -7,6 +7,7 @@ public struct Rect: Sendable {
public var width: Float
public var height: Float
/// Creates a rect from an origin and size.
public init(x: Float, y: Float, width: Float, height: Float) {
self.x = x
self.y = y