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


Фотография

Вывод графика энергии на монитор

mfsu

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

#1 Оффлайн   lokin135

lokin135
  • Пользователи
  • Сообщений: 52
  • Уровень сигнала: 88,11%
  • В игре: 667 час. 39 мин.
  • ГородПсков

Награды

           

Отправлено 27 Май 2018 - 21:13

Снова привет! Когда-то давным-давно увидел я дома у Fingercomp'a очень интересную хреновину на мониторе, которая показывала расход/прирост энергии в системе. И вот тогда я захотел накодить нечто подобное. НО! Был я тогда еще тем говнокодером, по этому подобное я не мог сделать. Но время шло, учился кодить и вдруг внезапно вспомнил я о той штуке. Закодил, поставил и забыл. Но вот еще время прошло! :D И снова смотрев на свою папочку с программами наткнулся на свой теперешний говнокод. Ну и переписал с новыми фичами (в виде поддержки полупиксилов, что принесло более красивый вид и точность графика) и адекватным кодом (хотя в некоторых моментах я все-же не знал как лучше поступить, и возможно сделал не совсем правильно) :

image_2018_05_27_20_19_24.pngСлева - старая версия проги, а справа - новая.

 

График показывает процент энергии от объема, выделяя цветом разницу доступной энергии прошлой точки графика: 

Point.Y = math.ceil((energy / capacity) * ((ResY-BarY) * 2))

Пройдемся по настройкам:

 

​Цвета настраиваются ровно так-же, как и в прошлой проги.

local ResX, ResY = 100, 50
local TimeSleep = 2

local BarY = 3/1.5
local lastX = -1

local drawBar = true
local nameComponent = "mfsu"

Первые переменные ResX и ResY - разрешение экрана. Можно спокойно настраивать, но только отключив бар сверху.

TimeSleep​ - время ожидания после прорисовки столбца. В общем скорость движения графика. 

BarY​ и lastX лучше не трогать) 

drawBar​ - отвечает за отображение графика сверху.

nameComponent​ - а вот эта переменная позволяет подключить не только MFSU'шки (да-да, можно подключить хоть 60 их к серверу), но и другие энергохранилища из IC2.

 

Ссылочки на программу:

https://lokin135serv...erEU/mfsu4M.lua (да да, я так и не разобрался с кодировкой)

pastebin get XygafBBK

 

Прошлые версии можете глянуть на сервере, но сразу предупреждаю: вы можете получить психическую травму от моего старого кода ​ лучше не смотрите :P

 

Жду конструктивной критики. Не, ну идеального кода не бывает, верно?


Сообщение отредактировал lokin135: 10 Июнь 2018 - 11:55

  • Alex и Appo это нравится

#2 Оффлайн   Alex

Alex
  • Администраторы
  • Сообщений: 3 744
  • Уровень сигнала: 51,84%
  • В игре: 392 час. 51 мин.

Награды

                 

Отправлено 27 Май 2018 - 23:22

Ну и переписал с новыми фичами (в виде поддержки полупиксилов, что принесло более красивый вид и точность графика) и адекватным кодом https://image.ibb.co...27_20_19_24.png

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

Если бы ты еще немного допилил бы свою прогу, и сделал нечто отдаленно подобное (спойлер ниже, по временным отрезкам сохранял бы сразу пару графиков, например, за сутки и за последний час, "прирост" за то же время двухцветным столбиком реализовал и прочее прочее), был бы совсем другой компот. И твоя прога была бы самой эпической на форуме, тем более, что ты еще и задействовал современную "полупиксельную технологию" . Но пока что она немного больше напоминает монгольскую вышивку, чем осмысленный график энергии в реакторе  :) Но в целом хорошая работа. Молодец.

Спойлер

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

#3 Оффлайн   lokin135

lokin135
  • Автор темы
  • Пользователи
  • Сообщений: 52
  • Уровень сигнала: 88,11%
  • В игре: 667 час. 39 мин.
  • ГородПсков

Награды

           

Отправлено 28 Май 2018 - 07:23

не понятно, что именно показывают эти персидские ковры.

Ух! Совсем забыл написать об этом. График показывает процент энергии, которая хранится от общей вместимости:

Point.Y = math.ceil((energy / capacity) * ((ResY-BarY) * 2))

Объясню:

energy​ - сумма хранимой энергии во всех mfsu'шек

capacity​ - сумма вместимости во всех mfsu'шек

ResY​ = ResolutionY - разрешение экрана по Y

BarY​ - размер бара по Y

 

((ResY-BarY) * 2)​ - умножаем на два, потому-что юзаем полупиксили.



#4 Оффлайн   lokin135

lokin135
  • Автор темы
  • Пользователи
  • Сообщений: 52
  • Уровень сигнала: 88,11%
  • В игре: 667 час. 39 мин.
  • ГородПсков

Награды

           

Отправлено 28 Май 2018 - 07:32

сохранял бы сразу пару графиков

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

 

за то же время двухцветным столбиком реализовал и прочее прочее

Мне в голову почему-то не пришла эта мысль) Сделать не сложно, а выглядит солидно. Спасибо за идею, возможно когда-нибудь (~2 недели) начну писать и выложу на CC. Наверно :D



#5 Оффлайн   lokin135

lokin135
  • Автор темы
  • Пользователи
  • Сообщений: 52
  • Уровень сигнала: 88,11%
  • В игре: 667 час. 39 мин.
  • ГородПсков

Награды

           

Отправлено 10 Июнь 2018 - 11:56

Ссылки

Обновил ссылку на мой сервер. Перешел на https и купил домен, по этому старая ссылка не работала







Темы с аналогичным тегами mfsu

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

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