Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для tonline_kms65
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 226

Бегущая строка

15.09.2021, 06:23. Показов 811. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Все здравствуйте.
Я понимаю что вопрос затерт до дыр, но ответа я почему то так и не нашел.
Суть вопроса - как сделать движение текста по горизонтали экрана.


Здесь, в цикле, я создаю строку(displayMsg она будет выводиться на экран) из основной строки(scrollMsg)(как бы печатаются буквы по очереди), что то типа подстроки.
C++
1
2
3
4
5
6
   
    int i = 0;
    for (int a = 0; a < endPos; a++){
            displayMsg[i++] = scrollMsg[a];    
            PrintToConsoleAll("%s", displayMsg);
    }
После цикла шаг(endPos) я увеличиваю endPos++;

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

Добавлено через 5 минут
Еще одно, не знаю как где, а здесь размер экрана задан от float 0.0(левый край) до float 1.0(правый край) (середина, как это ни странно, float -1.0)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.09.2021, 06:23
Ответы с готовыми решениями:

Апплет "бегущая строка", найти ошибку, строка не останавливается и бежит по второму кругу
Заранее извиняюсь если не туда написал, суть вопроса: у меня стоит задача написать апплет, в котором строка из верхнего угла бежит в...

Бегущая строка
Нужно создать бегущую строку в span, чтобы бежала справа налево (без jq) У меня есть код только для того,чтобы строка бежала слева...

Бегущая строка
Здравствуйте. Возникла проблема следующего рода: на сайте использую бегущую строку (библиотека в данном случае не имеет значения). Кроме...

7
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
15.09.2021, 10:58
Цитата Сообщение от tonline_kms65 Посмотреть сообщение
как заставить двигаться эту строку по горизонтали экрана, причем нужно как-то подобрать шаг сдвига.
Тут 3 варианта.
1)шаг символ.
массив текст 1,2,3,4,5,6
Каждый фрейм сдвигаем индекс того что выводим тут пару циклов for.
123
234
345
456
Это вывод с шагом символ.

2)шаг N пикселей
Есть бегущие строки с шагом N пикселей за фрейм.
Кусок сообщения в текстуру и по таймеру двигать текстурные координаты.

3)шаг элемент шрифта.
Например в светодиодных дисплеях буквы рисуют из мелких элементов тогда вывод сообщения это шаг по текстурным координатам за фрейм на этот элемент.
Название: ScreenShot01039.png
Просмотров: 60

Размер: 24.8 Кб

Может в методе 1 можно добавить сдвиг координат рисования букв и можно имитировать методы 2 и 3.
0
 Аватар для tonline_kms65
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 226
15.09.2021, 12:17  [ТС]
Цитата Сообщение от Excalibur921 Посмотреть сообщение
2)шаг N пикселей
Есть бегущие строки с шагом N пикселей за фрейм.
Кусок сообщения в текстуру и по таймеру двигать текстурные координаты.
У меня сейчас так и сделано, почти так:
C++
1
displayMsg[i++] = scrollMsg[a];
C++
1
2
3
    if (endPos < LengthStr) {  
        endPos++;
        xPos -= (1.0/g_Length);
// xPos - позиция курсора на экране(по Х горизонталь). Я попробовал делить 1.0(как задан здесь размер экрана) на длину строки которая печатается. Строка движется, но шаг явно не тот.

Я не могу получить размер экрана, поэтому я не могу узнать точный шаг для курсора.
Может быть нужно узнать размер печатаемого символа, и это можно будет сделать шагом?

Добавлено через 9 минут
Цитата Сообщение от Excalibur921 Посмотреть сообщение
1)шаг символ.
массив текст 1,2,3,4,5,6
Каждый фрейм сдвигаем индекс того что выводим тут пару циклов for.
123
234
345
456
Это вывод с шагом символ.
Так я получаю "подстроку", или, как бы правильно сказать, каждый фрейм циклом в памяти создаю копию от исходной строки
Частота фреймов от таймера.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
15.09.2021, 12:38
Цитата Сообщение от tonline_kms65 Посмотреть сообщение
не могу узнать точный шаг для курсора.
Подбирать?
Цитата Сообщение от tonline_kms65 Посмотреть сообщение
нужно узнать размер печатаемого символа
Нужно глянуть сам шрифт, по идее тут правильно крутить текстурные координаты тогда шрифт любой.
“scroll message source engine”
Выпадет How To Make Scrolling Textures
0
 Аватар для tonline_kms65
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 226
15.09.2021, 16:45  [ТС]
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Сообщение от tonline_kms65
не могу узнать точный шаг для курсора.
Подбирать?
По идее конечно можно, но мониторы у всех разные, разрешение тоже разное, как оно будет выглядеть у клиентов - не понятно.
Движек сервер-клиент.

Добавлено через 9 минут
У меня есть такая мысль, когда кончается "построка" может быть печатать в конец строки пустые символы, что бы строка как бы шла дальше по экрану(1 вариант)?
У меня очень мало опыта работы со строками.
Я даже здесь, сейчас, использую то, что наработал в работе с массивами, но строки они хоть и похожи на массив - это все таки не массив.
Например, я не знаю как напечатать пустой символ, что бы он как бы был, но в то же время его не было видно на экране.

Добавлено через 10 минут
Цитата Сообщение от Excalibur921 Посмотреть сообщение
“scroll message source engine”
Это про то, что на геймбанане? Не, это совсем не то, там просто анимированная текстура(типа .gif) сконвертированая в .vtf и мат. к ней. Вообще не то.
Да и не вывести её в HUD, у этого движка нет такой возможности.
Можно конечно оверлеем наложить на экран, но любой такой же оверлей перебьёт этот. Так что это вообще не тот вариант.
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
15.09.2021, 17:35
It displays text on players' screens.
text is scanned in letter by letter
https://developer.valvesoftware.com/wiki/Game_text
0
 Аватар для tonline_kms65
-16 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 226
15.09.2021, 19:04  [ТС]
Цитата Сообщение от Excalibur921 Посмотреть сообщение
It displays text on players' screens.
text is scanned in letter by letter
https://developer.valvesoftware.com/wiki/Game_text
Смысл создавать абсолютно индетичную ENT? Все проблемы перейдут туда, точно так-же.
Там не то сканирование, там просто перелив цвета можно задать по тексту.
Вообще, это всё не то. Мне нужно своё.

Добавлено через 37 минут
Цитата Сообщение от tonline_kms65 Посмотреть сообщение
я не знаю как напечатать пустой символ, что бы он как бы был, но в то же время его не было видно на экране.
Как это правильно сделать? И реально ли это?
0
1472 / 827 / 140
Регистрация: 12.10.2013
Сообщений: 5,456
15.09.2021, 19:18
Секретный пробел от Valve…
Как извращение можно задавать координаты каждого слова и между ними делать интервал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.09.2021, 19:18
Помогаю со студенческими работами здесь

Бегущая строка.
Помогите, пожалуйста, написать программу, имитирующую бегущую строку на экране (предусмотрев переход с одной строки на другую)

Бегущая строка
Надоел уже наверно, но нужна помощь с еще одной задачкой) Нужно чтобы слово(символ) перемещалось по строке слева-направо или наоборот, не...

Бегущая строка
Как сделать бегущую строку без мерцания с Canvas и чтобы резало примерно так: Бегущая строка Бегущая строка Бегущая строка а ...

бегущая строка
Создайте программу вывода на экран текстовой информации в форме &quot;бегущей строки&quot;

Бегущая строка
подскажите на словах как реализовать бегущую строку на arduino которая выводит некий текст по времени (сейчас вторая пара через час сейчас...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru