ria pc game
translate to English   translate to Chinese
fle game engine - движок для создания игр
fle game engine - движок для создания игр


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
22 февраля 2019 20:16
Вход Регистрация Забыли пароль ?

megainformatic - Моделируем девушку в 3d используя 3ds max - Выполняем моделирование ноги
        [к содержанию] [уроки 3ds max] [далее
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Программируем на C++ с использованием MFC - Создание MFC приложения - hello, world !

megainformatic - Как создать игру ? - Пишем игровой движок с нуля

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - Вступление

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - Общая структура будущего игрового движка

Разное

megainformatic - Как создать игру ? - Пишем игровой движок с нуля - DXUTMainLoop - цикл работы DirectX-приложения

megainformatic - Варианты макетов Психолог 911

megainformatic - Шаблоны для сайтов - что это и какие они бывают ?

megainformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 3 - Кто он ? (who is ?)

megainformatic - Мои Музыкальные Миры - готовая музыка mp3 - новинки 2013 года

megainformatic - Теория и практика хакерских атак - самозащита от нападения

megainformatic - Теория и практика хакерских атак - самозащита от нападения - Способы подмены реального IP

megainformatic - Fruity Loops Studio 9 - Как синтезировать свои сэмплы - изучаем возможности плагина Sytrus

megainformatic - Видоизменяем тему для Wordpress под свои нужды

megainformatic - Flash приложения и игры - Шаг 3 - управляемый шарик

megainformatic - Учимся создавать флеш-игры, что нужно знать для того, чтобы заняться созданием flash приложений и игр ?

megainformatic - Шаг 4 в освоении Flash-технологий - как анимировать персонажа и управлять им

megainformatic - Форма для смены шаблонов сайта. Модуль template selector

megainformatic - megainformatic cms express files + module slider

megainformatic - Создание сайта бесплатно или под заказ

megainformatic - Как создать flash баннер

megainformatic - Разработка flash-приложения для сайта: онлайн примерочная

megainformatic - Мои впечатления о книге - Владислав Крапивин - Журавленок и Молнии

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль отзывов/комментариев для вашего сайта

megainformatic - Модуль короткие ссылки short link

megainformatic - Работа с сокетами fsocket из php

megainformatic - Как создать игру Создание игровых панелей и индикаторов

megainformatic - Приключения Кости Коробкина - Как я провел лето - интерактивный комикс

megainformatic - Приключения Кости Коробкина - Как я провел лето - интерактивный комикс

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс

megainformatic - Система управления сайтом на php - megainformatic cms admin files

megainformatic - обзор антивирусных средств защиты

megainformatic - как работает антивирус ?

megainformatic - Создание сайта для бизнеса

megainformatic - Новый взгляд на очевидные вещи

megainformatic - Разработка программ на c++

megainformatic - Немного о музыке

megainformatic - GET и POST запросы

megainformatic - для чего нужна карта сайта

megainformatic - Web Администрирование

megainformatic - Мысли о разном

megainformatic - Легко ли быть программистом

megainformatic - Глубины программирования на C++

megainformatic - Убираем лимит на размер импортируемого файла в PhpMyAdmin

megainformatic - Как создать torrent файл

megainformatic - Нужна ли валидация вашему сайту ?

megainformatic - Антивирус DrWeb

megainformatic - Калькулятор рассчёта стоимости зубопротезирования для стоматологической клиники

megainformatic - Что такое BitTorrent (БитТоррент)

megainformatic - Миссис Даутфайр 1993 фильм torrent

megainformatic - Как скачивать торрент-раздачу ?

megainformatic - Автотелега фильтр

megainformatic - Фильмы

megainformatic - Fahrengeit Фаренгейт игра 2006 для PC

подробнее

     
  Уроки Photoshop - Рисуем и анимируем  
     
  Уроки Photoshop - Рисуем и анимируем   
 

Стоимость: 250 руб.

 
     
     
  Введение  
     
 

Эти уроки - плод упорной работы над графикой, которая выполнялась в течение почти года над проектом игры, которая еще не вышла, но выйдет в скором времени.

Вся графика была нарисована в программе Adobe Photoshop. Для просмотра созданных анимаций Вы можете использовать небольшую утилиту - Coords2D

Ссылка для скачивания утилиты Coords2D



Скачать Coords2D -


Размер sfx-архива: 36 Mb. Также содержит много примеров спрайтов и других
изображений из проекта fle, bol и др.

Все наши уроки будут посвящены рассмотрению приоритетно практических вопросов - как рисовать и создавать анимации в Adobe Photoshop. При этом Вам не нужно приобретать какое-либо специальное оборудование - графический планшет или что-то подобное. Мы будем использовать обычную мышь, с которой Вы давно привыкли работать. Итак, Вы откроете для себя огромный и необъятный мир графики, которую Вы можете создать сами в Adobe Photoshop.

Какую версию Adobe Photoshop использовать ? Решайте сами, исходя из Ваших возможностей и пожеланий. Могу посоветовать Вам любую версию начиная от CS (8) до CS 5 (12).

Что еще нам потребуется ? Только лишь немного свободного времени и желания создать что-то красивое и совершенное. А как же опыт ? Опыт мы с Вами будем набирать в ходе наших с Вами уроков. Итак, можно начинать !

 
     
 

Какие специальные знания потребуются ? Думаю, что никаких особых знаний не потребуется, единственное, я надеюсь, что Вы обладаете хотя бы базовыми знаниями работы на ПК, т. е. Вам не нужно объяснять как установить Photoshop, как запустить его, как создать папку или файл, открыть изображение.

Если же и этого минимума знаний у Вас пока нет - начните с изучения более простых уроков -

Уроки Photoshop;

Уроки Photoshop - Чудеса;

 
     
  В этом сборнике статей мы рассмотрим следующие темы:  
     
 

1. Старт - данная статья доступна онлайн, т. к. предоставляется как ознакомительная, остальные статьи входят в состав сборника и недоступны онлайн. Вы сможете их прочитать только после заказа всего сборника статей - Уроки Photoshop - рисуем и анимируем. Стоимость всего сборника - 250 руб. После оплаты заказа Вы в кратчайшие сроки получаете ссылку на скачивание ПОЛНОЙ ВЕРСИИ сборника, скачиваете его, распаковываете (сборник содержится в виде самораспаковывающегося архива) и читаете интересующие Вас уроки.

 
     
  2. Прорисовка  
     
  3. Раскраска  
     
  4. Секреты свето-тени  
     
  5. Применение фильтров  
     
  6. Подготовка к анимации персонажа  
     
  7. Создание анимации  
     
  8. Окончальтельный результат анимации, альфа-маска, сохранение файла  
     
  9. Создание кустов травы, тест результатов в Редакторе карт SceneEditor  
     
  10. Создание фона неба и земли, тест в редакторе карт  
     
  11. Деревья  
     
  12. Прочие объекты  
     
  13. Существа - пауки и их анимация  
     
  14. Анимация брошенных предметов  
     
  15. Основы создания тутульной заставки  
     
  16. Элементы меню  
     
  17. Оформление игровых панелей  
     
  18. Рисование обстановки помещений  
     
  19. Основы создания мини-комикса - шаг 1  
     
  20. Основы создания мини-комикса - шаг 2  
     
  21. Основы создания мини-комикса - шаг 3  
     
  22. Игровые экраны - настройки, информация, игровые диалоговые окна  
     
  23. Предметы и находки - лопата, лейка, плитки  
     
  24. Специфические предметы - летающий смех и его анимация  
     
  25. Специальные эффекты - создание и анимация дождя, возникновения/исчезновения объектов/героя/существ  
     
  26. Итоги проделанной работы: Чему мы научились ?  
     
 

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

Спасибо за внимание и желаю Вам творческих успехов !!!

 
     
     
     
     
     
     
подробнее

Использование регулярных выражений в php

[к содержанию]

Здравствуйте ! Сегодня мы займёмся изучением regexp - регулярных выражений в языке php. Вашему вниманию предлагается статья Артемьева Сергея, которую я нашел на сайте -

по материалам статьи: http://on-line-teaching.com/php/regexp.htm

автор: Артемьев С. И.

В статье мною были исправлены некоторые неточности и синтаксические ошибки, а также вставлены блоки кода, приведенные в примерах, сразу же возвращающие результат его выполнения на php. Блоки кода php внедрены при помощи модуля content php performer полный исходный код которого и объяснение Вы также найдёте тут

Далее по тексту -

Одна из очень мощных и полезных возможностей языка PHP - поддержка регулярных выражений. Многих программистов, как начинающих, так и довольно опытных, пугает внешняя сложность и запутанность языка регулярных выражений. Но могу вас уверить - это того стоит. Применение регулярных выражений существенно облегчает работу по обработке текстов и слабо структурированных данных.


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


Я думаю, вы неоднократно сталкивались с ситуациями, когда у вас есть текст (например, в Microsoft Word) и вам надо найти в нём что-то важное. Если вы знаете, что именно ищете - всё просто: вызвали диалог поиска, ввели искомое слово, нажали кнопку и вуаля - текст найден.


Но что вы будете делать, если вы заранее знаете только тип искомой информации? Например, перед вами стоит задача найти все адреса электронной почты в документе на пару сотен листов. Некоторые будут просматривать документ вручную, некоторые - введут в поиске собаку (@) и будут искать её. Согласитесь - оба вариата это каторжный неблагодарный труд.

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

Регулярное выражение - это текстовая строка, составленная по определённым законам и правилам. Строка состоит из символов и групп символов, метасимволов, квантификаторов и модификаторов.

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

// читаемые символы
a
Е
// нечитаемые символы и коды
\x41 - то же что буква 'A'
\x09 - символ табуляции

Группа символов - это несколько символов, записанные последовательно:

абвг
ACZms

Сразу обращаю ваше внимание - "пробел" в регулярных выражения тоже рассматривается как значимый символ, поэтому при написании выражений будьте внимательны. Например, эти группы символов являются РАЗНЫМИ выражениями:

АБВГДЕ
АБВ ГДЕ

Следующий элемени языка - метасимволы. Приставка "мета" означает, что эти символы описывают некие другие символы или их группы. В таблице рассмотрены основные метасимволы языка регулярных выражений:

Метасимволы для задания специальных символов
() Скобки. Определяют вложенные выражения.
| Метасимвол выбора
^ Метасимвол начала строки
$ Метасимвол конца строки
\n Символ перевода строки (шестнадцатеричный код 0x0A)
\r Символ возврата каретки (шестнадцатеричный код 0x0D)
\t Символ табуляции (шестнадцатеричный код 0x09)
\xhh Вставка символа с шестнадцатиричным кодом 0xhh, например \x42 вставит латинскую букву 'B'
Метасимволы для задания групп символов
. Точка. Любой символ.
\d Цифра (0-9)
\D Не цифра (любой символ кроме символов 0-9)
\s Пустой символ (обычно пробел и символ табуляции)
\S Непустой символ (все, кроме символов, определяемых метасимволом \s)
\w "Словарный" символ (символ, который используется в словах. Обычно все буквы, все цифры и знак подчеркивания ('_'))
\W Все, кроме символов, определяемых метасимволом \w

Метасимволы из второй половины таблицы очень легко запомнить. "d" - digit (цифра), "s" - symbol (символ), "w" - word (слово). Если буква большая - значит надо добавить "НЕ" в описанию группы.

Возьмём для примера текст "На красной майке цифры 1812, а на зелёной майке - 2009". Рассмотрим примеры простейших регулярных выражений:

\d\d\d\d - найдёт 1812 и 2009
\D - найдёт все буквы, пробелы и знаки препинания
\s - найдёт все пробелы в тексте.

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

[0-9] - означает любую цифру (то же, что \d)
[0,2,4,6,8] - означает чётную цифру
[A-Za-z0-9] - обозначает любой символ латниского алфавита (в любом регистре) или цифру.

Например, выражение \d\d\d[0,2,4,6,8] в тестовой строке найдёт только 1812, но не 2009. Это выражение следует читать как "найти все последовательности из четырёх цифр, где последняя цифра равна 0,2,4,6 или 8".

Нам осталось упомянуть лишь квантификаторы и модификаторы.

Квантификатор - это специальная конструкция, определяющая, сколько раз должен встретиться символ или группа символов. Квантификатор записывается в фигурных скобках "{}". Возможны два формата записи: точный и диапазонный. Точный формат записывается так:

{X}

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

\d{4}

следует читать как "ровно четыре последовательно записанные цифры".

Вторая форма записи - диапазонная. Записывается как

{X, Y}
// или
{,Y}
// или
{X,}

где X - минимальное, а Y - максимальное количество повторений. Например:

\d{2,4}

читается как "от двух до четырёх последовательно записанных цифр". Если одна из границ не указана, то подразумевается отсутствие ограничения. Например:

\w{3,}  - три и более букв.
\d{,5}  - цифр нет вообще, либо есть, но не более пяти.

Квантификаторы могут применяться как к одному символу, так и к группе:

[ А-Яа-я ]{1,3}

Эта конструкция выберет из текста все русские слова из одной, двух или трёх букв (например, "или", "не", "я", "иду" и т.п.)

Кроме фигурных скобок с уществует ещё три метасимвола-квантификатора: "*" (звёздочка), "+" (плюс) и "?" (вопрос). Их испльзуют в случаях, когда заранее неизвестно минимальное и максимальное количество необходимых повторений. Например, при поиске адресов электронной почты нельзя заранее сказать, сколько символов будет в имени пользователя (до "собаки"), а сколько - в имени домена (после "собаки").

Метасимвол "*" читается как "любое количество от нуля и более", т.е. конструкция

\w* 

определяет любое количество последовательных букв, в том числе и их полное отсутствие.

Символ "+" отличается от звёздочки лишь тем, что требует наличия хотя-бы одного символа. Т.е. конструкция

\d+

соответствует любой цифровой последовательности, где цифр одна или более.

Символ "?" соответствует отсутствию или наличию единственного символа. Т.е. конструкция

\d?

соответствует любой цифровой последовательности, где цифр одна или две.

Здесь стоит упомянуть о такой особенности квантификаторов "*" и "+" как жадность. Суть в том, что по-умолчанию эти символы соответствуют максимально длинной последовательности символов. Например, для строки "мама мыла раму" выражение:

\.+а

выберет "мама мыла ра", что несколько неожиданно, ведь мы предполагали получить "ма". Для изменения такого поведения используется метасимвол "?" (знак вопроса), записанный сразу после квантификатора. Он органичивает "аппетит" квантификаторов, заставляя их возвращать первое совпадение, а не самое длинное. Теперь изменим предыдущий пример:

\.+а?

и получим требуемое совпадение "ма".

Последний элемент языка - модификаторы. Модификатор - это спецсимвол, определяющий "системные" параметры анализа регулярных выражений. Таких символов всего четыре, они могут применяться как по отдельности, так и одновременно:

i Включает режим case-insensitive, т.е. большие и маленькие буквы в выражении не различаются.
m Указывает на то, что текст, по которому ведется поиск, должен рассматриваться как состоящий из нескольких строк. По умолчанию механизм регулярных выражений рассматривает текст как одну строку вне зависимости от того, чем она является на самом деле. Соответственно метасимволы '^' и '$' указывают на начало и конец всего текста. Если же этот модификатор указан, то они будут указывать соответственно на начало и конец каждой строки текста.
s По умолчанию метасимвол '.' не включает в свое определение символ перевода строки. Т.е. для многострочного текста выражение /.+/ вернет только первую строку, а не весь текст, как ожидается. Указание этого модификатора снимает это ограничение.
U Делает все количественные метасимволы "не жадными" по умолчанию. В некоторых модификациях языка (в частности в PHP) вместо "U" используется символ "g", более соответствующий смыслу ("g" - сокращение от английского "greedy", "жадный").

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

email [\.\-_A-Za-z0-9]+?@[\.\-A-Za-z0-9]+?[\ .A-Za-z0-9]{2,}
дата ^\d{1,2}([-. /])\d{1,2}\1\d{2,4}$
дробное число [\d]{4}\.[\d]{2}
номер мобильного телефона (?:8|\+7)? ?\(?(\d{3})\)? ?(\d{3})[ -]?(\d{2})[ -]?(\d{2})
Выделение текста между тегами /<tag>(.*)</tag>/Uis

Регулярные выражения в PHP.

Для работы с регулярными выражениями в PHP предназначены специальные функции, список которых и краткое описание приведены в таблице:

int preg_match (string pattern, string subject [, array matches])

Функция проверяет, совпадает ли содержимое subject с шаблоном pattern. Возвращает 1, если совпадения найдены, иначе возвращает 0. Если указать необязательный параметр-массив matches, то при выполнении функции в него будут занесен единственный элемент - первое найденное совпадение.

    <?php
    
    // исходная строка
    $value = "abcde 12345 klmnop";
    
    // шаблон для поиска
    $template = "/\w{5}/";
    
    // производим поиск
    $result = preg_match($template, $value, $matches); 
    
    echo "Совпадений: $result<br>";
    print_r($matches);
    ?>
      

Результат выполнения данного кода -

Совпадений: 1
Array ( [0] => abcde )
int preg_match_all (string pattern, string subject, array matches [, int order])
Функция идентична предыдущей, с единственным отличием - она производит поиск по всему тексту и возвращает в массиве matches ВСЕ найденные совпадения.
mixed preg_replace (mixed pattern, mixed replacement, mixed subject [, int limit])
Как и обе предшествующие функции, preg_replace производит поиск фрагмента текста, соответствующего шаблону. Все найденные фрагменты функция заменяет на указанный в параметрах текст.
<?php
	$text = "текст\t\n\t\t до замены  \n  \t и  \n\n\n после   замены";
	echo "<b>До очистки:</b>\n$text\n\n";
	$text = preg_replace("/(\n \s{2,})/"," ",$text);
	echo "<b>После очистки:</b>\n$text";
    
    // выведет текст, очищенный от спецсимволов 
    // и лишних пробелов
?> 
    
Результат выполнения данного кода -

До очистки:
текст	
		 до замены  
  	 и  


 после   замены

После очистки:
текст	
		 до замены   и  


 после   замены
mixed preg_replace_callback (mixed pattern, mixed callback, mixed subject [, int limit])
Функция является расширенной версией предыдущей. Главное отличие - этой функции в параметрах передаётся имя функции, которая будет анализировать текст и формировать замещающий текст.
array preg_split (string pattern, string subject [, int limit [, int flags]])
Эта функция аналогична функциям explode() и split(). Её особенность в том, что в качестве разделителя выступает не фиксированная строка, а регулярное выражение. Функция разбивает исходные данные на элементы и помещает их в выходной массив.
        
<?php


	// загружаем текст из файла
	$text = join('',file('my_text.txt'));

	// разбиваем по словам
	$words = preg_split("/\s+/s",$text);

	// выводим результаты
	print_r($words);
    
?>
        
Результат выполнения данного кода -

Array ( [0] => width="100%" [2] => border="0" [3] => cellspacing="0" [4] => cellpadding="0"> [5] => [6] => [8] => [10] => [12] => [13] => [14] => [15] => [17] => [18] => [19] => [20] => [21] => [22] => [23] => [24] => [25] => [26] => [29] => [30] => [31] => [32] => [33] => [34] => [35] => [36] => [37] => [38] => [119] => [120] => [121] => [122] => [123] => [124] => [125] => [126] => [127] => [128] => [131] => [132] => [133] => [134] => [135] => [136] => [137] => [138] => [139] => [140] => [146] => [147] => [148] => [149] => [150] => [151] => [152] => [153] => [154] => [155] => [168] => [169] => [170] => [171] => [172] => [173] => [174] => [175] => [176] => [177] => [186] => [187] => [188] => [189] => [190] => [191] => [192] => [193] => [194] => [195] => [205] => [206] => [207] => [208] => [209] => [210] => [211] => [212] => [213] => [214] => [223] => [224] => [225] => [226] => [227] => [228] => [229] => [230] => [231] => [232] => [243] => [244] => [245] => [246] => [247] => [248] => [249] => [250] => [251] => [252] => [255] => [256] => [257] => [258] => [259] => [260] => [261] => [262] =>
width="10%">  width="80%">  width="10%"> 
 Уроки [16] => php 
   
 [ href="?page=4">другие [28] => статьи] 
   
 

В [39] => данной [40] => серии [41] => статей [42] => Вы [43] => узнаете [44] => об [45] => основах [46] => создания [47] => сайтов [48] => на [49] => языке [50] => php.

[51] =>

Вы [52] => можете [53] => создавать [54] => скрипты [55] => на [56] => языке [57] => php [58] => и [59] => выполнять [60] => их [61] => на [62] => своём [63] => ПК, [64] => либо [65] => на [66] => хостинге [67] => с [68] => поддержкой [69] => языка [70] => php [71] => и [72] => баз [73] => данных [74] => my [75] => sql.

[76] =>

Можно [77] => начать [78] => работу [79] => сразу [80] => же [81] => с [82] => готового [83] => сайта. [84] => Для [85] => этого [86] => советую [87] => взять [88] => за [89] => основу [90] => одну [91] => из [92] => готовых [93] => систем [94] => для [95] => создания [96] => сайтов [97] => на [98] => php [99] => с [100] => открытым [101] => исходным [102] => кодом:

[103] =>

- [104] => href="?page=156">megainformatic [106] => cms [107] => free;

[108] =>

- [109] => href="?page=190">megainformatic [111] => cms [112] => express;

[113] =>

- [114] => href="?page=164">megainformatic [116] => cms [117] => express [118] => files;

 
   
 Рассмотрим [129] => следующие [130] => вопросы: 
   
 1) [141] => href="?page=17">Введение [143] => в [144] => язык [145] => php; 
   
 2) [156] => href="?page=13">Работа [158] => с [159] => базами [160] => данных [161] => MySQL [162] => Описано [163] => как [164] => создать [165] => простейший [166] => счётчик [167] => посещаемости. 
   
 3) [178] => href="?page=18">Выводим [180] => дату [181] => и [182] => время [183] => в [184] => формате [185] => RU 
   
 4) [196] => href="?page=15">Добавляем [198] => созданный [199] => счетчик [200] => на [201] => все [202] => страницы [203] => Вашего [204] => Сайта 
   
 5) [215] => href="?page=216">Что [217] => нужно [218] => для [219] => создания [220] => собственного [221] => сайта [222] => ? 
   
 6) [233] => href="?page=222">Шаги, [235] => которые [236] => потребуются [237] => для [238] => создания [239] => простого [240] => и [241] => функционального [242] => сайта 
   
 [ href="?page=4">другие [254] => статьи] 
   
)
array preg_grep (string pattern, array input)
Функция предназначена для регулярного поиска в массивах. Для поиска задаётся шаблон и массив входных данных, а возвращается массив, состоящий только из элементов, соответствющих шаблону.

