Afegida la demo del efecte matrix i el tweetcart equivalent
This commit is contained in:
53
demos/matrix.lua
Normal file
53
demos/matrix.lua
Normal file
@@ -0,0 +1,53 @@
|
||||
--[[
|
||||
===============================
|
||||
MATRIX CODE DEMO
|
||||
by JailDoctor
|
||||
===============================
|
||||
--]]
|
||||
|
||||
function init()
|
||||
setmode(1) -- fiquem el mode multicolor de 40x30 caracters
|
||||
color(0,0) -- tinta i fondo a negre
|
||||
cls() -- borrem pantalla
|
||||
|
||||
-- La tabla 'col' conté, per a cada columna de la pantalla: la coordenada 'y' actual, la llargaria 's' i la espera 'w'
|
||||
col = {}
|
||||
for i=0,39 do
|
||||
col[i] = {
|
||||
y=rnd(30), -- la coordenada y valdrà entre 0 i 29, ningún misteri...
|
||||
s=rnd(5)+2, -- la 's' valdrà entre 2 i 6. S'usarà tant per a definir la llargaria de la estela com per a especificar la velocitat
|
||||
w=1 -- 'w' es un contador de espera: Fiquem 'w' a un valor, i a cada cicle se resta 1. Quan arribe a 0 updatem la columna i se reseteja 'w' al valor anterior.
|
||||
}
|
||||
end
|
||||
|
||||
-- Omplim la tabla 'ma' amb els caracters que volem usar
|
||||
ma = {}
|
||||
for i=176,191 do ma[1+#ma] = i end
|
||||
for i=97,122 do ma[1+#ma] = i end
|
||||
|
||||
-- Omplim la pantalla de caracters aleatoris (dins de la selecció que havem deixa a la tabla 'ma').
|
||||
-- No es veuen perque havem ficat el color de tinta i fondo a negre.
|
||||
for i=0,1199 do poke(i,ma[rnd(#ma)+1]) end
|
||||
end
|
||||
|
||||
function update()
|
||||
for i=0,39 do
|
||||
col[i].w=col[i].w-1
|
||||
if col[i].w == 0 then
|
||||
col[i].w = col[i].s
|
||||
col[i].y=col[i].y+1
|
||||
if (col[i].y >= 30) then col[i].y = 0 end
|
||||
local pos = 1200+i+col[i].y*40
|
||||
poke(pos,15) pos=dec(pos)
|
||||
poke(pos,14) pos=dec(pos)
|
||||
for i=0,col[i].s do poke(pos,10) pos=dec(pos) end
|
||||
for i=0,col[i].s do poke(pos,2) pos=dec(pos) end
|
||||
for i=0,max(1,col[i].s-3) do poke(pos,8) pos=dec(pos) end
|
||||
poke(pos,0)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Aquesta funció resta 40 a la adreça (per a pujar una linea). Si detecta que se'n va fora per dalt (menys de 1200), suma 1200 per a que aparega per baix
|
||||
|
||||
function dec(value) return value-40 < 1200 and value+1160 or value-40 end
|
||||
11
tweetcarts/matrix.lua
Normal file
11
tweetcarts/matrix.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
q=1200
|
||||
h={}for i=0,q do poke(i,rnd(99))end
|
||||
function t(a)poke(q+p,a)p=(p-40)%q end
|
||||
function update()srand(1)for i=0,39 do
|
||||
h[i]=(h[i] or rnd(30))+(1/(rnd(5)+2))p=i+(flr(h[i])%30)*40
|
||||
t(15)t(14)
|
||||
for j=0,5 do t(10)end
|
||||
for j=0,5 do t(2)end
|
||||
t(8)t(0)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user