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

Zer0Galaxy

Гуру
  • Публикации

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

  • Посещение

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

    189

Все публикации пользователя Zer0Galaxy

  1. Zer0Galaxy

    Ставим эмулятор OpenComputers

    Дошел до пункта: Получаю ошибку "не найдена цель: mingw-w64-lua"
  2. Добавлена возможность масштабирования при выводе png-файла (см. функцию draw): java=g.load("Java_RE.png") for i=1,10 do g.draw(java,math.random(-50,110),math.random(-50,50),math.random(40,80),math.random(40,80)) end
  3. Добавлены функции load и draw. Пример наложения изображения на пентаграмму: g.setColor(0xff0000) g.circle(80,50,44) g.polygon(80,93, 54,16, 120,64, 40,64, 106,16, 0xffff00) g.draw("pic.png",1,1) онлайн PNG-редактор
  4. Zer0Galaxy

    Мини-игры

    @LeshaInc, это не догма. Другое дело, хотелось бы какое то описание игры, а не просто ссылку (которая у меня, почему-то не открывается)
  5. Zer0Galaxy

    Мини-игры

    Игра "Угадай-ка" от newbie
  6. Добавлена функция polygon. Теперь можно рисовать вот такие пентаграммы g.setColor(0xff0000) g.circle(80,50,44) g.polygon(80,93, 54,16, 120,64, 40,64, 106,16, 0xffff00)
  7. Попробуйте отключать по одному компу и следите, как это влияет на загрузку
  8. Хм. Нет уж. Обещал ось - подавай ось.
  9. А почему кирка не алмазная?
  10. Например, так или так. Нужно лишь приложить старание.
  11. Раз так, позволь высказать еще пару мыслей:Первое. Если бы я взялся писать ось, я бы начал с ядра, а не с оболочки. Оболочка во многом будет зависеть от ядра. Ядро же от оболочки - никак. Второе. Считается плохим тоном взять за основу чужую программу (песню, картину, киноленту) и сделать из нее свою, удалив упоминание о первоисточнике. Так что, или пиши свою систему с нуля или позиционируй её как надстройку над OpenOS. Иначе мы рискуем получить еще одну OpenOS, но под другим именем. Это, конечно, моё личное мнение. Как поступать - решать тебе.
  12. local form = { caption="", elements={} } . . . function RomeAPI.newForm(caption) local object = form object.caption = caption return object end В корне не верный подход. При попытке создать второй экземпляр формы, ты перетрешь свойство caption и перечень элементов ранее существовавшей формы. Рекомендую ознакомиться со способами реализации ООП под Луа.
  13. Так, так. Давай разберемся. Ты пишешь новую операционную систему или графическую оболочку под OpenOS? Если новую систему, то зачем используешь опеновские библиотеки term, event и т.д? Без OpenOS они работать не будут. А если графическую оболочку, то называй вещи своими именами.
  14. Серега, не слушай Лёшу, пиши документацию. Мне, к примеру, пока не понятно, как векторная графика связана с GUI?
  15. Разбрызгивание это функция скорее графического редактора. Оно легко реализуется при помощи graffiti.dot() и генератора случайных чисел.
  16. Небольшая библиотечка, позволяющая рисовать простые геометрические фигуры. pastebin get 1WmfjNfU lib/graffiti.lua Особенностью библиотеки является то, что в качестве "пикселя" используется не знакоместо, а половина знакоместа. Таким образом, максимальное разрешение, которое можно получить на мониторе 3-его уровня составляет 160х100. Отсчет ведется с верхнего левого угла экрана и начинается с единицы. Функции, предоставляемые библиотекой: setColor(color) - устанавливает цвет чернил, которым в дальнейшем будет осуществляться рисование getColor(x,y) - возвращает цвет, в который окрашен "пиксель" x, y. Возвращается реальный цвет "пикселя", а не тот в который он ранее окрашивался. В виду того, что ОС-мониторы далеко не true-color, эти цвета могут отличаться. dot(x,y) - окрашивает в текущий цвет "пиксель" с координатами x, y. move(x,y) - чертит линию от последней установленной точки до точки с координатами x, y. Позволяет создавать ломанные линии. line(x0,y0,x1,y1) - чертит линию от точки x0, y0 до x1, y1. circle(x,y,r[,fill]) - чертит окружность с центром x, y и радиусом r. Если указан параметр fill, он используется в качестве цвета заливки окружности. Если fill равняется true, окружность заливается текущим цветом. fill(x,y) - заливает текущим цветом область, которой принадлежит точка x, y polygon(x1,y1,x2,y2, ... , xn,yn[,fill]) - рисует многоугольник по заданным вершинам. Если количество параметров нечетно, последний параметр используется как цвет заливки многоугольника. load(path) - загружает картинку из файла по указанному пути (поддерживаются png-файлы) и возвращает структуру, содержащую эту картинку. За основу взята библиотека работы с PNG-файлами libPNGimage, автор TehSomeLuigi draw(pic, x, y [,SizeX [,SizeY ] ] ) - рисует картинку pic на экран так, что левый верхний угол картинки размещается по координатам x, y. Параметр pic должен быть структурой, которую возвращает функция load или строкой с именем файла. В случае, когда pic - строка, картинка будет загружена из указанного файла, однако, в этом случае повторная прорисовка той же картинки вызовет ее повторную загрузку, что увеличит время прорисовки. Поддерживается альфа-канал. Если указаны параметры SizeX и SizeY, изображение растягивается/сжимается до указанных размеров. Если указан только параметр SizeX, высота картинки изменяется пропорционально изменению ширины. Пример использования библиотеки: И вот результат на мониторе второго уровня: Планы на будущее: 1. Реализовать заливку (реализовано) 2. Осуществить возможность прорисовки изображений из png-файла (реализовано)
  17. Можно и без распараллеливания repeat mess=rednet.receive(1) print(--выводим анимацию) until mess==что_то
  18. Zer0Galaxy

    Игра "Сапёр"

    Если на открытую цифру кикнуть, она исчезает.
  19. Это в паскале или С так. А в Луа любая переменная - это значение в таблице окружения, а имя переменной - ключ этого значения.
  20. Ну, думаю, объем занимаемый скалярной переменной тоже будет складываться не только из бита/байта, но и как минимум, из имени переменной. В общем, каждый конкретный случай может быть уникальным.
  21. computer=require("computer") freememory1=0 freememory2=0 n=10000 for i=1,10 do freememory1=freememory1+computer.freeMemory() os.sleep(0.5) end freememory1=freememory1 / 10 --определяем свободную память до объявления массива boolean bool={} --объявляем массив for i=1,n do -- и заполняем его значениями bool[i]=true end for i=1,10 do freememory2=freememory2+computer.freeMemory() os.sleep(0.5) end freememory2=freememory2 / 10 --определяем свободную память после объявления массива boolean print("Одна переменная типа boolean занимает ",(freememory1-freememory2)/n," байт.")
  22. Зачем? Как я понял, ты предлагаешь использовать два проектора, каждый из которых воспроизводит по три цвета. Каким образом анимация влияет на количество проекторов? А! Понял. Можно сделать так, два проектора отображают статическую часть куба, а два - вращающуюся грань. И того- четыре проектора.
  23. На голопроэкторе, наверное, можно сделать и анимацию вращения граней.
×
×
  • Создать...