Рассмотренный список функций далеко не полон, но вполне достаточен для успешного начала работы с регулярными выражениями. Если вы заинтересовались этой темой - обязательно почитайте дополнительную литературу (например, книгу Фридла "Регулярные выражения"). Кроме того, в целях обучения рекомендую поставить одну из специальных программ для тестирования регулярных выражений (например, "PCRE" или "RegEx Builder").

- Конец текста статьи

Спасибо Сергею, за очень полезную и информативную статью !



А теперь небольшое веб-приложение для тестирования регулярных выражений

Регулярное выражение:


Строка поиска




И небольшая шпаргалка по синтаксису регулярных выражений -

шпаргалка по синтаксису регулярных выражений [к содержанию]

подробнее

     
  Инструкция по оплате услуг средствами WebMoney  
     
 

1. Если у Вас нет кошелька WebMoney, откройте его на сайте www.webmoney.ru.

2. Запустите WebMoney Keeper.

start_wm_keeper.jpg

3. Откройте в интернет-браузере главную страницу нашего сайта - megainformatic.ru

open_www.chitaonline.ru.jpg

4. Найдите желаемый товар, который хотите заказать и нажмите кнопку КУПИТЬ расположенную напротив него

own_cabinet_panel.jpg

5. Вы попадете на новую страницу сайта, где Вам нужно выбрать способ оплаты WebMoney

 
     
 

