Skip to content

Commit

Permalink
Add LCDSprite setCenter and getCenter
Browse files Browse the repository at this point in the history
  • Loading branch information
samdze authored Jan 18, 2024
1 parent 0163b4f commit a1fd052
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
4 changes: 4 additions & 0 deletions src/playdate/bindings/sprite.nim
Original file line number Diff line number Diff line change
Expand Up @@ -156,4 +156,8 @@ sdktype:
cdecl, raises: [].} ## added in 1.10
setStencilImage {.importc: "setStencilImage".}: proc (sprite: LCDSpritePtr;
stencil: LCDBitmapPtr; tile: cint) {.cdecl, raises: [].}
setCenter {.importc: "setCenter".}: proc (sprite: LCDSpritePtr;
x: cfloat; y: cfloat) {.cdecl, raises: [].} ## added in 2.1
getCenter {.importc: "getCenter".}: proc (sprite: LCDSpritePtr;
x: ptr cfloat; y: ptr cfloat) {.cdecl, raises: [].}

12 changes: 11 additions & 1 deletion src/playdate/sprite.nim
Original file line number Diff line number Diff line change
Expand Up @@ -400,4 +400,14 @@ proc setStencilImage*(this: LCDSprite, stencil: LCDBitmap, tile: bool) =
privateAccess(PlaydateSprite)
privateAccess(LCDBitmap)
playdate.sprite.setStencilImage(this.resource, if stencil != nil: stencil.resource else: nil, if tile: 1 else: 0)
this.stencil = stencil
this.stencil = stencil

proc setCenter*(this: LCDSprite, x: float32, y: float32) =
privateAccess(PlaydateSprite)
playdate.sprite.setCenter(this.resource, x.cfloat, y.cfloat)

proc getCenter*(this: LCDSprite): tuple[x: float32, y: float32] =
privateAccess(PlaydateSprite)
var x, y: cfloat
playdate.sprite.getCenter(this.resource, addr x, addr y)
return (x: x.float32, y: y.float32)

0 comments on commit a1fd052

Please sign in to comment.