From 021eb623998cd6ce8acb16ee50c3ff8d4840c2d5 Mon Sep 17 00:00:00 2001 From: Raimon Zamora Date: Tue, 6 Jan 2026 10:08:46 +0100 Subject: [PATCH] - [WIP] Llum de antorxa --- data/game.lua | 46 +++++++++++++++++++++++++++++++++++++- data/rooms.lua | 2 +- data/rooms_background.gif | Bin 1184 -> 1196 bytes data/rooms_foreground.gif | Bin 1740 -> 1683 bytes data/rooms_items.gif | Bin 1004 -> 1034 bytes data/sprites.lua | 6 +++++ 6 files changed, 52 insertions(+), 2 deletions(-) diff --git a/data/game.lua b/data/game.lua index 4b02945..180ee40 100644 --- a/data/game.lua +++ b/data/game.lua @@ -1,8 +1,20 @@ game = { chg_adv = {x=0, y=0}, chg_step = 0, + back_buf = 0, + circ_buf = 0, + + water_pal = {6,6,21,21,6,21,6,22,22,22,22,22,22,22,22,21,21,22,22,22,22,21,22,22,21,22,22,22,22,6,6,6}, + fade_pal = {1,1,3,1,1,3,29,29,3,3,3,3,3,6,6,29,29,3,3,3,3,29,6,29,29,6,29,6,6,1,1,1}, + + light_strobe_value = 0, + light_strobe_dir = 1, enable = function() + if game.back_buf == 0 then + game.back_buf = surf.new(160,104) + game.circ_buf = surf.new(160,104) + end app.update = game.update sys.beat(2) --shader.enable(); @@ -10,7 +22,7 @@ game = { update = function() view.origin(0,0) - surf.target(0) + surf.target(game.back_buf) view.clip() score.draw() @@ -20,6 +32,26 @@ game = { sprites.update() --sprites.update_hero() + view.origin(0,0) + surf.target(0) + --surf.source(game.back_buf) + --draw.surf(0,0,160,104,0,0,160,104) + for y=0,103 do + for x=0,159 do + surf.source(game.back_buf) + local pixel = surf.pixel(x,y) + surf.source(game.circ_buf) + local light = surf.pixel(x,y) + if light==0 then + surf.pixel(x,y,1) + elseif light==1 then + surf.pixel(x,y,game.fade_pal[pixel+1]) + else + surf.pixel(x,y,pixel) + end + end + end + if key.press(key.ESCAPE) or key.press(key.F9) then editor.enable() end @@ -55,5 +87,17 @@ game = { sprites.pause_ia = false app.pop() end + end, + + draw_light = function(x,y,size) + surf.target(game.circ_buf) + local s = size+game.light_strobe_value + draw.circf(x,y,s,1) + draw.circf(x,y,2*(s/3),2) + game.light_strobe_value = game.light_strobe_value + game.light_strobe_dir + if math.abs(game.light_strobe_value)==1 then + game.light_strobe_dir = -game.light_strobe_dir + end + --surf.target(game.circ_buf) end } \ No newline at end of file diff --git a/data/rooms.lua b/data/rooms.lua index fef978a..dc146eb 100644 --- a/data/rooms.lua +++ b/data/rooms.lua @@ -108,7 +108,7 @@ rooms = { if rooms.is_visible(LAYER_FOREGROUND) then map.draw() end -- Pintem els sprites - if rooms.is_visible(LAYER_SPRITES) then + if rooms.is_visible(LAYER_SPRITES) then sprites.draw() --draw.surf(0, 0, 16, 17, 20, 15, 16, 17) end diff --git a/data/rooms_background.gif b/data/rooms_background.gif index 59833d29f3114e1d12eec574af5fe5ccc4e0ebec..d4f53f1166dc8b1a28d33f3a23c16ba7ca377a0d 100644 GIT binary patch delta 167 zcmV;Y09gN^39JdQ3IhQEvkLp~dAMYd8C6! VCZuGOP(~@`lvGw}B}@SU06V3)NIC!j delta 155 zcmV;M0A&BH37`qE3IhREvkLJbAcmG~tV}a-E z+ZV3CeEa_XRR^F$oedbBdZHOY)}ZYUsz zzKJ#>i35Qc+FSXJhXRGa#nmE3Dtac@j2FtqpoDSl$fH|6=7=DQ1_epvkqk&CspOJO JHu+IN06Q zd>VKsf^g<}WlbpPh#7)nN=YG@5@D7jn*T965mi4wHW`1xlMiX9D1=J(s1S>4 z(iJF@Gstk}L_e15C6zJE|L{1n2Uj#+9|xOUp&hH=too}C6x z2P}TK8p}{)gi?joo~Od7=Ak!U8{nK`f^cM`O3~`*qQxRf>zX(AdhViP_8L*KGi3?x zlmcR^7hMVw2|$0k095*^n_?>Yu0&4`Y}6{4WHUVrbEmG5~C;m=VY@;zSS61cJjCc{nbNJ6lBUd@vYj?|gdc zie1Iz9!)HRScOn2#sohHGPxWz7J>|%Qr%Fr&q>;rWH5is0E4Ptn+)W0A^1xXW=tXi0EGA!<#+0DXqyXvbqC-$oa l4!+R3>sA{Dc}y?tk;F?0a|06TrU_dNgr delta 604 zcmV-i0;Bzt4a^O&d<1_fM8l0ZHdG>hC(=lh1QR#}L=Z#j7{O>TDkQ^bC_*%o2qQRD zqfITsIKz$%2{_+HAb^mhQdLegrI=wtC}VkL0)SgY5))eknzUTstRkI zqJm11qaWM$;g^Am3~U9nRcmL!UplI?L?nkflZOq3(CW7p+_(_O8Z#7V1Rs_RfW>sK zJCUO@5Zo}&714lkpfflvk%veosWe25)eM7yT2`f3y48QdJW*o;LJ`FjY`5*U+X1w# zHp3Ln{oKwJH8v9%VOX)$nA&{PJyGD#;d-`Ye9t{IM0PtDf|nG9u=qrBN5S{oaW~Eo z;m++?RR}<;?KVY;uMPJUoRbHF)uFl!W$JZX-uI^fXujQ%U`_-A1hx+zhV6}APQ~!U zPtm(_*6vh2dqr(u9{1a9I|Tc3yPv7kb diff --git a/data/rooms_items.gif b/data/rooms_items.gif index 30ece8e430bdc52d4de0d5a87794f34cf3f0151a..d2c43c18e39c02fae14504d1e951678ec1ef699d 100644 GIT binary patch delta 113 zcmV-%0FM9c2Z{)=3Ih)S001li0001>0AK(B2=9{_1DsU`8F;bd$B-jSo?KY5LCcgW zHqOksv*(_h1&01ix^%0AK(B2+@-n1DrQj7-+HM$B-jSo=my2<;$2e pYu?Pcv**vCLyI0wy0q!js8g#3-57M>)v#mBo=v;9?Wh3(06P%OBs~BC diff --git a/data/sprites.lua b/data/sprites.lua index 4b085a9..953d4b6 100644 --- a/data/sprites.lua +++ b/data/sprites.lua @@ -94,6 +94,10 @@ sprites = { update = function() if not sys.beat() then return end + + surf.target(game.circ_buf) + surf.cls() + sprites.update_sprite(sprites.hero) for i,v in ipairs(sprites.list) do sprites.update_sprite(v) @@ -203,6 +207,8 @@ sprites = { end, update_hero = function() + game.draw_light(sprites.hero.pos.x, sprites.hero.pos.y,100) + -- Update hero local anim = "hero_stand" local move_anim = "hero_walk"