display atlas

This commit is contained in:
Fabien Freling 2025-03-04 13:57:34 +01:00
parent f92e88b554
commit e75cc60376
8 changed files with 7 additions and 30 deletions

View file

@ -2,7 +2,7 @@ bin := "Rush.pdx"
alias b := build
build:
pdc src {{ bin }}
pdc --quiet --skip-unknown src {{ bin }}
alias s := simu
simu: build

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 B

BIN
src/img/bg_atlas.pxo Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
src/img/player.pxo Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

View file

@ -6,48 +6,24 @@ import "CoreLibs/timer"
local gfx <const> = playdate.graphics
local playerSprite = nil
local atlas = nil
function myGameSetUp()
local playerImage = gfx.image.new("img/player.png")
function gameInit()
local playerImage = gfx.image.new("img/player")
assert(playerImage)
playerSprite = gfx.sprite.new(playerImage)
playerSprite:moveTo(200, 120) -- (200,120) is the center of the Playdate screen
playerSprite:add()
-- We want an environment displayed behind our sprite.
-- There are generally two ways to do this:
-- 1) Use setBackgroundDrawingCallback() to draw a background image. (This is what we're doing below.)
-- 2) Use a tilemap, assign it to a sprite with sprite:setTilemap(tilemap),
-- and call :setZIndex() with some low number so the background stays behind
-- your other sprites.
-- local backgroundImage = gfx.image.new("Images/background")
-- assert(backgroundImage)
-- gfx.sprite.setBackgroundDrawingCallback(
-- function(x, y, width, height)
-- -- x,y,width,height is the updated area in sprite-local coordinates
-- -- The clip rect is already set to this area, so we don't need to set it ourselves
-- backgroundImage:draw(0, 0)
-- end
-- )
local table = gfx.imagetable.new("img/tilemap-table-16-16.png")
local map = gfx.tilemap.new()
map:setImageTable(table)
map:draw(0, 0)
atlas = gfx.imagetable.new("img/bg_atlas")
end
-- Now we'll call the function above to configure our game.
-- After this runs (it just runs once), nearly everything will be
-- controlled by the OS calling `playdate.update()` 30 times a second.
myGameSetUp()
-- `playdate.update()` is the heart of every Playdate game.
-- This function is called right before every frame is drawn onscreen.
-- Use this function to poll input, run game logic, and move sprites.
gameInit()
function playdate.update()
-- Poll the d-pad and move our player accordingly.
@ -74,4 +50,5 @@ function playdate.update()
gfx.sprite.update()
playdate.timer.updateTimers()
atlas:drawImage(1, 32, 32)
end