6. Нажмите кнопку Подтвердить

7. На следующей открывшейся странице Вам нужно просто Подтвердить что Вы действительно собираетесь оплатить заказ - снова нажмите кнопку Подтвердить

8. На следующей странице заполните Ваши Фамилию Имя Отчество и е-майл адрес, на который нужно выполнять доставку заказанного товара, после чего снова нажмите кнопку Подтвердить

9. В открывшемся окне проверьте сумму платежа и нажмите кнопку Оплатить

10. Внимательно посмотрите код и нажмите кнопку Далее.

11. В появившемся окне нажмите кнопку Продолжить

a_m_4.jpg

12. В открывшемся полупрозрачном окне еще раз проверьте сумму, название товара и ФИО, введите код, который ранее запомнили и нажмите кнопку Да.

13. После успешного завершения платежа Вы увидите новую страницу, сообщающую, что Ваш заказ успешно принят и будет обработан в течение 1-4 дней.

14. На ваш e-mail придет уведомление. А после зачисления средств на счёт нашего магазина - обычно в течение дня - будет выполнена доставка товара на Ваш e-mail.

 
     
     
     
     
подробнее

Веселый Буквоежка - онлайн комикс - страница 9

представляем Веселый Буквоежка - онлайн комикс.

Они отправились вслед за ВБ.

