From f533f90cb2e00624bb111dfa27c60057f96fcdbe Mon Sep 17 00:00:00 2001 From: Igor Timofeev Date: Wed, 28 Oct 2015 09:05:33 +0300 Subject: [PATCH] =?UTF-8?q?=D0=AB=D1=8B=D1=8B=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ => BufferDemo}/DoubleBufferingDemo.lua | 67 ++++++++++++------ Applications/BufferDemo/Fon.pic | Bin 0 -> 64024 bytes 2 files changed, 47 insertions(+), 20 deletions(-) rename Applications/{ => BufferDemo}/DoubleBufferingDemo.lua (62%) create mode 100644 Applications/BufferDemo/Fon.pic diff --git a/Applications/DoubleBufferingDemo.lua b/Applications/BufferDemo/DoubleBufferingDemo.lua similarity index 62% rename from Applications/DoubleBufferingDemo.lua rename to Applications/BufferDemo/DoubleBufferingDemo.lua index c77fbee5..36ae3afb 100644 --- a/Applications/DoubleBufferingDemo.lua +++ b/Applications/BufferDemo/DoubleBufferingDemo.lua @@ -4,16 +4,23 @@ local event = require("event") local image = require("image") local currentBackground = 0x990000 +local risovatKartinku = true +local showPanel = true local transparency = 25 local xWindow, yWindow = 5, 5 +local fon = image.load("Fon.pic") + buffer.start() ---Заполним весь наш экран цветом фона 0x262626, цветом текста 0xFFFFFF и символом " " -buffer.square(1, 1, buffer.screen.width, buffer.screen.height, currentBackground, 0xFFFFFF, " ") - ---Нарисуем изображение из буфера. По сути, сейчас отобразился серый экран. -buffer.draw() +local function drawBackground() + --Заполним весь наш экран цветом фона 0x262626, цветом текста 0xFFFFFF и символом " " + if not risovatKartinku then + buffer.square(1, 1, buffer.screen.width, buffer.screen.height, currentBackground, 0xFFFFFF, " ") + else + buffer.image(1, 1, fon) + end +end --Создаем переменные с координатами начала и размерами нашего окна local width, height = 82, 25 @@ -68,25 +75,35 @@ local function drawWindow(x, y) -- buffer.image(x + 23, y + 6, cykaPicture) -- buffer.image(x + 33, y + 12, cykaPicture2) - xPos, yPos = x, y + height + 2 - buffer.square(xPos, yPos, width, 8, 0xFFFFFF, 0xFFFFFF, " ", transparency) - yPos = yPos + 1 - xPos = xPos + 2 - buffer.text(xPos + 2, yPos, 0x262626, "Кликай на экран левой кнопкой, чтобы изменить позицию окошка"); yPos = yPos + 1 - buffer.text(xPos + 2, yPos, 0x262626, "Или правой кнопкой, чтобы нарисовать еще одно такое же окошко"); yPos = yPos + 1 - buffer.text(xPos + 2, yPos, 0x262626, "А еще крути колесико, чтобы изменять прозрачность"); yPos = yPos + 2 - buffer.text(xPos + 2, yPos, 0x262626, "Можешь жать пробел, чтобы сменить фон на рандомный"); yPos = yPos + 1 - buffer.text(xPos + 2, yPos, 0x262626, "Или жми энтер, чтобы выйти отсудова на хер"); yPos = yPos + 1 + if showPanel then + xPos, yPos = x, y + height + 2 + buffer.square(xPos, yPos, width, 10, 0xFFFFFF, 0xFFFFFF, " ", transparency) + + --Тень + buffer.square(xPos + width, yPos + 1, 2, 10, 0x000000, 0xFFFFFF, " ", shadowTransparency) + buffer.square(xPos + 2, yPos + 10, width - 2, 1, 0x000000, 0xFFFFFF, " ", shadowTransparency) + + yPos = yPos + 1 + xPos = xPos + 2 + buffer.text(xPos + 2, yPos, 0x262626, "Клик левой кнопкой мыши: изменить позицию окошка"); yPos = yPos + 1 + buffer.text(xPos + 2, yPos, 0x262626, "Клик правой кнопкой: нарисовать еще одно такое же окошко"); yPos = yPos + 1 + buffer.text(xPos + 2, yPos, 0x262626, "Колесо мыши: изменить прозрачность окна"); yPos = yPos + 2 + buffer.text(xPos + 2, yPos, 0x262626, "Space: переключить фон между картинкой и статичным цветом"); yPos = yPos + 1 + buffer.text(xPos + 2, yPos, 0x262626, "Shift: изменить цвет фона на рандомный"); yPos = yPos + 1 + buffer.text(xPos + 2, yPos, 0x262626, "Tab: включить или отключить данную информационную панель"); yPos = yPos + 1 + buffer.text(xPos + 2, yPos, 0x262626, "Enter: выйти отсудова на хер"); yPos = yPos + 1 + end end +drawBackground() drawWindow(xWindow, yWindow) buffer.draw() while true do local e = {event.pull()} - if e[1] == "touch" or e[1] == "drag" then + if e[1] == "touch" then if e[5] == 0 then - buffer.square(1, 1, buffer.screen.width, buffer.screen.height, currentBackground, 0xFFFFFF, " ") + drawBackground() xWindow, yWindow = e[3], e[4] drawWindow(xWindow, yWindow) buffer.draw() @@ -96,28 +113,38 @@ while true do buffer.draw() end elseif e[1] == "key_down" then - if e[4] == 57 then + if e[4] == 42 then currentBackground = math.random(0x000000, 0xFFFFFF) - buffer.square(1, 1, buffer.screen.width, buffer.screen.height, currentBackground, 0xFFFFFF, " ") + drawBackground() drawWindow(xWindow, yWindow) buffer.draw() elseif e[4] == 28 then buffer.square(1, 1, buffer.screen.width, buffer.screen.height, 0x262626, 0xFFFFFF, " ") buffer.draw() return + elseif e[4] == 57 then + risovatKartinku = not risovatKartinku + drawBackground() + drawWindow(xWindow, yWindow) + buffer.draw() + elseif e[4] == 15 then + showPanel = not showPanel + drawBackground() + drawWindow(xWindow, yWindow) + buffer.draw() end elseif e[1] == "scroll" then if e[5] == 1 then if transparency > 5 then transparency = transparency - 5 - buffer.square(1, 1, buffer.screen.width, buffer.screen.height, currentBackground, 0xFFFFFF, " ") + drawBackground() drawWindow(xWindow, yWindow) buffer.draw() end else if transparency < 100 then transparency = transparency + 5 - buffer.square(1, 1, buffer.screen.width, buffer.screen.height, currentBackground, 0xFFFFFF, " ") + drawBackground() drawWindow(xWindow, yWindow) buffer.draw() end diff --git a/Applications/BufferDemo/Fon.pic b/Applications/BufferDemo/Fon.pic new file mode 100644 index 0000000000000000000000000000000000000000..c70ec3cd661376baa59c4396462ca4f7ef8a98b1 GIT binary patch literal 64024 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 Bm017) literal 0 HcmV?d00001