Una charla por Ciro Durán (@chiguire)
ciro.duran@gmail.com
FLISOL Madrid 2018
¡Esta charla tiene notas! Presiona 's' para leerlas.
Componente | Información |
---|---|
CPU | LuaJIT (Lua 5.1) |
GPU | Pantalla 192x128 4-Bit |
Mapa | 144x128 celdas (255 tiles) |
HDD | 2x discos 25MB |
Entrada | Teclado, ratón, touch y control |
(Primer intento)
-- Hola Mundo 1
clear(0)
print("HOLA FLISOL!",50,50)
line(12, 12, 50, 60)
Código disponible en https://pastebin.com/5pmdw4cL
Córrelo en LIKO-12 con pastebin get 5pmdw4cL hola1.lk12
(Segundo intento)
-- Hola Mundo 2
function _init()
clear(0)
end
function _draw()
print("HOLA FLISOL!",50,50)
line(12, 12, 50, 60)
end
function _update()
end
Código disponible en https://pastebin.com/C801GkkQ
Córrelo en LIKO-12 con pastebin get C801GkkQ hola2.lk12
(Tercer intento)
-- Hola Mundo
n = 1
COLORS = {2,4,3,5,6,8,7,9}
max = 30
angulo = 60
speed = 15
timer = speed
x = 0 -- a llenar en _init()
y = 0 -- a llenar en _init()
radio = 0 -- a llenar en _init()
function puntoCirc(x,y,r,angulo_rad)
return
x+math.sin(angulo_rad)*r,
y+math.cos(angulo_rad)*r
end
function screenDims()
return {
x = screenWidth()/2,
y = screenHeight()/2,
radio = (screenHeight() <
screenWidth()) and
(screenHeight()/2*0.9) or
(screenWidth()/2*0.9)
}
end
function _init()
clear(0)
dims = screenDims()
x = dims.x
y = dims.y
radio = dims.radio
end
function _draw()
clear(0)
for i=1,n do
coloralt=(i%#COLORS)+1
a = math.rad(i*360/max + angulo)
b = math.rad(i*360/max - angulo)
p1_x, p1_y = puntoCirc(x,y,radio,a)
p2_x, p2_y = puntoCirc(x,y,radio,b)
line(p1_x,p1_y,p2_x,p2_y,coloralt)
end
print(
"HOLA FLISOL!",
screenWidth()/2 - 28,
screenHeight()/2
)
end
function _update()
if timer > 0 then
timer = timer - 1
if timer == 0 then
n = n + 1
timer = speed
end
end
end
Código disponible en https://pastebin.com/x7wuaWTH
Córrelo en LIKO-12 con pastebin get x7wuaWTH hola3.lk12
(Vou baixar a Lua)
clear(colorn) |
Limpia la pantalla |
print(texto, x, y, [color]) |
Imprime texto en posición |
line(x1,y1,x2,y2,[color]) |
Trazar una línea |
Sprite(tileID,x,y,[rotacion]) |
Dibuja un sprite en posición |
map(x,y,tx1,ty1,tx2,ty2) |
Dibuja un mapa |
mset(x,y,tile)/mget(x,y) |
Manipular el mapa |
clip(x1,y1,x2,y2) |
Dibuja solo sobre esta área |
cam(...) |
Operaciones de cámara |
local Fruta = class("Fruta") -- clase llamada "Fruta"
Fruta.static.mivalor = 2 -- valores y métodos estáticos
function Fruta:initialize(color) -- ...
local Mango = class("Mango", Fruta) -- subclase
Audio.generate(1,250,1) -- para tocar una nota
Audio.generate() -- para parar
En la consola:
install_demos
install_games
Erni's Iceberg (WIP), por Thirite
Este juego y código están disponibles en http://github.com/chiguire/sapper
Estas láminas (y sus notas) están disponibles en http://ciroduran.com/talks/2018/liko12/es
Estoy en Twitter: @chiguire
Correo electrónico: ciro.duran@gmail.com