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


Фотография

Простой Screensaver (заставка)

OpenComputers Декорация Заставка ScreenSaver

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 Оффлайн   Laine_prikol

Laine_prikol
  • Пользователи
  • Сообщений: 133
  • Уровень сигнала: 0,48%
  • В игре: 4 час. 6 мин.

Награды

           

Отправлено 29 Январь 2017 - 14:23

Написал простую программу, screensaver (заставка). Она рандомно генерирует изображение из разноцветных пикселей.

P.S Генерируется изображение не сразу
Установка оригинальной версии: 
 
pastebin get jwBzi0DC screensaver

Код: http://pastebin.com/raw/jwBzi0DC

 

Установка модифицированной версии от kotik_prikol: 

 
pastebin get CQrrMmA2 screensaver

Код: http://pastebin.com/CQrrMmA2

 

Улучшения:

+ Добавлен порог генерации, при полном заполнении экрана пиксели больше не генерируется

+ Изменён полный рандом

 

Запуск:

 

screensaver

Прикрепленные изображения

  • 2017-01-29_14.10.33.png
  • 2017-01-29_14.10.15.png
  • 2017-01-29_14.11.49.png

Сообщение отредактировал Laine_prikol: 05 Февраль 2017 - 20:45

  • Totoro это нравится

#2 Оффлайн   Arseniy10

Arseniy10
  • Пользователи
  • Сообщений: 97
  • Уровень сигнала: 0,12%
  • В игре: 1 час. 3 мин.
  • ГородКаруселин

Награды

     

Отправлено 29 Январь 2017 - 14:50

  1. if input == "c" then
  2.     term.clear()
  3.         while true do
  4.         os.sleep(0)
  5.         local x = math.random(0, 160)
  6.         local y = math.random(0, 80)
  7.         local x1 = x + math.random(0,10)
  8.         local y1 = y + math.random(1,5)
  9.         local x2 = x + math.random(1,8)
  10.         local y2 = y + math.random(2,5)
  11.         gpu.set(x,y, "█")
  12.         gpu.setForeground(0x0033cc)
  13.         gpu.set(x1,y1, "█")
  14.         gpu.setForeground(0x4d79ff)
  15.         gpu.set(x2,y2, "█")
  16.         gpu.set(x2+4,y2+5, " ")
  17.         gpu.setForeground(0x002080)
  18.         gpu.set(x2+2,y2+1, "█")
  19.         gpu.setForeground(0x002699)
  20.         end
  21.     end
  22.     if input == "d" then
  23.         while true do
  24.         os.sleep(0)
  25.         local x = math.random(0, 160)
  26.         local y = math.random(0, 80)
  27.         local x1 = x + math.random(0,10)
  28.         local y1 = y + math.random(1,5)
  29.         local x2 = x + math.random(1,8)
  30.         local y2 = y + math.random(2,5)
  31.         gpu.set(x,y, "█")
  32.         gpu.setForeground(0x33cc33)
  33.         gpu.set(x1,y1, "█")
  34.         gpu.setForeground(0x196619)
  35.         gpu.set(x2,y2, "█")
  36.         gpu.set(x2+4,y2+5, " ")
  37.         gpu.setForeground(0xadebad)
  38.         gpu.set(x2+2,y2+1, "█")
  39.         gpu.setForeground(0x47d147)
  40.      end
 
Вместо этого всего ты мог создать функцию, в которую передавались бы цвета. Это значительно сократит код.

  • i_ivanov10 это нравится

#3 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 750
  • Уровень сигнала: 0,26%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 29 Январь 2017 - 15:33

 

Вижу, уже отступы появились.  :) В Lua обычно используются отступы пробелами, размером в 2 пробела.

 

...

 
Вместо этого всего, можно было залить всё на pastebin, hastebin.

Либо на худой конец выделить важный для контекста кусочек кода не больше 20 строк, и засунуть его в тег [code=auto:0]


Сообщение отредактировал Totoro: 29 Январь 2017 - 15:37

  • Kartze и Laine_prikol это нравится

#4 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 785
  • Уровень сигнала: 46,38%
  • В игре: 398 час. 9 мин.

Награды

                 

Отправлено 02 Февраль 2017 - 02:21

ой бедааааа.... :unsure:  :smile14:

 

Честно говоря, не понимал и не пойму никогда назначения этих "скринсейверов". Красоты в них особой нет, это даже не "матрица" падающая и не 3D завораживающий танец линий аля Windows 3.11 в начале 90-х, когда все на них часами смотрели и в настройках выбирали :) .

 

Зачем эти кубики "молотить" по экрану?

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(0x0000FF)
		gpu.set(x1,y1, "▓")
		gpu.setForeground(0x008000)
		gpu.set(x2,y2, "░")
		gpu.set(x2+4,y2+5, " ")
		gpu.setForeground(0x008000)
		gpu.set(x2+2,y2+1, "█")
		gpu.setForeground(0xF00000)
