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

Arseniy10

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

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

  • Посещение

  • Победитель дней

    2

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


  1. каждый понимает по-своему

     

    Вы считаете, что нужно все методы наследовать, а я считаю что не обязательно наследовать именно все методы. Лучше выборочно

    Можно же просто добавить функцию extendsAll и все дела.

    • Нравится 1

  2. у меня вот по этому адресу только папка "state" а в ней папка "0" а в ней "-1.12" а в ней три файла

    6e022761-6704-4c5b-8ffb-f23b33d421d4_buffer

    8aab1195-2a5a-4be0-a58a-d76508fb5092_kernel

    8aab1195-2a5a-4be0-a58a-d76508fb5092_tmp

     

    а у вас как?

    Значит не появлялось компьютеров в мире или может не установлена OpenOS на одном из них


  3. Маты в коде везде есть, даже в тех программах и играх которые сделаны целой компанией - Например исходник Quake 3 в комментариях есть мат

    Для ECS чуть ли не традиция.


  4. 7oUfs9k.png

    Вместо этого ты мог использовать:

    gpu.fill(1,25,width,1," ") --X, Y, ширина, высота, символ
    
    gpu.set(1,25,string.rep(" ",20)) --string.rep вернет строку, где 20 пробелов. Естественно, ты можешь поставить другую строку и число
    
    --[[
      string.rep(string,number)
      Допустим, ты поставил строку "КО-" и число 5, тогда string.rep вернет:
      КО-КО-КО-КО-КО-
    ]]
    

    XSAVHJs.png

    Также обрабатывай сигнал "drag", он позволит вести мышкой c зажатой кнопкой и рисовать пиксели.


  5. Замечательная библиотека, писал нечто похожее, но там были крупные проблемы с сохранением и обратным чтением картинки. Собственно у вас та-же ошибка. Вот код после которого программа клеит ласты.

    local pic=require('gpic')
    local com = require("component")
    local gpu = com.gpu
    
    for y=1,25 do
      for x=1,80 do
        gpu.setForeground(math.random(0xffffaa))
        gpu.set(x,y,'Ж')
      end
      os.sleep(0)
    end
    
    pic.write(pic.new(1,1,80,25),"test.txt")
    pic.draw(1,1,pic.read('test.txt'))
    

    Удачной отладки вам  :lol:

    Я нашел ошибку

    Цвет, который забрал метод:

    GSf5fHn.png

    Цвет в таблице:

    9j1MbEz.png

    Сама таблица создавалась по этой картинке:

    zbyB9am.png

    Как это править, не знаю


  6. Вместо кучи копипаста с настройкой нот ты мог создать функцию:

    function setNote(numNote,key)
        if keyboard.isKeyDown(key) then
            os.sleep(0.1)
            print("Настройка ноты " .. numNote)
            -- Чтение частоты
            io.write("Частота: ")
            note[numNote] = io.read("*number")
            -- Чтение длительностей
            io.write("Длительность (в секундах): ")
            notesec[numNote] = io.read("*number")
            redrawMenu()
        end
    end
    
    • Нравится 3

  7.  

    У меня почему-то когда сохраняю в файл,  в файле просто число 80 и больше нечего.

     if keyboard.isControlDown() == true then
     os.sleep(0.1) 
    	local picture = gpic.new(1, 1, 80, 25)
    	gpic.draw(1, 1, picture) 
    	gpic.write(picture,"/home/image.gpic")
    end
    

    Скопировал твой код, возможно у тебя неправильная кодировка. Само число 80 ДОЛЖНО быть, ибо это ширина картинки.

    DV3EoJy.png


  8. Думаю тут надо больше деталей.

    Вряд ли ты найдёшь какой-нибудь ещё способ обработки событий, поэтому задачу надо решать теми средствами, что есть.

    Как вариант, можно запускать event.listen() с разными событиями, а потом создавать свой сигнал. Но из-за этого существенно снижается скорость обработки.


  9. А что ты ищешь? Какую задачу решаешь?

    Ты ведь помнишь, я просил в IRC оценить мою либу GPGUI. Так вот, мне нужно выполнять одну из функций в фоне, да притом с доступом к любому событию.


  10. И так, я уже отчаялся и решил обратиться сюда.

    Какие вы знаете способы обработки событий и выполнение функций в фоне? Перебираем всевозможные варианты.

     

    -event.timer()

    -event.listen()

     

    Есть что-нибудь еще?


  11. GPIC

    Good_Pudge's Pictures

     
    Небольшая библиотека, позволяющая сохранять изображения. Но в чем же ее особенность?
     
    Библиотека с помощью gpu.get берет символ и его цвета. Затем она перебирает таблицу, сравнивает с цветом и если значение из таблицы совпадает с цветом, то берет соответствующий ключ таблицы и с помощью string.char превращает в ASCII символ. На 1 пиксель уходит 3 байта (цвет фона, цвет символов, символ).
     
    Пример работы:

    local gpic = require("gpic")
    
    local pic = gpic.new(1, 1, 10, 5) --X, Y, Ширина, Высота
    --вернет таблицу с изображением
    gpic.draw(10, 10, pic) --рисует на координатах (10;10)
    
    gpic.write(pic,"/home/test.pic") --пишет изображение в указанный путь
    
    local image = gpic.read("/home/test.pic") --читает изображение из указанного пути и возвращает изображение, которое потом можно отрисовать с помощью gpic.draw()

    Скачать (нужен HPM):
     
    hpm install GPIC@2.2.0
     
    Скриншоты:

     

     Oa6NTD0.png

     
    0Y0Q6rd.png

     

    • Нравится 2

    1. if input == "c" then

    2.     term.clear()

            while true do

            os.sleep(0)

            local x = math.random(0, 160)

            local y = math.random(0, 80)

            local x1 = x + math.random(0,10)

            local y1 = y + math.random(1,5)

            local x2 = x + math.random(1,8)

            local y2 = y + math.random(2,5)

            gpu.set(x,y, "█")

            gpu.setForeground(0x0033cc)

            gpu.set(x1,y1, "█")

            gpu.setForeground(0x4d79ff)

            gpu.set(x2,y2, "█")

            gpu.set(x2+4,y2+5, " ")

            gpu.setForeground(0x002080)

            gpu.set(x2+2,y2+1, "█")

            gpu.setForeground(0x002699)

            end

        end

        if input == "d" then

            while true do

            os.sleep(0)

            local x = math.random(0, 160)

            local y = math.random(0, 80)

            local x1 = x + math.random(0,10)

            local y1 = y + math.random(1,5)

            local x2 = x + math.random(1,8)

            local y2 = y + math.random(2,5)

            gpu.set(x,y, "█")

            gpu.setForeground(0x33cc33)

            gpu.set(x1,y1, "█")

            gpu.setForeground(0x196619)

            gpu.set(x2,y2, "█")

            gpu.set(x2+4,y2+5, " ")

            gpu.setForeground(0xadebad)

            gpu.set(x2+2,y2+1, "█")

            gpu.setForeground(0x47d147)

         end

     

    Вместо этого всего ты мог создать функцию, в которую передавались бы цвета. Это значительно сократит код.

     

    • Нравится 1

  12. Может, не знаю, дашь вызываемый код? Ссылку на страницу? Тут же нет телепатов...

    Ну раз ты так просишь и не знаешь, есть ли ограничения, то:

    function request(url)
    	for k,v in pairs(net.request(url)) do --вызвано, как компонент
    		if k == "read" then
    			value = v()
    		end
    	end
    	return value
    end
    
    function write(path,value,mode)
    	mode = mode or "w"
    	local file = io.open(path,"w")
    	file:write(value)
    	file:flush()
    	file:close()
    end
    
    if t["name"] == args[2] then
    	write(t["path"],request(rep_URL..t["path"]),"a")
    else
    
    --сама ссылка:
    --https://raw.githubusercontent.com/Good-Pudge/OpenComputers/master/lib/bit_palette.lua
    

  13. При загрузке файла с GitHub через Internet Lib (из самого мода) загружает только последние 55 строк.

    Если обращаться к карте, как к компоненту, то загружает определенное кол-во символов.

     

    Как избавиться от этого ограничения? (если оно есть)


  14. Когда нечего делать

    dk6xz1uh9hw.jpg

     

    FgEUUfvuvhY.jpg

     

    MR6ZtOeHAdk.jpg

     

    И, напоследок, самое лучшое, что получилось:

     

     

    Построение:

    local gpu = require("component").gpu
    for ii=1,500 do
      os.sleep(0) --вы же не хотите заполнение памяти? Тем более, будет видно, как оно рисуется
      for i=1,100 do
        b = math.random(1,i)
        f = math.random(1,math.floor(i/2.5)+1)
        gpu.setBackground(0xb^2*b/f)
        gpu.set(b,f," ")
      end
    end
    

     

     

    PwiiegjYH48.jpg

     

    Извиняюсь за качество картинок

    • Нравится 4

  15. Можно упростить задачу, заюзав в качестве редактора Hologram Editor, и написав тулзу для экспорта голограмм в файлик 3D-модели для печати.

    (И ещё немного упростить, если не писать всё с нуля, а портировать тулзу Крутого с JS на Lua)

     

    Ещë как вариант, GUI-редактор для 3D-принтера, с возможностью сохранять в формате программы print3d из пакета OPPM.

    Уже от ECS же есть редакторы

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