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