From e75cc60376b85562b1659ce49d186e9a34069bb3 Mon Sep 17 00:00:00 2001 From: Fabien Freling Date: Tue, 4 Mar 2025 13:57:34 +0100 Subject: [PATCH] display atlas --- justfile | 2 +- src/img/bg_atlas-table-32-32.png | Bin 0 -> 190 bytes src/img/bg_atlas.pxo | Bin 0 -> 656 bytes src/img/player.png | Bin 5368 -> 1134 bytes src/img/player.pxo | Bin 0 -> 1280 bytes src/img/tilemap-table-16-16.png | Bin 133 -> 0 bytes src/img/tilemap.pxo | Bin 621 -> 0 bytes src/main.lua | 35 ++++++------------------------- 8 files changed, 7 insertions(+), 30 deletions(-) create mode 100644 src/img/bg_atlas-table-32-32.png create mode 100644 src/img/bg_atlas.pxo create mode 100644 src/img/player.pxo delete mode 100644 src/img/tilemap-table-16-16.png delete mode 100644 src/img/tilemap.pxo diff --git a/justfile b/justfile index 07a4450..04d0f73 100644 --- a/justfile +++ b/justfile @@ -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 diff --git a/src/img/bg_atlas-table-32-32.png b/src/img/bg_atlas-table-32-32.png new file mode 100644 index 0000000000000000000000000000000000000000..8a585439182d182f028b14c0136bdd13c05babf1 GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|Dm+~rLn`LH zy?KzgK|zGoal`+49}|4GG^tu$J`jIzs-<4GNm|Kw(E!_jHz!!0dTedrARAyz2Hstt iR{z_U4`?F@)ZFJxNMW|qJ63!W#PxLbb6Mw<&;$UOdN=F< literal 0 HcmV?d00001 diff --git a/src/img/bg_atlas.pxo b/src/img/bg_atlas.pxo new file mode 100644 index 0000000000000000000000000000000000000000..351d70b8b49807b20629b7c965441ff84a316046 GIT binary patch literal 656 zcmWIWW@Zs#VBp|jIF*|cmBIO6$d8eMVGUeqL^%V_vg?z#p%z z=|Zh)zS{RL$cIea+SnRlx-C_@OZe&gSYeLND83D!3^p4-=9YdY6 zC@rC_g}Q7SX6KJfMK>`qo!5;zv0$6ez0cPTCza?0Oxne(%euxuL1cP1+p#1~=N6^& z4|JBS%SiaC{eG=gyQ7q?Q~wecv$<>1nz@vB&i)oSah*%H*0#y-jWnii347(X<;DJm zD*`K%UYGi&&bYbk&$3s2w!3FH)h^@Jw`9NkML9@l;gY%~w#PQS@F@1wp69&9Y#{Q;Xsa-(FzkWia4icKkE@o{3;_Fe`$qr( literal 0 HcmV?d00001 diff --git a/src/img/player.png b/src/img/player.png index c4722bd1da62c08589aa6b4e87d026aff74095c6..3d5b500627ecb04550e297cd8ed2eaaeff4c3d56 100644 GIT binary patch literal 1134 zcmV-!1d;oRP)Px(C`m*?RCt{2nLDzBx)Mc~Z{6SwqeBg)Lxw@fP!uu@g*}uGH4JCGKn4Q_{|^c@oHSUfIEahV*z!2iFLda7I#NoJAf#OU?7$O2u*YO zu>0hvRe6w^QtEzdMX$!ci=*xsj>e3fhN3!6j93&VG8vAA7Oa4u0)o`i<@WPpz}*T?o#=9SqKIWTJ4{<=$%Fc)N3@}FRHC0t@qsN9= ze(`9b6XX`8E*8)aol0R*BQ*DsVJbz|FZ4@MX+sMFm_J>G-gJS2f+EI=*eO>v=Y3;o3z{YG3Yu4yx%Ad%ms->X4zzSEIHLK7m9(jSxu zYqEPOh;lV7bY3taX&4L92+>eiGzppnq+U~{n_VC!@@D&81ioZ$&HO2ZgjAzHKg9a9 z_-xB=Amf=cA^KBZEgjy;e!I#UkM#8oN-(;Xuc5sBRZvw;ous zhUuKK#pD)EQd;L5g8S^KI*r5G^vwOjvRu@oqs z;!>UHTCN^hrPK_4!+w_ZjmgpxoA#CgX!o3vCP ziDk0N*&3i&gp}JzqRAB&Y~4LiJxeydxjAFyhXp)|frOp_Wa{^DwuJdu7?F{%S$nPL zf=j@DY(n^o9_!ty)SZMd1kSC#3!GBZIgPC?zQ6CUU}two7_BN%{hVTRkz&CPHx}QI z7Yk_fVeyozFThT*Yby&VvU+yw8Vwb-*929XzAhL;nD}{*+6#%j3%J?%c>WO`4**j8 z0tx5T{fywNFT59`u^SqzD;S+KJfq{Gf7gZF)4Lz*2Ct*z0TTL!<$Sm7&5%b~V@nGd z%i9`T1ZaRxG%~ilulqWjXEnpOSwO+4+}}0}ybjwEFv8clz#Ll<@aiM2XXQWK4L+S~ z|4(?h5W0oA1-$JCj8|c8!S^uzmt@`2?{3}x2YQzVZk-K?*Z=?k07*qoM6N<$f?WU! AkpKVy literal 5368 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 diff --git a/src/img/player.pxo b/src/img/player.pxo new file mode 100644 index 0000000000000000000000000000000000000000..77d916140b7aa91fa462bda5f247aaabd811fd83 GIT binary patch literal 1280 zcmWIWW@Zs#VBp|j=*dfoI=odgIGmAzVKx&311AFmLrP*vqFz>UeqL^1WL~p@z+NxY z`zlP6E=)82!WNq1o8YmgA@^pR)1o_jlc(uq)hC$ro992|V!yph*z&~w?}7pOTfQ!u zWZLO zi^SPWF6k=OHzxM{xxvqWX#ekAGHv>bS z!GVE68c1d4CZ?yxgW^Cxttc@!wOHR!KPRy=wJ6^3ZRFdj%?biOn$wasHID~r91r^O ze5bZ|o4&oDkIRhj&nBK$-C+FYQC8ggHWcvpLag~;tG4*0ioL6@`3HD~zCF02^y)9p ztUMH;I<^5=hrS~buPmPw}g7y5nuH@UixToBo zUZde@-&CBSc6_}_wPGEM%l#?8d6u;N>TfJ<$WzK(IML?iM9#M@L0^?C`b+b_PSSVz zmiSM8ub6zD?CYr;(idN-a7=RNQ9>q?%g#~b@VbV)9$VDXRv&5rTM+J8QnHTQ=^!0Qk&(Gry|6kTG|FXW;>xBfY;H*Y7XSI{fWy)nVrO zYfe`^1QWwf9$JBv=xw_bBFWmX1B@3E9zIPpI=e`X}|i${so517QUiVcRR>hqtUdA6QZ}zCP#zSJtsb1q>>NBOk+b_Gj+{Sy-eeNpbDETux z%M8NY7U_G%ns0vbeCO0{w(FndILv)F`DyjU`vH8qo00p6@^AjM2T*Z`!nSU@}gK_63p literal 0 HcmV?d00001 diff --git a/src/img/tilemap-table-16-16.png b/src/img/tilemap-table-16-16.png deleted file mode 100644 index dc72c465c90c887a69385fcaac1575d0a06c6564..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}_MR?|ArY-_ zFKY8KDDbdcZ2Wy+QiRbnLP+3qh_C%ku>}(~J&Sp#AD<_0@W{H>S;YPf%QZ*quT!5+ eQt_O$M8Blr0u!I9{~>pvQ4F50elF{r5}E)KX()jJ diff --git a/src/img/tilemap.pxo b/src/img/tilemap.pxo deleted file mode 100644 index e1c3ef474c34d601bf32bde5f8b289628a6da3d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 621 zcmWIWW@Zs#VBp|jxSAIe#q{R2o-ZQ^hVvgARjVuYh!DK>9$nqF5#!|V}(6BqWCs^GT3bVm|G_Hx&M=eKde$5noadO zqO^pz7V5HTn4Lc^72U+dbY3^=#DZ-;_dZ`YoK&J0FliUBF6$Zt1(E65Y{!x`om-U7 zKhRmSE+gTm_WQL~?T%8mPToOGv;D$0JGM@|bTl)2q zcNx2Df$UP2^WAG?JS6kDUC$>TyK&+9>$AUdpE9ed{WqDxe(I&n)g!CDgf<;bTX*=h zF{fVP_PNh2&Tf1zt)vK6}M|6TJ(yd(MC z@yZ&3f41{;O6SelA<8&sqr2{3&DfiFpFRA=9e@(%JLQi~(*lMyg8&1AG?2>7O-xUX z2Zg+TT2W$dYO%hdeokU#YEiu5+jE9|3<^9<4*&jV#@>}#F}a-6Q$1tSRK2zLzt5Ie zn>%-VbrsNvhT~=d-i*K~#2v99`+)Hb1@LG_*M{ykm<9%h5}TC$ IeI0BW0L+`_CIA2c diff --git a/src/main.lua b/src/main.lua index 3308c1d..2717867 100644 --- a/src/main.lua +++ b/src/main.lua @@ -6,48 +6,24 @@ import "CoreLibs/timer" local gfx = 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