75 lines
2.1 KiB
Lua
75 lines
2.1 KiB
Lua
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
|