asteroid7 писал(а):ARV, перепроверь, такая же фигня с ссылкой. Ведёт на Извините, но для просмотра... Вы должны...
Раздел "Начинающим > Пробуем программировать". Куки и JS включены.
проверил. похоже, на сервере был сбой и они автоматом восстановили бэкап базы какой-то старой версии... сейчас вроде все ништяк должно быть. извините.
что касается бегущей строки, то все просто. эй,
miwutka07, будь внимателен, даю алгоритм

1. должен быть какой-то массив байтов, соответствующий "экранной области", т.е. каждый бит в этом массиве - есть точка на матрице. записали в массив какое-то число - и тут же на матрице засветились нужные точки (где единички в битах). как вы это обеспечите - мне все равно. я предполагаю, что будет некая фоновая процедура динамической индикации по прерываниям.
2. должен быть массив (двумерный) с символами знакогенератора или иными картинками, которые выводятся на экран. почему двумерный? потому что по одному измерению будут номера символов-картинок, а по второму - номер байта внутри самого символа. этот массив лучше хранить во flash.
3. должна быть функция, которая на входе имеет координаты X, Y и указатель на первый байт внутри знакогенератора и по этим параметрам копирует из знакогенератора фиксированное число байтов в экранную область. левый верхний угол в экранной области определяется координатами.
если вы сделаете все вышеперечисленное, то вы сумеете вывести любой символ из знакогенератора в указанную точку своей матрицы. на данном этапе это позволит вам нарисовать любую букву в любом месте матрицы - неподвижно пока.
4. делается функция, которая получает координату X и указатель на строку с текстом, и выводит этот текст на экран в точку с координатой (X,0) - считаем, что 0 - это самая верхняя строка матрицы. делает это она при помощи функции из п.3 - по очередной букве строки определяет номер символа в знакогенераторе, выводит это символ, затем сдвигает координату Х на ширинут символа, определяет номер следующего символа и т.д.
на этом этапе вы сумеете вывести строку текста в вашу экранную область, начиная с указанной координаты Х
5. делается цикл, который с задержкой выводит при помощи функции из п.4 заданный текст сначала в позицию, равную максимальному номеру точки в вашей матрице по горизонтали, затем в предыдущую точку, затем в пред-предыдущую и т.д.
на этом этапе строка у вас побежит от правого края до левого.
ВНИМАНИЕ!!!
все функции должны контролировать соответствие реальных координат и тех, что получили на входе: если передана координата по Х раная -12, то НИЧЕГО ВЫВОДИТЬ НЕ НАДО. точно так же не надо выводить и в том случае, если Х стало больше, чем ширина экрана. иначе вы начнете портить ОЗУ со страшной силой.
6. вы должны уметь вычислять ширину текста в точках.
теперь, если ширина текста в точках у вас 120, а ширина экрана в точках 64, то вам остается только производить в цикле простые вычисления и задавать координаты вывода текста в диапазоне от 64 до -120, чтобы весь текст пробежал справа налево.
в общих чертах, это весь алгоритм. есть всякие нюансы типа очистки экрана правее текста строки и т.п. - но для основы этого достаточно.
удачи!
