Doob 2 749 Опубликовано: 17 июля, 2015 Немного кривое и медлительное поделие в стиле дождя на мониторах в The Matrix.Ускорить никак не получается из-за отжирания времени циклами и ограничением производительности мониторов, можно воспользоваться библиотекой thread, но она иногда приводит к FATAL EГГОГ, который можно исправить только уничтожив жесткий диск. pastebin get Lsb5YMjg rain 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 17 июля, 2015 FATAL EГГОГ Фатальный Еггог? Кто такой еггог? Хм... [й' э г г о г] Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 17 июля, 2015 Думаю станет лучше, если за каждым символом будет тянуться шлейф из менее ярких, постепенно гаснущих символов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
swg2you 403 Опубликовано: 17 июля, 2015 Фатальный Еггог? Кто такой еггог? Хм... [й' э г г о г] Понимание ЕГГОГ недоступно неофитам программирования ) 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
unknown 23 Опубликовано: 17 июля, 2015 Посмотрите Еггогология на Википедии - я не шучу! 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob Автор темы 2 749 Опубликовано: 17 июля, 2015 Думаю станет лучше, если за каждым символом будет тянуться шлейф из менее ярких, постепенно гаснущих символов. Да, я так и делал, но это замедляет процесс отрисовки в десятки раз, поэтому сделал чтобы только новые символы были 00FF00, остальные 008800, только из-за странных пустых символов теперь иногда замирают символы с лаймовым цветом. Хорошо было на CC, там нету вымышленных ограничений - можно каждые пол-секунды перерисовывать весь экран. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
swg2you 403 Опубликовано: 17 июля, 2015 Да, я так и делал, но это замедляет процесс отрисовки в десятки раз, поэтому сделал чтобы только новые символы были 00FF00, остальные 008800, только из-за странных пустых символов теперь иногда замирают символы с лаймовым цветом. Хорошо было на CC, там нету вымышленных ограничений - можно каждые пол-секунды перерисовывать весь экран. Палитру юзай. Она позволяет менять цвет без перерисовки. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 17 июля, 2015 Ух какой красивый муравьишка! 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob Автор темы 2 749 Опубликовано: 17 июля, 2015 Палитру юзай. Она позволяет менять цвет без перерисовки. Эм... А как оно ускорит работу? Все-равно беда в циклах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 17 июля, 2015 Палитру юзай. Она позволяет менять цвет без перерисовки. Что это за палитра и как ей пользоваться? На вики вскользь про какие то индексы сказано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
swg2you 403 Опубликовано: 17 июля, 2015 (изменено) все что выводится таким методом: gpu.setForeground(i, true), где i = 0..15 - индекс цвета в палитре можно поменять сделав: gpu.SetPaletteColor(i, 0x654321) - изменив цвет индекса палитра, по сути, таблица цветов, а индекс - номер цвета. зы1 не забывайте сохранять палитру и восстанавливать после. зы2 типичное применение плавное появление/затухание изображения (фейдинг) local c1=gpu.getPaletteColor(1) --сохраняем значение первого цвета gpu.setPaletteColor(1, 0x000000) --гасим первый цвет gpu.setForeground(1, true) -- задаем его для вывода print('Hello World') -- выводим текст for c=0,0xFF do gpu.setPaletteColor(1, c + c*0x100 + c*0x10000) --проявляем цвет sleep(0.01) end sleep(5) --ждем чтоб прочитали for c=0xFF,0,-1 do gpu.setPaletteColor(1, c + c*0x100 + c*0x10000) --гасим цвет sleep(0.01) end gpu.setPaletteColor(1, с) -- восстанавливаем исходный цвет Изменено 17 июля, 2015 пользователем swg2you 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Doob Автор темы 2 749 Опубликовано: 17 июля, 2015 (изменено) Хм.. Надо попробовать генерировать рандомный текст на весь экран, а потом палитрой рисовать линии, но вряд-ли это что-то изменит, кроме смазливости изображения. P.S. Можно ускорить убрав в генераторе линий os.sleep() изменив число в генераторе новых позиций с 6 на 30, но тогда дождь будет идти волнами. Изменено 17 июля, 2015 пользователем Doob Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 17 июля, 2015 Я когда-то такую фиговину сделал на сервер наш старый на спавн на КК. Грузит оно сильно, эти принтилки в бесконечных циклах. И там не перепринчивался экран весь. Там только рандомился 'y' первой строки и падал символ, меняясь на ходу, а затухание осуществлялось рандомными чистильщиками(то ли пустым символом, то ли чем, уже не помню) Такие проги надо прятать, так как почти каждый бибигон запустит их у себя в домике для красоты, а выхлопа полезного с них нет. Но так то да, Матрица повсюду, спору нет, смотрится оно культово. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
davial 1 972 Опубликовано: 18 июля, 2015 (изменено) Фатальный Еггог? Кто такой еггог? Хм... [й' э г г о г] Не было у тебя МК-52 Изменено 5 февраля, 2016 пользователем davial Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 18 июля, 2015 (изменено) Небыло у тебя МК-52 К большому сожалению... Изменено 18 июля, 2015 пользователем LeshaInc Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
davial 1 972 Опубликовано: 18 июля, 2015 (изменено) Понимание ЕГГОГ недоступно неофитам программирования ) ММ-52(61) - рулит Посмотрите Еггогология на Википедии - я не шучу! У нас тоже тут ЕГГОГология творится, только с Луа. Изменено 18 июля, 2015 пользователем davial 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
LeshaInc 625 Опубликовано: 18 июля, 2015 (изменено) У нас тоже тут ЕГГОГолигия творится, только с Луа.Скорее спам. Изменено 18 июля, 2015 пользователем LeshaInc Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
swg2you 403 Опубликовано: 18 июля, 2015 ММ-52(61) - рулит У нас тоже тут ЕГГОГология творится, только с Луа. Угу. Я на 61-м много кодил ) Как еггоголог могу сказать, что описание мониторов и гпу, в официальной вики, не соответствует действительности. Монитор тир2 умеет 16 переопределяемых цветов Монитор тир3 умеет 16 переопределяемых и 240 фиксированных (всего 256). 16 переопределяемых цветов в тир3 занимают место градации серого, из стандартной палитры 6*8*5+16, поэтому их изменение портит оттенки серого. Цвет в виде 0xRRGGBB - фикция, при записи, цвет будет приведен к ближайшему из палитры монитора (16 для тир2 и 256 для тир3) Поэтому, в любом случае, для хранения цвета знакоместа (фон/символ) в тир2 достаточно 1 байт, тир3 -2 байта. Еще одна особенность. Запись "широкого" юникод-символа в знакоместо, затирает следующее знакоместо пробелом. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах