Перейти к содержимому
  • 0
Arseniy10

Не срабатывает очищение экрана

Вопрос

И снова здравствуйте, теперь у меня не очищается экран командой "term.clear()"

bC4srZa.jpg?1

 

Из-за чего получаются непредвиденные рисовашки.

Как исправить? 

 

Часть кода:

local com = require("component")
local term = require("term")
local event = require("event")
local colors = require("colors")
local gpu = com.gpu

...

Touch,ScreenX,ScreenY,_,nick = event.pull("touch")

...

if ScreenY>4 and 5<ScreenY then
    if ScreenX>31.5 and 48.5<ScreenX then
        gpu.setBackground(colors.brown,true)
        gpu.setForeground(colors.silver,true)
        term.clear()
    end
end

 

Изменено пользователем Arseniy10

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

У тебя не экран не очищается, а не обрабатывается корректно событие "touch". Дай ссылку на полный код и опиши чего делаешь и что хочешь получить

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

for SSY=4,5,0.1 do --перебираем координаты строки (по высоте), для того, чтобы можно было нажать кнопку в её пределах for SSX=31.5,48.5,0.1 do --перебираем X, аналогично

Не совсем понял про координаты по которым идет перебор,  зачем тут десятые? "пиксели" в OpenOS это же просто символы, значит 3 пиксель в 5 строке - это 3 символ в 5 строке и не более, зачем десятые? Плюс в переборе иксовых координат 3 значения? зачем?

Я решаю работу с "кнопками" так:
 
local e = {event.pull("touch")}
      if e[4] == игрик координата кнопки then --так как там текст, то думаю кнопка обычно в 1 строке
	    if e[3]>начальная икс координата and e[3]<конечная икс координата then
		--действия после нажатия
	    end
      end

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я решаю работу с "кнопками" так:

 

...

Тут надо учитывать, что при выполнении команды event.pull("touch") программа замирает пока не кликнешь по экрану. Т.е. надо обрабатывать не только "touch", но и другие события.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не совсем понял про координаты по которым идет перебор,  зачем тут десятые? "пиксели" в OpenOS это же просто символы, значит 3 пиксель в 5 строке - это 3 символ в 5 строке и не более, зачем десятые? Плюс в переборе иксовых координат 3 значения? зачем?

 

Я решаю работу с "кнопками" так:

 

local e = {event.pull("touch")}
      if e[4] == игрик координата кнопки then --так как там текст, то думаю кнопка обычно в 1 строке
	    if e[3]>начальная икс координата and e[3]<конечная икс координата then
		--действия после нажатия
	    end
      end

Большая благодарность за кнопки! Но вопрос остался актуален.

И на счет десятичных. Когда я проверял, что выдает каждая переменная (event.pull("touch")), то координаты "касаний" были десятичными (10.5, 30.7).

Изменено пользователем Arseniy10

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У тебя не экран не очищается, а не обрабатывается корректно событие "touch". Дай ссылку на полный код и опиши чего делаешь и что хочешь получить

Да я уже понял, при нажатии на любое место такое происходит. Ибо событие произошло, а то, что было задано, не случилось. Проще говоря, рукожоп я (рифма).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...