Веселый Буквоежка - онлайн комикс - страница 9

если кликать картинку она будет последовательно меняться в размерах от 620 до 2048 пиксель.

[страница 1]  [страница 2]  [страница 3]  [страница 4]  [страница 5]  [страница 6]  [страница 7]  [страница 8]  [страница 9]  [страница 10]  [страница 11]  [страница 12]  [страница 13]  [страница 14]  [страница 15]  [страница 16]  [страница 17]  [страница 18]  [страница 19]  [страница 20]  [страница 21]  [страница 22]  [страница 23] 

2.02.2019

fle game generator - эффекты под музыку и без на движке fle game engine

fle game generator - эффекты под музыку и без на движке fle game engine - урок 2 - переходим к более сложным эффектам - вращение 3d объектов



В верхней части сайта Вы наверное уже заметили вращающийся кубик.

Зададимся целью решить эту вообщем-то достаточно тривиальную, но в то же время
базовую задачу.

То есть попробуем научиться создавать визуальный эффект вращающейся 3d модели
на примере 3d куба.

Научившись делать это, Вы сможете вращать и другие модели и, что самое важное -
узнаете основные принципы трансформаций 3d объектов в сцене.

Вам наверное было бы интересно знать, как реализовано перемещение 3d кубиков (или 3d сфер,
которые мы создали в предыдущем уроке -
fle game generator - эффекты под музыку и без на движке fle game engine

Скоро Вы это узнаете. А сейчас давайте изучим как вращать куб.

Самое простое - это реализовать поставленную задачу на уже реализованном примере.
Наши кубики в сцене летят. Но их много. Кроме того, в предыдущем уроке -
fle game generator - эффекты под музыку и без на движке fle game engine
у нас стали летать не кубики, а сферы.

fle game generator - 4 вида 3d шариков

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



Поэтому проделаем следующие шаги:

1) вернем снова в сцену летающие кубики вместо летающих сфер.

