Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local component = require("component")
- local hologram = component.hologram
- local c = 20
- --моделируем Снеговика
- local tSnowman = {10,10,11,11,11,12,12,12,12,11,11,11,10,9,8,7,6,7,8,8,9,9,9,9,9,8,8,7,6,7,6,6,6,6,6,6}
- --таблица падающих снежинок(Взаимствована у Doob, надеюсь он не против)
- local tSnow = {}
- for sn = 1, 32 do
- tSnow[sn] = {}
- end
- --палитра цветов
- hologram.setPaletteColor(1, 0xFFFFFF)--белый
- hologram.setPaletteColor(2, 0x8B0000)--бардовый
- hologram.setPaletteColor(3, 0xFFA500)--оранжевый
- --цикл рисования круга так же взаимствован у Doob
- local function circle(x0, y, z0, R, i)
- local x = R
- local z = 0
- local err = -R
- while z <= x do
- hologram.set(x + x0, y, z+z0, i)
- hologram.set(z + x0, y, x + z0, i)
- hologram.set(-x + x0, y, z + z0, i)
- hologram.set(-z + x0, y, x + z0, i)
- hologram.set(-x + x0, y, -z + z0, i)
- hologram.set(-z + x0, y, -x + z0, i)
- hologram.set(x + x0, y, -z + z0, i)
- hologram.set(z + x0, y, -x + z0, i)
- z = z+1
- if err <= 0 then
- err = err + (2 * z + 1)
- else
- x = x - 1
- err = err + (2 * (z - x) + 1)
- end
- end
- end
- --рисуем пуговицы они же глаза
- local function stud(x, y0, z0, i)
- for y = 0, 1 do
- for z = 0, 1 do
- hologram.set(x, y0-y, z0-z, i)
- end
- end
- end
- -- рисуем снеговика
- local function snowman()
- for i = 1, 30 do
- circle(c,i,c, tSnowman[i], 1)--отрисовываем основу снеговика
- end
- for i = 30, #tSnowman do
- circle(c,i,c, tSnowman[i], 2)--рисуем шапку
- end
- --рисуем глаза
- stud(29, 23, 23, 3)
- stud(29, 23, 17, 3)
- --рисуем морковку
- for x = 1, 6 do
- for y = 1, 2 do
- for z = 1, 2 do
- hologram.set(27+x, 18+z, 18+y, 3)
- end
- end
- end
- -- правая рука
- for x = 1, 7 do
- y = 1
- for y = 1, 3 do
- y = y
- end
- hologram.set(20+y, 10+x, 10-x, 3)
- end
- -- левая рука
- for x = 1, 7 do
- y = 1
- for y = 1, 3 do
- y = y
- end
- hologram.set(20-y, 10+x, 31+x, 3)
- end
- --рисуем пуговицы
- stud(30, 14, 20, 2)
- stud(32, 10, 20, 2)
- stud(32, 6, 20, 2)
- end
- local function gen_snow() -- генерируем таблицу для источника снежинок(из кода Doob)
- local tbl = {}
- local x, y
- for g = 1, 10 do
- x, y = math.random(1, 46), math.random(1, 46)
- if tbl[x] == nil then
- tbl[x] = {}
- end
- tbl[x][y] = 1
- end
- return tbl
- end
- local function falling_snow() -- слвигаем таблицы со снежинками вниз(Doob)
- tmp = {}
- for s = 1, 32 do
- tmp[s] = {}
- tmp[s] = tSnow[s+1]
- end
- tSnow = tmp
- tSnow[32] = gen_snow()
- end
- local function animation(de) -- задаем указанное значение для снежинок(Doob)
- for x = 1, 46 do
- for z = 1, 46 do
- for y = 1, 32 do
- if tSnow[y][z] ~= nil then
- if tSnow[y][z][x] == 1 then
- hologram.set(x, y, z, de)
- end
- end
- end
- end
- end
- end
- hologram.clear()
- while 1 do
- snowman()
- falling_snow()
- animation(1)
- os.sleep(2)
- animation(0)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement