В рассылке будут публиковаться материалы, посвящённые освоению искусства программирования, в частности, веб программированию. Освещаться будут не только языки программирования, но и технологии и инструменты разработки.
Здесь же будет идти речь о полезных приёмах, частых ошибках и "граблях", встречаемых на пути освоения программирования.
Статистика
0 за неделю
Программирование с нуля - это совсем просто! 169) Программирование 3D-игр: Текстуры
Школа программирования 169) Программирование 3D-игр: Текстуры Предыдущий выпуск по 3D-играм и BlitzBasic, был N 165. Текстуры - фундаментальное понятие 3D-графики, представляющее собой графические изображения, накладываемые на любые объекты BlitzBasic. Если, например, надо создать образ травяного поля, стены с кирпичной кладкой или потолка с красивыми узорами, то в программе формируется объект (прямоугольник или плоскость, на которой размещается (говорят иногда, "натягивается) текстура, соответствующее гра...
Программирование с нуля - это совсем просто! 168) Программирование ролевой игры в Windows
Школа программирования 168) Программирование ролевой игры: Продолжаем перенос в Windows Последний выпуск по ролевой игре, был N 164. Теперь, когда пустая форма у нас запускается и весь код компилируется без проблем, возьмемся непосредственно за игровую логику. Добавим на форму меню с одним главным разделом "Игра. В нем реализуем также всего два пункта - "Новая" (назовем этот пункт NewGameItem) и "Выход. Обработку выбора пункта "Выход" можно создать сразу, выполнив в нем, например, единственную команду закр...
Программирование с нуля - это совсем просто! 166) Лисп: атомы, списки, функции и СуперУм
Школа программирования 166) Функциональное программирование и Лисп: атомы, списки и функции + развиваем СуперУм Продолжаем тему про Лисп из выпуска 162. Данные в Лиспе В Лиспе вся работа ведется с так называемыми АТОМАМИ. Атом - это последовательность букв, цифр и других символов, кроме пробелов и скобок. Примеры атомов Лиспа: abcde Это_Атом_Лиспа 12345 1A2B3C4D 0+0.110число xy=yz Атомы организуются в СПИСКИ - последовательности атомов, взятые в круглые скобки. Примеры списков Лиспа: (1 2 3 4 5) (ab cd ef ...
Программирование с нуля - это совсем просто! 165) Программирование 3D-игр: Работа с поверхностями/туманом
Школа программирования 165) Программирование 3D-игр: Работа с поверхностями и туманом Последний выпуск по BlitzBasic, был N 161. Поверхность (Plane) Понятие поверхности (плоскости) применяется практически во всех приложениях, где действие разворачивается на открытой местности. С помощью поверхности моделируется не только область, по которой перемещаются персонажи, но и, например, небо с облаками, а также различные пространственные эффекты наподобие тумана. Поверхность представляет собой бесконечную "землю"...
Программирование с нуля - это совсем просто! 164) Ролевая игра: Продолжаем перенос в Windows
Школа программирования 164) Программирование ролевой игры: Продолжаем перенос в Windows Предыдущий выпуск по ролевой игре, был N 159. * Обращаю внимание - мой почтовый ящик из-за спама сменился. Новый - в конце рассылки. Кроме того, на адреса домена мэйл ру от меня письма не уходят, поэтому если пишете мне, то на мейл ру я ответить вам не смогу. * Перенос в Дельфи. Итак, компилятор добрался до модуля LowLevel, и сообщает об отсутствии в разделе реализации всех необходимых процедур и функций. Форма программ...
Программирование с нуля - это совсем просто! 162) Функциональное программирование: Лисп
Школа программирования 162) Функциональное программирование: Лисп Что-то наша рассылка стала немного суховатой, надо в нее добавить новые направления. Одним из них будет раздел по функциональному программированию. До сих пор мы изучали так называемое императивное программирование - составление программ из последовательно выполняющихся операторов. Фактически такая программа представляет собой функцию, которая получает на входе данные, и по некоторому алгоритму их обрабатывает. Существует также функционально...
Программирование с нуля - это совсем просто! 161) Программирование 3D-игр: Видеокамеры и Функции
Школа программирования 161) Программирование 3D-игр: Видеокамеры и Функции Последний выпуск по BlitzBasic, был N 157. Камеры. Дополнительные возможности Продолжаем изучение возможности камер. Диапазон действия камеры Команда CameraRange camera, near, far задает минимальное расстояние near, с которого камера начинает видеть, и максимальное расстояние far, с которого камера перестает видеть. Все объекты, расположенные ближе минимального и дальше максимального расстояний, камера не воспринимает и не отображае...
Программирование с нуля - это совсем просто! 159) Программирование ролевой игры: Перенос в Windows
Школа программирования 159) Программирование ролевой игры: Начинаем перенос в Windows Последний выпуск по ролевой игре, был N 156. Процесс переноса игры в Delphi не составит особого труда. Ведь на самом деле нам придется видоизменить лишь модули LowLevel и Main, а весь остальной код должен поо идее скомпилироваться без каких-либо проблем. Определенлные усилия потребуются лишь при формировании красивой картинки игрового пространства - пещеры, героев, монстров и других элементов, а также по адаптации цикла о...
Программирование с нуля - это совсем просто! 157) Программирование 3D-игр: Вывод текста и время
Школа программирования 157) Программирование 3D-игр: Вывод текста и измерение времени Последний выпуск по 3D-играм, был N 154. Вывод текста Функция вывода текста на экран Text применяется достаточно часто, но не столько в интересах игрового дизайна, сколько в целях вывода временных сообщений, интересных в основном разработчику. Дело в том, что данная функция рисует строку в заданной позиции экрана одним из стандартных шрифтов Windows и не умеет делать красивые графические надписи. Вообще универсального сре...
Программирование с нуля - это совсем просто! 156) Программирование ролевой игры: Завершаем с квестами
Школа программирования 156) Программирование ролевой игры: Завершаем с квестами Последний выпуск по ролевой игре, был N 152. Как нам различать, передан предмет или нет? Это непростой вопрос, так как передавать предмет может один игрок, а обращаться к пославшему за наградой - другой. То есть информация о выполнении промежуточного этапа должна храниться в описании квеста. Сделать это можно, например, указав ноль в качестве значения индекса целевого персонажа (адресата) TargetId. { - } procedure CallQuest(hn,...