Как это сделать Вы можете догадаться из предыдущего урока
fle game generator - эффекты под музыку и без на движке fle game engine

fle game generator - 4 вида 3d кубиков и 2d снег

2) Отключим временно отображение 2d визуальных эффектов, чтобы
они нам не мешали.

все что требуется это открыть в MSVS 2005 проект fgg (его можно скачать по ссылке
из предыдущего урока fle game generator - эффекты под музыку и без на движке fle game engine)

найти файл start.cpp и в нём закомментировать строку

//g_Snow.Draw();

Но если делать более изящно, то лучше сделать так:

В класс CD3DGameApp

добавить переменную bool типа

в модуль
start.h

class CD3DGameApp
{
public:

//...

bool			m_b_Show_2d_visual_effects;

а в модуле

start.cpp

Добавить такие строки кода -



CD3DGameApp::CD3DGameApp() //в данный метод
{

//...

//после строки
	m_bPauseMusic = true;
//добавляем
	m_b_Show_2d_visual_effects = false;


void CD3DGameApp::LoadParams() //в данный метод
{
//после строки
	g_MusicThemes.m_iPlayMode = m_iMusicPlayMode;
//добавляем
	int i_show_2d_visual_effects = (int)floor(m_Params->GetValue(3));
		if ( i_show_2d_visual_effects < 1 )
			m_b_Show_2d_visual_effects = false;
		else
			m_b_Show_2d_visual_effects = true;
			
			
			


HRESULT CD3DGameApp::Render(IDirect3DDevice9* pd3dDevice) //в данный метод
{

//...
//добавляем
if ( m_b_Show_2d_visual_effects )
//перед строкой
	g_Snow.Draw();
	
	
	
HRESULT CD3DGameApp::FrameMove()) //в данный метод
{

//...
//добавляем
if ( m_b_Show_2d_visual_effects )
//перед строкой
	g_Snow.FallSnow();



В файле

путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\base\params.txt

добавляем в самый конец новую строчку -

show_2d_visual_effects=1; //отображать 2d визуальные эффекты 0 - нет, 1 - да

Сохраняем изменения.

Компилируем приложение. Запускаем.

Теперь при каждом старте

путь_к_папке_исходных_файлов_fgg\fgg\fgg\start.exe

Можно через файл

путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\base\params.txt

задавать режим отображения визуальных эффектов.

Если зададим 0 - сохраним изменения и затем запустим
путь_к_папке_исходных_файлов_fgg\fgg\fgg\start.exe

увидим что 2d визуальный эффект падающий снег - пропал.

Закроем приложение по нажатию клавиши [Esc].

Теперь в файле
путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\base\params.txt

зададим как
show_2d_visual_effects=1; //отображать 2d визуальные эффекты 0 - нет, 1 - да

Сохраняем, снова запускаем
путь_к_папке_исходных_файлов_fgg\fgg\fgg\start.exe

2d снег стал виден снова.

Таким образом Мы вынесли настройку отображения 2d визуальных эффектов в виде
падающего снега в файл настроек
путь_к_папке_исходных_файлов_fgg\fgg\fgg\Media\base\params.txt

fle game generator - 4 вида 3d кубиков



3) У нас слишком много летающих кубиков. Сделаем, чтобы летал всего 1.

Вы можете ради интереса сами поискать это в коде, но если не получилось
разобраться, то вот правильный ответ:

В модуле start.cpp летящие кубики отображаются строкой кода
g_Snow3D.Draw();

объект g_Snow3D

приведет нас к классу CSnow3D,
который объявлен в модуле snow_3d.h

Найдите модуль snow_3d.h в папке scripts/snow в окне Solution explorer

fle game generator - модуль snow_3d.h в папке scripts/snow в окне Solution explorer

строка кода
#define Snow3dParamsFile L"\\Media\\textures\\snow\\3d\\params.txt"

говорит сама за себя.

Т. е. в папке \\Media\\textures\\snow\\3d\\ есть файл

params.txt

где нужно всего лишь указать 1 параметр

вместо
snows_num=500; //число снежинок

написать как
snows_num=2; //число снежинок

Сохранить изменения в файле и перезапустить приложение

путь_к_папке_исходных_файлов_fgg\fgg\fgg\start.exe

Почему я указал 2 снежинки, т. е. 2 кубика, а не 1 ?

Дело в том, что 1 кубик Вы можете даже не увидеть. Особенно если
он движется где-то под плоскостью пола.

А вот 2 - увидите наверняка !

fle game generator - 1 летящий красный кубик

Чтобы нам не терять постоянно кубики из виду - сделаем так, чтобы
они перестали двигаться.

Это уже чуть сложнее.

Но я надеюсь вы разберетесь.

А вот и ответ:

В модуле start.cpp анимация происходит в методе
CD3DGameApp::FrameMove

Там же есть строчка кода
g_Snow3D.FallSnow();

Уже знакомый вам объект g_Snow3D

не правда ли ?

Остается заглянуть в реализацию метода

CSnow3D::FallSnow

в модуле snow_3d.cpp

вместо строк


//анимируем падение снежинок

		pSnow->m_Position.x += g_fElapsedTime * pSnow->Speed.x;
		pSnow->m_Position.y += g_fElapsedTime * pSnow->Speed.y;
		pSnow->m_Position.z += g_fElapsedTime * pSnow->Speed.z;
		


написать


		pSnow->m_Position.x += g_fElapsedTime * pSnow->Speed.x * 0.0f;
		pSnow->m_Position.y += g_fElapsedTime * pSnow->Speed.y * 0.0f;
		pSnow->m_Position.z += g_fElapsedTime * pSnow->Speed.z * 0.0f;		
		


То есть вся суть в том, что поскольку скорость перемещений кубика
по осям x, y, z всегда будет равна 0, то кубик никуда
перемещаться не будет.

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

модуль start.cpp

метод
CD3DGameApp::Render

строку RenderFloor(pd3dDevice);

закомментировать

//RenderFloor(pd3dDevice);

Сохраняем изменения, выполняем сборку проекта, запускаем.

Получаем результат.

fle game generator - 1 неподвижный красный кубик

Правда когда пол отображается существенно легче ориентироваться
в 3d пространстве перемещая и вращая камеру.

А когда вокруг черным черно - то Вы легко можете заблудиться
в сцене.

Так что если Вы не увидели кубик, тогда вам лучше снова
сделать пол отображаемым и постараться выставить камеру
так, чтобы увидеть его.

Далее мы разберемся как выставить в сцене камеру в некоторое
начальное состояние, чтобы не искать кубик вращениями и
перемещениями камеры, а он сразу
был бы перед глазами.

Во время наших манипуляций с камерой (когда мы перемещаем
или вращаем камеру в сцене) можно выводить
на экран значения ключевых координат камеры.

Клавиши и мышь управляют нашей камерой и это описано
в readme.txt который есть внутри папки

путь_к_папке_исходных_файлов_fgg\fgg\fgg\

[Enter] - переключение в полноэкранный/оконный режим

[Esc] - выход из приложения


клавиша [F] - скрыть/показать FPS и другие параметры.

клавиша [M] - скрыть/показать кнопку настроек экрана.

клавиша Пробел - следующая заставка

клавиша [R] - включить/остановить воспроизведение музыки

клавиша [T] - перейти к воспроизведению следующего муз. трека
(независимо от заданного режима воспроизведения музыки).


Управление камерой:

левая или правая или средняя кнопка мыши + перемещение указателя мыши - изменение угла
обзора из камеры.

Клавиши управления курсором - основные или на доп. клавиатуре или
W, A, S, D - перемещение в 3d пространстве.

Q, E - перемещение камеры вверх/вниз
Но сначала, как и обещал узнаем все-таки как сделать наши
кубики вращающимися.

Это делается достаточно просто -

в модуле snow_3d.cpp

находим метод
CSnow3D::Draw



открываем его реализацию в модуле
models.cpp

CD3D9Mesh::Draw(

там есть метод

CD3D9Mesh::SetupMatrices(

который собственно и отвечает за все трансформации
летающих 3d кубиков - вращения, перемещения, изменения масштаба.



вместо строки
m_f_Y_Rotation = 0.0f;

создать строку
m_f_Y_Rotation += g_fElapsedTime * 1.0f;

Сохранить изменения. Собрать и запустить приложение.

Чтобы 3d кубики было лучше видно я сделал снова, чтобы кубики
перемещались и изменил для них такие параметры



путь_к_папке_исходных_файлов_fgg\fgg\fgg\\Media\textures\snow\3d\params.txt

сделал 10 кубиков и крупнее их размер
snows_num=10; //число снежинок

min_snow_scale=100.0f; //мин. размер снежинок
max_snow_scale=100.0f; //макс. размер снежинок



Вот что у меня получилось

fle game generator - вращающиеся кубики

Анимация будет не такой прерывистой как на показанном рисунке,
а более плавной.

Просто для демонстрации я использовал gif изображение
содержащее всего 4 кадра анимации.

megainformatic live chat
Начать беседу
X
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
megainformatic Размещение баннерной рекламы у нас
Время загрузки: 0,0939