Después de la publicación anterior en la que os mostraba el algoritmo del punto medio para dibujar un círculo, hoy he preparado el de dibujar una línea, el cual es bastante más sencillo de realizar aunque yo le haya hecho de una forma tosca, poco elegante y sin ninguna optimización.
En realidad he pasado el siguiente algoritmo directamente a ensamblador:
function line(x0, y0, x1, y1)
dx := abs(x1-x0)
dy := abs(y1-y0)
if x0 < x1 then sx := 1 else sx := -1
if y0 < y1 then sy := 1 else sy := -1
err := dx-dy
loop
setPixel(x0,y0)
if x0 = x1 and y0 = y1 exit loop
e2 := 2*err
if e2 > -dy then
err := err - dy
x0 := x0 + sx
end if
if e2 < dx then
err := err + dx
y0 := y0 + sy
end if
end loop
El algoritmo y las explicaciones del mismo las podéis encontrar en la entrada del algoritmo de Bresenham en la Wikipedia.
Y el código fuente en ensamblador lo tenéis aquí.
Este año en RetroMadrid se presentó el pack #1 de juegos ESP Soft el cual fue un éxito, se vendieron las 15 que sacamos. Bueno, mejor dicho, que se encargó el amigo David (6128) de sacar ya que él promovió toda la historia, desde convencernos para sacar el pack hasta [...]
Tenía curiosidad por ver cómo estaba hecho el juego Sol Negro de Opera Soft, principalmente en cómo gestiona la pantalla así que me puse a mirar un poco las tripas del mismo con el WinApe que para esto da muchas facilidades. ¿Por qué de mi curiosidad? Pues porque me llamó [...]
Tras un arreón estos últimos días, ya tengo portada la librería para SDCC. Ahora llega la fase de ponerla bonita y testearla profundamente. Afortunadamente no me estoy encontrando muchos errores y, en el proceso de portado, alguna mínima modificación/optimización sí que se ha ganado con lo que alguna mejora habrá. [...]