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

skorikoff

Пользователи
  • Публикации

    8
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем skorikoff


  1. 6 часов назад, Anon сказал:

    Можно. Но я не знаю как реализована функция pull_e. Если она использует базовое апи computer, тогда в качестве аргумента computer.pullSignal передайте 0

    
    computer.pullSignal (0)

    Если же вы используете библиотеку event из OpenOS, то в event.pull аналогично первым аргументом передайте 0

    
    event.pull (0, eventType)

    Однако стоит заметить, что если каждый кадр вы рисуете целиком (очищаете экран, ставите надписи итд), то при таком подходе интерфейс будет, скорее всего, мигать. Хотя это уже другая тема, здесь поможет двойная буферизация.

    Тогда под это придётся подтягивать какой-то таймер, чтобы программа ожидала n количество секунд, а потом только передавала нолик.
    Весь интерфейс полностью не перерисовывается, конечно, это было бы долговато, учитывая, что этот кусок кода - только две кнопки и две строки текста, а таких будет штук 6. Поэтому да, таймаут пулла - панацея в данной ситуации.


  2. 3 минуты назад, skorikoff сказал:

    В бесконечном цикле есть блок обновления текста (выводится температура реактора) и ниже блок ожидания клика по кнопке. Пока на экран не кликнешь - температура не обновится, потому что прога ждёт клика. Можно ли это как-то обойти и заставить обновлять данные постоянно.

    while true do
      term1 = tostring(rc1.getHeat()/100) .. '%'
      gpu.setForeground(f_color)
      gpu.setBackground(b_color)
      gpu.set(1, 3, '                           ')
      gpu.setForeground(color1)
      gpu.setBackground(color2)
      gpu.set(1, 3, r1)
      gpu.set(1, 2, term1)
      local tEvent = {pull_e('touch')} 

      for i = 1, #tButtons do 
        if tButtons.visible then 
          if tEvent[3] >= tButtons.X and tEvent[3] <= tButtons.X+tButtons.W and tEvent[4] >= tButtons.Y and tEvent[4] <= tButtons.Y+tButtons.H then 
           blink(i) 
           tButtons.action() 
           break
          end
        end
      end
    end


  3. В бесконечном цикле есть блок обновления текста (выводится температура реактора) и ниже блок ожидания клика по кнопке. Пока на экран не кликнешь - температура не обновится, потому что прога ждёт клика. Можно ли это как-то обойти и заставить обновлять данные постоянно.


  4. Понадобилось написать чат между двумя компьютерами. Толком синтаксис сетевой карты я не понял, потому что не нашёл добротный гайд. Да и в принципе я чайник полный, что касается всех этих сетевых штучек. Может натолкнёте на мысль или предложите готовое решение?


  5. Собственно, я вообще полный нуб. Суть в чем, вводится номер платформы и после чего в условии проверяется и на определенную платформу через шину projectred подается сигнал красного камня и поезд трогается. Мой код выглядит так (в будущем print заменяется на setBundledOutput(sides.right,colors.цвет_платформы,255), но после ввода переменной ничего не выводится.
    print('введи платформу')

    a = io.read()

    if a == 1 then

     print('1')

    elseif a == 2 then

     print('2')

    end

     

    Код переписан точь в точь

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