e401a92cbf
git-svn-id: svn://kolibrios.org@6581 a494cfbc-eb01-0410-851d-a64ba20cac60
88 lines
1.6 KiB
Lua
88 lines
1.6 KiB
Lua
--PICTURE (part of): 2 Isometric v0.1b
|
|
--by Richard Fhager
|
|
--http://hem.fyristorg.com/dawnbringer/
|
|
-- Email: dawnbringer@hem.utfors.se
|
|
-- MSN: annassar@hotmail.com
|
|
--
|
|
-- Copyright 2010 Richard Fhager
|
|
--
|
|
-- This program is free software; you can redistribute it and/or
|
|
-- modify it under the terms of the GNU General Public License
|
|
-- as published by the Free Software Foundation; version 2
|
|
-- of the License. See <http://www.gnu.org/licenses/>
|
|
|
|
|
|
-- Color 0 is assumed to be the background
|
|
--
|
|
|
|
iso = {{0, 0, 1, 1, 1, 1, 0, 0},
|
|
{1, 1, 1, 1, 1, 1, 1, 1},
|
|
{2, 2, 1, 1, 1, 1, 3, 3},
|
|
{2, 2, 2, 2, 3, 3, 3, 3},
|
|
{2, 2, 2, 2, 3, 3, 3, 3},
|
|
{2, 2, 2, 2, 3, 3, 3, 3},
|
|
{0, 0, 2, 2, 3, 3, 0, 0}}
|
|
|
|
isowidth = 8
|
|
isoheight = 7
|
|
|
|
xoff = 0.5
|
|
yoff = 0
|
|
|
|
xstep = 4
|
|
ystep = 2
|
|
zstep = 4
|
|
|
|
-- Part of screen from top-left (4 = 1/4)
|
|
xsize = 5
|
|
ysize = 4
|
|
|
|
|
|
w, h = getpicturesize()
|
|
|
|
xo = math.floor(w * xoff)
|
|
|
|
-- just don't render more than can be fittted right now
|
|
w = math.floor(w / xsize)
|
|
h = math.floor(h / ysize)
|
|
|
|
|
|
|
|
for y = 0, h - 1, 1 do
|
|
for x = 0, w - 1, 1 do
|
|
|
|
isox = x * xstep - y * xstep
|
|
isoy = y * ystep + x * ystep
|
|
|
|
cb = getbackuppixel(x,y)
|
|
|
|
--
|
|
if cb ~= 0 then
|
|
|
|
r,g,b = getbackupcolor(cb);
|
|
c1 = matchcolor(r,g,b);
|
|
c2 = matchcolor(r+64, g+64, b+64);
|
|
c3 = matchcolor(r-64, g-64, b-64);
|
|
|
|
cols = {0,c1,c2,c3}
|
|
|
|
for iy = 1, isoheight, 1 do
|
|
for ix = 1, isowidth, 1 do
|
|
|
|
i = iso[iy][ix]
|
|
c = cols[i+1]
|
|
if i ~= 0 then putpicturepixel(xo + isox+ix-1, isoy+iy-1, c); end
|
|
|
|
end
|
|
end
|
|
|
|
end
|
|
--
|
|
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|