KMatrix - матрица, как в знаменитой серии фильмов

Your KolibriOS applications go here
  • Вау, очень прикольно! Хочется прямо сделать "хвост" темнее.

    Может сделать из этого полноценный скринсейвер? Я как раз уже сделал настройку скринсейвера и можно будет выбрать любой.
    Для этого нужно определить обычное окно на весь экран и рисовать уже в нём обычным шрифтом.
    Из хаоса в космос
  • Leency wrote:Вау, очень прикольно! Хочется прямо сделать "хвост" темнее.

    Может сделать из этого полноценный скринсейвер? Я как раз уже сделал настройку скринсейвера и можно будет выбрать любой.
    Для этого нужно определить обычное окно на весь экран и рисовать уже в нём обычным шрифтом.
    Интересная идея. Я попробую разобраться с библиотеками на отрисовку, надеюсь, что получится. А встроенных в какую-то библиотеку функций отрисовки текста нет ли случайно? (Я просто пока не встречал такого в примерах, но и не всё просматривал)
  • Сама функция 4 умеет писать выводить текст в буфер (он должен быть 32-битный), нужно только задать флаг.
    Из хаоса в космос
  • KMatrix 1.1
    • Теперь по умолчанию запускается во весь экран.
      Можно так же, как и раньше, выбирать цвета, скорость.
      Используя --shell, можно запустить программу в консоли.
      В графическом режиме теперь можно выбрать цвета в RGB (например, -B 255,0,0).
      Есть возможность смены цвета самого нижнего символа в падающем столбце (--highlight или -H).
      Добавил внутреннюю обработку ошибок: в случае проблемы будет произведён вывод в BOARD. Программа в большинстве случаев не закроется, а попытается «пережить» неудачу, оставаясь рабочей.
    Attachments
    KMatrix.zip (22.75 KiB)
    Downloaded 168 times
  • Круто, что по прежнему можно запустить в Консиле. Несколько пожелай:
    - выход по Escape
    - добавить обработку кнопки с id = 1, это нужно для закрытия приложения по Alt+F4
    - добавить обработку запуска с параметром "@ss" - это для того, чтобы можно было использовать как скринсейвер. При запуске с этим параметром скрывается курсор, выход по движению мушью или любой клавише, при выходе запускается /sys/@ss (Пример можно глянуть в исходниках /sys/demos/spiral )
    - как идея: может быть "хвост" сделать темнее? Это создаст эффект наката/каскада как тут https://youtu.be/GqiEs40x9QU?t=38
    Из хаоса в космос
  • Leency wrote:Круто, что по прежнему можно запустить в Консиле. Несколько пожелай:
    - выход по Escape
    - добавить обработку кнопки с id = 1, это нужно для закрытия приложения по Alt+F4
    - добавить обработку запуска с параметром "@ss" - это для того, чтобы можно было использовать как скринсейвер. При запуске с этим параметром скрывается курсор, выход по движению мушью или любой клавише, при выходе запускается /sys/@ss (Пример можно глянуть в исходниках /sys/demos/spiral )
    - как идея: может быть "хвост" сделать темнее? Это создаст эффект наката/каскада как тут https://youtu.be/GqiEs40x9QU?t=38
    Спасибо за предложения, попробую сделать. Надеюсь, что до подведения итогов года успею)))
  • KMatrix 1.2
    • Добавлена возможность выхода по нажатию на [ESC], системным [Alt]+[F4] (то есть, системной кнопкой);
      Добавлен параметр "@ss" для работы как скринсейвера (скрывается курсор; выход движением мыши / нажатием на любую кнопку);
      "Хвост" каждого столбца матрицы теперь может иметь случайное затенение (точнее, он вычисляется чем-то вроде градиента с фоном);
      Исправлены баги с параметрами: возможность переполнения и перепутанные цвета R и B;
      Теперь можно изменять цвета матрицы во время работы программы: [1]-[8] для выбора цвета из стандартного набора (как в Shell), [~] для выбора изменяемого параметра (FG/BG/HL);
      Также можно менять скорость матрицы во время выполнения: есть пять режимов, переключаемых кнопками [+]/[-];
      Добавлен параметр оптимизации "--copt". Он отключает перерисовку фона там, где это не так нужно, однако могут получаться немного "неточные" символы;
      Немного оптимизирован размер программы;
      Есть возможность удобного перевода программы путем введения директив с языками. В коде теперь есть упорядоченный блок с английскими сообщениями, которые можно директивами переназначить:
      Spoiler:

      Code: Select all

      #ifdef ru_RU
      	const char STR_PROGRAM_MOTD[] = "...";
      	//...
      #endif
      #ifdef en_US
      	const char STR_PROGRAM_MOTD[] = "...";
      	//...
      #endif
      
      Теперь программа возвращает код ошибки (что должно делать любое стандартное консольное приложение, например, в Linux, чтобы шэлл понимал результат).
    P.S. Немного не успел к концу года, но оно того стоило))
    Почти все изменения произведены для графической части программы, не для консольной (раз уж графическим сделалось). Возможность запустить в консоли пусть останется таким как бы приятным бонусом)). Если что, нагрузка на CPU пропорциональна скорости матрицы. Используемая память слегка больше необходимой, но дело в библиотеке C (malloc вроде бы пока выделяет память страницами).
    Нужно заливать KMatrix на SVN?
    Attachments
    KMatrix.zip (26.53 KiB)
    Downloaded 167 times
  • Получилось круто)
    Да, залей на SVN в демки. Попробуй настроить автосборку. Потом можно будет добавить в ISO.
    Программа имеет очень много настроек, мне кажется это больше пригодилось бы для более сложных программ, а тут я не уверен что этим будут пользоваться. Но всё равно прикольно)
    Из хаоса в космос
  • Может, лучше создать раздел на Wiki со скринсейверами? Что-то вроде раздела "Прочие разнообразные программы", где будет все то, что не попадает под существующие категории. А в нём уже подраздел "Скринсейверы". Либо подраздел в "Разные полезные программы" (если скринсейверы -- "полезные" программы, которые подразумевались в названии раздела :D ).
    Просто получилось так, что я сам, исходя из существующих категорий не смог никуда определить KMatrix.

    По поводу помещения в категорию Демо... Мне кажется, тогда лучше создать опять же доп. раздел на Wiki типа "Примеры программ для начала разработки" (или что-то похожее..), куда помещать программы, которые можно использовать как пример / смотреть реализацию чего-нибудь.

    Если эта идея нормальная, то я сам позже могу заняться этим (сейчас только надо будет попросить доступ к Wiki)) ).
  • Добавил статью на Wiki: http://wiki.kolibrios.org/wiki/KMatrix/ru
  • Leency wrote:Да, залей на SVN в демки. Попробуй настроить автосборку. Потом можно будет добавить в ISO
    #9618: залил и настроил автосборку.

    Leency, мне добавить KMatrix в ISO? Или этим кто-то другой занимается?
  • vitalkrilov wrote:
    Leency wrote:Да, залей на SVN в демки. Попробуй настроить автосборку. Потом можно будет добавить в ISO
    #9618: залил и настроил автосборку.

    Leency, мне добавить KMatrix в ISO? Или этим кто-то другой занимается?
    Добавь.
    Из хаоса в космос
  • Затестил! Красотища! Прости немного влез в твой проект. Я сделал чтобы он собирался новым способом с помощью def-файлов(автоимпорт). По идее даже должен стать худее).
    Изобретайте колёса каждый раз, когда хотите написать новую программу.
  • Who is online

    Users browsing this forum: No registered users and 1 guest