end

А не лучше было бы сделать прожку, которая 5-6 картинок выводит на экран в цикле с паузой 15-30 мин? И красиво, и ресурсы сервера сбережет многократно. Ну никакой мысли не просыпается даже ни у кого, что все эти какашки подобного рода (откровенно говоря, это чистой воды лагопрога) жрут ресурсы не вашего домашнего компа, а ограниченные ресурсы общественного сервера, на котором хотят играть люди без лагов.

 

То новогоднюю елку кто-то сделает из сотен тысяч РэдЛогик лампочек и таймеров, то еще какую-то лаго багулину, то забор вокруг дома из билдкрафт ред-труб. Ну братцы, ну поберегите вы ресурсы сервера и используйте их как-то разумно с пользой.

 

П.С. Увижу у кого-то такой "скринсейвер" на сервере, сразу на компе вместе с экраном (а при рецидиве - вместе с домиком) //set 0 буду применять. В сингле - вопросов нет.


  • electronic_steve и eu_tomat это нравится

#5 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 750
  • Уровень сигнала: 0,26%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 02 Февраль 2017 - 14:33

А не лучше было бы сделать прожку, которая 5-6 картинок выводит на экран в цикле с паузой 15-30 мин? И красиво, и ресурсы сервера сбережет многократно.
 

 

Вот кстати, не факт. =) Если сделать PNG-слайдшоу, будет весма и весьма затратнее такой простой пиксельной каши, мне кажется.



#6 Онлайн   eu_tomat

eu_tomat
  • Хранители Кода
  • Сообщений: 935
  • Уровень сигнала: 5,93%
  • В игре: 50 час. 55 мин.

Награды

                          

Отправлено 02 Февраль 2017 - 14:48

Честно говоря, не понимал и не пойму никогда назначения этих "скринсейверов".

В далекие времена, когда компьютерные экраны являлись слегка модифицированными телевизорами, а программы типа NortonCommander, содержащие в своем интерфейсе множество статичных и ярких элементов, распространялись со скоростью вирусов, скринсейверы реально спасали экраны от преждевременного выгорания люминофора. Просто отключать экраны было плохой идеей, т. к. в те времена не только черный экран, но даже просто неподвижная картинка зачастую означали сбой в работе компьютера.

Но время шло: экраны перестали страдать от статичных и контрастных картинок, компьютеры научились управлять питанием периферии, да и сам погасший экран перестал пугать пользователей, и теперь скринсейверы из необходимости перешли в разряд либо искусства, либо суеверий.

Искусство доступно далеко не всем, чего не скажешь о суеверии: даже если компьютер не выполняет никакой работы, «скринсейвер» создает иллюзию того, что компьютер включен не зря.
 

П.С. Увижу у кого-то такой "скринсейвер" на сервере, сразу на компе вместе с экраном (а при рецидиве - вместе с домиком) //set 0 буду применять.

А когда Золушка запустила скринсейвер в своей карете, Фея ей тыкву засетила.

#7 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 785
  • Уровень сигнала: 46,38%
  • В игре: 398 час. 9 мин.

Награды

                 

Отправлено 02 Февраль 2017 - 16:51

 

 

Вот кстати, не факт. =) Если сделать PNG-слайдшоу, будет весма и весьма затратнее такой простой пиксельной каши, мне кажется.

 

почему не факт?))  На диске в папочке хранятся какие-то  картинки. Прога получает список файлов (имен) и потом в цикле поочередно рисует первую каритнку, потом спит полчаса, потом вторую и так до бесконечности, потом опять начинает первую рисовать. Никто же не говорит о бешеном слайд шоу=)

А прога выше по "логике"  работы ничем не отличается от 

вайлеТруДу принт('Lol') end 

:) 

даже выхода из проги не предусмотрено.

 

А анекдоты из сети получать с какого-то любого сервиса и принтить на экранчик раз в 10 минут? Так это же разумнее в миллион раз, и полезнее, чем "молотить" кубиками по экрану бесконечно, создавая какую-то кашу, грязь и лаги.



#8 Оффлайн   Totoro

Totoro
  • Хранители Кода
  • Сообщений: 1 750
  • Уровень сигнала: 0,26%
  • В игре: 2 час. 13 мин.

Награды

                                      

Отправлено 02 Февраль 2017 - 22:35

Ну, да, я согласен.

С нулевыми слипами - это сейчас просто лагомашина.

 

Анекдоты были бы поприкольнее. Можно мой Баш-принтер модифицировать под это дело =)







Темы с аналогичным тегами OpenComputers, Декорация, Заставка, ScreenSaver

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных