From d22bb16dfbc3bc8f36560792200aa0e3a56722f7 Mon Sep 17 00:00:00 2001 From: Raimon Zamora Date: Wed, 18 Mar 2026 16:28:47 +0100 Subject: [PATCH] - First commit --- .gitignore | 2 ++ data/game.ini | 5 ++++ data/gfx.gif | Bin 0 -> 4861 bytes data/main.lua | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 .gitignore create mode 100644 data/game.ini create mode 100644 data/gfx.gif create mode 100644 data/main.lua diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f7362e9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +mini +mini_debug diff --git a/data/game.ini b/data/game.ini new file mode 100644 index 0000000..727ba9e --- /dev/null +++ b/data/game.ini @@ -0,0 +1,5 @@ +title=MiniPilotes +config=minipilotes +width=320 +height=240 +zoom=2 diff --git a/data/gfx.gif b/data/gfx.gif new file mode 100644 index 0000000000000000000000000000000000000000..06d17bca099c33c3d0affc66f6b91d268415855b GIT binary patch literal 4861 zcmeH}2{)7t1BM@4nX&YYorxlu8B3*XgCxWdQOKGl5#qJ)OGcI%OUN>2#?siwzVBm~ zP-M&cVzj9AhDq6~`QGnueCNA=!F^rl+~?c|hWcu%&M`m?unz!CfSI44&tx)tWUj3H zBpYhVl{}Ez!Yl4?Ji3UvrH2uje46W$~Fq}kb# z2Kv7^8_(U$K7Vb1-E8N`8bX%7vJg`HY0}f^`1zXpk^Q3!RaQyeKo3B zX_28#8Q2S*cAl&`n|%4+=y#M&gT4#nz3tq_SiJ+{zP)zH`^jp>!JnsZg7o=Xt=}(r zxZCLSZ8BFkG>`ZiUXQSI%nG82zW4i{nlpw&cXr)K`O4-0j5h|D4;BjE)HDX`UJ^B6 zw_bPIUids-?K6MEF5GXlk!mvb(xS5S6HPQPYTs*0Ki(iLj z+bjDVv+cK?#=Bi3M;$k0_|?JfHP~Hg$Cj9=hE|W z=D=0j%4Qih`#fY#oI@gBP$GT}Yam%qPbgLnT*Dn$2CfHi4?J`<p+>;;ufkE{;1O5~LF3J9CA6t(^BHLxm*TDW>v&ti|u*aXDRzx#Jy4?j4VROOR_`y z+>p_Dofc%V-7qIhfr=QX9hT*ehft2s<*dH)Ea)&$u%;|qNhwn|k}ax_^8Auh*TEF4 zjBgw`A*ZV~^}*KQ&_+bEmgbN6T0gW}`Y7(jA5!(L5x%XjO#@(&QRJNnH%R7UD@CSv)LJr5@I@r!|Fh(SFKWq=3TK?cODEK}3 z@-TR&S#iWxSuU%2d&Azc4MyLRyq@J=r%LO+u%HZ zwSvP9cDJGIBXAK%);Wn8(0 zHVabx``(s&K$ps5Q^ePqQAlL%<-wxNZ|Hl!%5X;&ad%da`kOXMU)KVZ9~=+V@}8yb zwM}YV-GdmL((Z-(s|7Q1&ve!3PEIC%FXsZ3V*5^YES=yu`yxcXmy&Iv( zFPdh*XN*$Zg2;-HNwm=nPXgzh_{AVS7EszrPya>-P*5o;^wnmklZ~8~g*4#VNON(U z74mmxk3|}j7hmnm)rgG5)uEiZf?@~6WJ?o7+#QeR0w zF75X+RAzJr)Hk}AIqQN$EV~ciZak$D#(u6@O--MBH7VUw;DNm2K+j#-vsp^$QaxV? zR_|>Z&VkzvO1T#lW0c7>CE=eh z4Pj){kk8nRw}I^?#LaX(7`>DrCv>%94@4QHPQaec{&F|iyfRvRdc6en=IV1mO{K{< z$Os9J>eJgNJQrQd{F4@SH}HMlwUvJIZo3nfFta-u$%OqH1+WSZre^ zsecXQ^y6NewTYc>K#f!ZwkV5*k*S(=Ws1q)NL!CsOG_QsDqo%yJ=~M3`wmcSRI}Od z?v{D-4@)_3OCx(zC|uyOnX$5;RE9lDH^2H#q%`c)Yx!w8PNlv^o|j&(rDZTXKQm7q zJjNhcU~z;M_blUewWo4K)_84eW38ov*A;&o9_Exs^C~~o!wR4ANh3N6xHXzjVAS#Q=NDGAm)SlsEZjP66NGNPqV0!F6yKjBr7pw| zg}7t5{l1K9_al=GtaleZLYy%eUIKXxze7J^8dAX@eJR9odG#FXQPk0#SprNDNL*ZC zk^Bqy#LhS!ru%&8s+J-?d-~q1rR{p|%icM%KcRL2W`*Poyhi%{op0LZxr1eAYr^D^m*prM5?+t#3yniE{cESl}`J9-%ARAw+J% zv6|zE#>{rOSoKx(+G9C??>-+)B0@%w6`j@6HTDu7DQ1 z$s@es!6iniJ?0NR8xf4Pl!F8>&w_IRu-y88Zr2?%{rzLHQ>Rnp4N za?Qmz@!F~UVxR+FFGG8Sh(c(r6p}$ z%kkk$2yaGV+vIxbU4?0Q&up5Krmf;A#}16b zbHCPaI=1T-Oo$t@02|<@f?Y%Fj z&ksA=uUBo+G(t$`hqLqh20MhPsb<}iI9vXQ(Z?sFz7V2Sa>Aj`evHH*2nJKn9&|D^ zlJ(&6u__jZj22P@e+Zkv-5)O}KK34o-Jid94vFnZjNlK6MX*0!DL3AGsDF|3$x4W? z4l+)y-AOkz?ve$}Y&PcUzLU*noXJ6`p5-I-h(BZ(;C=J&Z;Q8m8E=;xZ{Oy3eBzNy zsK@=6e$JsDHaTkFH$YK>&r{(?>}+R4sa$1 zacZh~tM){PP<*t=IrEl)=ORgDB(CVCY_YYHNLx@vI}W`WI=B&E*Djp90Kg3rnidRO zL=wyrah)Qn{hyNitW(ugQ)=52qi`wq^Qq4dQn8!{Q>>}Q2Oi}WN#@9SWI}5A!qc#W zR1bIa-B0+JBMIKPxC3`v;p-`j3r`Po(+)%83e?iwK82lFd~`raXQjt-LjWk`I+llOl>?t4N25rX3~VX*rAd+Fx#E{6 zFmn!|iRo_1hf)nx8XIWkj9+*U}zd+$zlZuBnKBhR0|I#4kr<(eDn`prtgP=4#_ajn}*z zmKYdo#bJ@==Cr{H^Zl&ryXYd|OmG^_Ml29+Si`)}2SNREg|8F2D7kPfk-C|i1|eeO zZSzr~hN7gNqBJ3#H+#7K-P5_KHR>9Z`5t~TP4*NT>(LWOoOl8YJS;%U)i>Aa*V(y(ZLvnZL!ECnY<^J*da z0?t552ROGV^zATs%7aWF1vcEKI&F5XDlsiYm-CENn0= z*e9wNHWscyU|%{4$_&C-f#(2Jj1?=yisf(h$V(v-lMbI#XY!5?DSS|c8B~5o2TaX5 zC4oZO49k1BNCp*)c*M}Bj`HM|C<2}2fAINGTQD*==c**Y>GZG4@S~1wDCIfZ?PAu9 z;_#;8c8}+m4vPg~p%aUI1d(FBO0WW5(1R*zLW9zk#fPFLHkGCK!wVp10n^|@y(0vP zQlc$Zq#|43Zd4lPQffR__?In3KMRNsE_6r|G88K_VIGn09FYn5Vx2Jna!K|ujC}P= zaSD|{4fjPOk8`iGJG;zMwpy4{Fq@S30vf}|8R@5-c9TT?K24cy z$XAFjlnF2V7*4$ltqF4}qIzU}^Q;Mn0H>_|R1EY*_FYERaW4Dl5%BYd?(D zzW!Y9G*kJ@rslR-U8JqN!u!)gHexV%1JkIXyOi_?Dh8eh;NuM^L6zm}zU`!vPX98- z7XSgNMfdXwk(E9#)^X7v3V(_f*gE}+SxGt}86Pny_fQ>{{{!UBY~1c_tlEPKV;dRj z)fB7S)i(Up%zQ~X-*fU8L`w;73P`g^zemsp* zC8W&4uCYn9`5nIAqQ8~Ds`{HcrTVbaR0hP5pXFU|J!^NtqpH<40>-Y|B7IZ%C92I9 z(+&Np>)uPcsC=Z({2EP&b=k|TL8oFof zXxyG@YqB9zU12U(p|cvnb4zVB39G<~HF|!(=>5~xlX9}})J)GFJa{L$cP5!{ysGa8p@a+D2a)gHS*AIa_x`<{mnhpO zpxYNW@57k&0e|@%boEJg7k*tV#>!qjmxo!`@YhbH9SrpAs0N>@&VWLEi-VkU}Us+oOS6o6Lu=~fSTOAlGt)z^?{6$bta g+%VOZp_|>{nV&<&hS^W46<(S{N$M3ZU?8CJACZR2U;qFB literal 0 HcmV?d00001 diff --git a/data/main.lua b/data/main.lua new file mode 100644 index 0000000..4a003b4 --- /dev/null +++ b/data/main.lua @@ -0,0 +1,74 @@ +pilota = { + x=10, + y=10, + dx=1, + dy=1 +} + +abad = { + x=120, + frame = 1, + animation = {0,1,0,2}, + flip = false +} + +function mini.init() + -- Si no declarem una variable com a "local", per defecte es global + grafics = surf.load("gfx.gif") + surf.source(grafics) + + -- Esta de baix es local, mor quan eixim de la funció + local p = pal.load("gfx.gif") + pal.set(p) + -- Ai! aleshores petarà la paleta? No, "pal.set" agafa els valors de la paleta i els copia + -- a la paleta de sistema + -- Pero en el de dalt, la surface, tampoc haguera petat, perque el que torna surf.load en + -- realitat es un numeret. A surf.source li havem dit que use eixe numeret, no la variable + + -- Açò diu que, si cridem a sys.beat() sense paràmetres, nomes tornarà true cada 10 frames + sys.beat(10) + + -- També està sys.delta() i altres, mes adequats si vols total independència del frame rate +end + +function mini.update() + surf.cls(16) + + -- Pintar la pilota + draw.surf(112,16,16,16,pilota.x,pilota.y) + + -- Que rebote en les vores de la pantalla + if pilota.x > 304 then pilota.dx = -1 end + if pilota.x < 0 then pilota.dx = 1 end + if pilota.y > 224 then pilota.dy = -1 end + if pilota.y < 0 then pilota.dy = 1 end + + -- Moure la pilota + pilota.x = pilota.x + pilota.dx + pilota.y = pilota.y + pilota.dy + + -- Pintem al Abad + draw.surf(abad.animation[abad.frame]*16, 0, 16,16, abad.x, 206,16,16, abad.flip) + + -- Cada 10 frames, comprobem el teclat i movem al abad si toca + if sys.beat() then + if key.down(key.RIGHT) then + abad.flip = false + abad.x = abad.x + 4 + abad.frame = abad.frame + 1 + if abad.frame == 5 then abad.frame = 1 end + elseif key.down(key.LEFT) then + abad.flip = true + abad.x = abad.x - 4 + abad.frame = abad.frame + 1 + if abad.frame == 5 then abad.frame = 1 end + end + end + + -- Si pulsem ESC eixim. + -- key.down() mira si la tecla està pulsada o no. + -- key.press() mira si s'ha pulsat la tecla (pulsar i soltar). + if key.press(key.ESCAPE) then + sys.quit() + end +end