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


Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
24 марта 2019 18:29
Вход Регистрация Забыли пароль ?

megainformatic - уроки delphi directx 8.1 3d - Основы Вращений и Управления камерой
        [статьи] [как создать игру ну, погоди!] [к содержанию]    
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
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

megainformatic - Fez игра для PC 2013

megainformatic - Дневник памяти - фильм 2004

megainformatic - Scooter - The night - Video and Lyrics - Скутер - Ночь - Видео и лирика

megainformatic - Если всё же неудача

megainformatic - Смерть или искупление или избавление

megainformatic - По ту сторону

cj megainformatic - музыкальный альбом БЕСКОНЕЧНОЕ ДВИЖЕНИЕ ОЖИДАНИЕ И ДЕЙСТВИЕ

megainformatic - Костя Коробкин - Секретный проект - интерактивный комикс

megainformatic - Основы анимации во флеш на примере анимирования простейшей окружности

megainformatic - Парсер сайтов Введение

megainformatic - Я пишу музыку для себя и для продажи

megainformatic - Статьи на околомузыкальные темы - осень 2014 часть 1

megainformatic - рассказ - Чужие воспоминания - автор Синицин Андрей - 24.09.2014

megainformatic - Сайты живущие вне поисковых систем. Есть ли такие и как их найти ?

megainformatic - Game craft - проект разработки игровых и мультимедийных проектов

megainformatic - Game craft - моделируем scv

megainformatic - Game craft - моделируем scv - шаг 1 (часть 2)

megainformatic - Game craft - моделируем scv - шаг 2 (часть 3)

megainformatic - Game craft - Наложение текстуры на модель робота scv (часть 4)

megainformatic - Game craft - Прорисовка текстуры робота SCV шаг 5

megainformatic - Game craft - Экспорт модели из 3ds max в формат X

megainformatic - Game craft - отображение scv модели в формате x в d3d9-приложении

megainformatic - Game craft - управление игрой от Direct Input в d3d9 - приложении

подробнее

Использование регулярных выражений в 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").

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

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



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

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


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




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

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

подробнее

     
 

Как создать игру ? - Программируем сами.

Рассмотрение программирования игр под DirectX 9c на C++ с использованием среды разработки MSVS 2005 или выше.

 
     
 

Продолжаем цикл статей на тему программирования игр.

Здесь Мы рассмотрим кратко что нужно для начала работы и как начать освоение этой обширной темы.

 
     
 

Вам потребуется:

- среда разработки Microsoft Visual Studio 2005 или выше;

- DirectX SDK Aug 2008 или выше;

- хотя бы минимальные знания английского языка, а еще лучше запастить программой словарем-переводчиком для англо-русского/русско-английского перевода - X-translator, Lingvo или что-то еще.

 
     
  Когда всё это будет у Вас под рукой и полностью установлено и готово к работе можно приступать.  
     
  Самый первый шаг.  
     
 

Сначала нужно установить MSVS (Microsoft Visual Studio), затем DirectX SDK.

В этому случае в процессе установки DX SDK будет подготовлена среда для программирования под DirectX и многие настройки, особенно отладку DX-приложений Вам не нужно будет перенастраивать вручную.

 
     
  Несколько уроков на тему создания игр  
     
 

Сегодня наша цель:

- познакомиться с основами работы в среде MSVS;

- создать первое простейшее игровое приложение;

- попробовать модифицировать его для проверки и отладки;

 
     
 

Запускаем MSVS

Выбираем пункт меню File > Open > Project Solution

Находим папку с примерами из DirectX SDK -

C:\DXSDK_Aug2008\Samples

На Вашем компьютере этот путь может быть другим, если Вы при установке DirectX SDK задали другой диск и другую папку, так что вначале уточните, куда Вы установили DX SDK !

 
     
 

А мы откроем самый первый пример -

C:\DXSDK_Aug2008\Samples\C++\Direct3D\Tutorials\Tut01_CreateDevice

 
     
  И попробуем его изучить  
     
  После открытия этого проекта в окне Solution Explorer дважды щелкаем файл CreateDevice.cpp, чтобы воочию увидеть этот магический cpp код.  
     
  Найдите функцию wWinMain  
     
  находим функцию wWinMain  
     
  можете щелкнуть данное изображение, чтобы увидеть его в полномасштабном варианте, затем вернитесь на данную страницу  
     
  Рассмотрим этот код по-порядку  
     
  INT WINAPI wWinMain( HINSTANCE hInst, HINSTANCE, LPWSTR, INT )
{
// Register the window class
WNDCLASSEX wc =
{
sizeof( WNDCLASSEX ), CS_CLASSDC, MsgProc, 0L, 0L,
GetModuleHandle( NULL ), NULL, NULL, NULL, NULL,
L"D3D Tutorial", NULL
};
RegisterClassEx( &wc );

// Create the application's window
HWND hWnd = CreateWindow( L"D3D Tutorial", L"D3D Tutorial 01: CreateDevice",
WS_OVERLAPPEDWINDOW, 100, 100, 300, 300,
NULL, NULL, wc.hInstance, NULL );

// Initialize Direct3D
if( SUCCEEDED( InitD3D( hWnd ) ) )
{
// Show the window
ShowWindow( hWnd, SW_SHOWDEFAULT );
UpdateWindow( hWnd );

// Enter the message loop
MSG msg;
while( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}

UnregisterClass( L"D3D Tutorial", wc.hInstance );
return 0;
}

 
     
 

Данная функция wWinMain - является стартовой функцией работы любого игрового приложения, судя по названию Win - сокращение от Windows и Main - главная.

Префикс w означает, что данная функция использует строковые параметры вида WideChar, т. е. двубайтовые строки.

 
     
  Когда Вы будете запускать данное приложение операционная система в первую очередь передаст управление этой функции - wWinMain.  
     
  Я думал писать игры сложно, можете сказать Вы, а оказывается всё начинается с какой-то маленькой функции wWinMain.  
     
  Могу ответить Вам одно - всё в этом мире начинается с малого, мой друг !  
     
 

Что же происходит внутри этой функции ?

// Register the window class - регистрируем класс окна приложения
WNDCLASSEX wc =
{
sizeof( WNDCLASSEX ), CS_CLASSDC, MsgProc, 0L, 0L,
GetModuleHandle( NULL ), NULL, NULL, NULL, NULL,
L"D3D Tutorial", NULL
};
RegisterClassEx( &wc );

 
     
 

Вы наверное уже догадались, что строки начинающиеся с символа двойной наклонной черты

//

представляют из себя комментарии и исполнимым кодом не являются.

Всё остальное представляет действительно исполнимый код, который в процессе компиляции превращается в исполнимый машинный код, доступный для обработки центральным процессором CPU Вашего и любого другого ПК.

 
     
 

Мы создаем переменную wc с типом WNDCLASSEX и заносим в неё значения

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

 

 
     
 

WNDCLASSEX wc;


SecureZeroMemory(&wc, sizeof(wc));


wc.cbSize = sizeof( WNDCLASSEX );
wc.style = CS_CLASSDC;
wc.lpfnWndProc = MsgProc;
wc.cbClsExtra = 0L;
wc.cbWndExtra = 0L;
wc.hInstance = GetModuleHandle( NULL );
wc.hIcon = NULL;
wc.hCursor = NULL;
wc.hbrBackground = NULL;
wc.lpszClassName = L"D3D Tutorial";
wc.lpszMenuName = NULL;

 
     
 

Объявляем переменную wc с типом WNDCLASSEX

SecureZeroMemory - очищаем все поля данной переменной значением ноль.

Далее присваиваем каждому полю данной записи соответствующее значение -

размер записи - получаем при помощи функции sizeof

стиль

оконная процедура MsgProc

Обработчик экземпляра приложения wc.hInstance получаем при помощи функции GetModuleHandle

wc.lpszClassName = L"D3D Tutorial"; - задаем имя класса приложения.

Все остальные поля выставляются либо в 0, либо в NULL.

 
     
  0 в случае числовых полей, NULL - в случае полей-указателей.  
     
  RegisterClassEx - выполняем регистрацию класса с указанными параметрами в системе.  
     
  CreateWindow - создаем окно приложения  
     
 

if( SUCCEEDED( InitD3D( hWnd ) ) ) - инициализируем приложение и если всё прошло без ошибок -

ShowWindow( hWnd, SW_SHOWDEFAULT );
UpdateWindow( hWnd );
- показываем окно на экране, выполняем его перерисовку.

 
     
 

// Enter the message loop
MSG msg;
while( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}

запускаем бесконечный цикл приема и обработки сообщений системы,

в случае если функция GetMessage вернет FALSE цикл будет остановлен и выполнена строка следующая за строкой цикла -

UnregisterClass( L"D3D Tutorial", wc.hInstance );
return 0;
- выполняется освобождение класса приложения в системе, выполняется возврат из функции со значением кода возврата равным 0

 
     
  [далее]  
     
     
     
подробнее

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

Рисование персонажей (урок 6)

 

Рисование и придумывание персонажей очень интересное и увлекательное дело. Вам понадобятся сведения из предыдущих уроков, если Вы еще новичек. Что нужно для того, чтобы нарисовать вот такую картинку:

Приступим к решению этой задачи средствами программы Corel Draw (CD).

Замечание: в данном уроке содержатся сведения ориентированные на Corel Draw 11, но общие принципы создания подобны для любых версий!

1.    Запустите программу Corel Draw и создайте новое изображение File > New. Заметим, что по умолчанию, при запуске выводится окно в котором можно сразу же выбрать создание нового изображения.

2.    По умолчанию размер Вашего изображения – формат A4, т.е. 297х210 мм. Попробуем задать иной размер, например, пусть мы рисуем заставку 1024х768 пиксель. На панели свойств (Property bar) выберите единицы измерения pixels (пиксели):

 

3.    В полях Papers width and height задайте требуемый размер: 1024 х 768

 

4.    Ваш лист станет нужного размера. Приступим к созданию персонажа, расположенного на переднем плане. Тело персонажа представлено совокупностью из нескольких эллипсов. Для создания эллипса на панели инструментов (Tool bar) нажмите кнопку Ellipse tool:

 

5.    Переведите курсор на холст и изобразите эллипс сначала щелкнув, а затем удерживая левую кнопку мыши.

 

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

 

7.    Не совсем удобно делать это с выбранным инструментом Эллипс. Просто может получиться еще один эллипс, а этого нам пока еще не надо. Вместо инструмента Эллипс выберите инструмент Выбор (Pick tool)

 

8.    Используя этот инструмент Вы можете простым щелчком выбирать векторные объекты из которых и строятся все изображения в CD. Наведите курсор на контур созданного Вами эллипса и щелкните мышью.

 

9.    Вы заметите, что по периметру появились маленькие черные квадратики. Это захваты для масштабирования объекта. Наведя курсор на один из этих захватов сожмите эллипс.

 

10.          Нарисуйте еще эллипсы и разместите их слегка с перекрытием:

 

11.          Сплавим полученные фигуры в единый цельный объект, для этого инструментом Выбор обведите курсором вокруг созданных объектов тем самым выделив их все и используйте команду: Arrange > Shaping > Weld.

12.          Используем для объекта текстурную заливку, обратите внимание, объект должен быть выделен, иначе выводится окно предлагающее изменить данное свойство для всех вновь создаваемых объектов. Наведите курсор мыши на инструмент Fill Tool и нажмите маленькую черную стрелку в правом нижнем углу кнопки инструмента. Появится выбор разных инструментов этой группы

 

13.          В открывшемся диалоговом окне выберите группу Sample 5 и текстуру Curved spaces. Нажмите ОК.

14.          Вы получите тело персонажа. Вид текстуры можно видоизменить. Для этого сначала Вам понадобится отобразить окно так называемого причаливающего (Docker) типа для свойств объекта: щелкните правой кнопкой по объекту тела персонажа и выберите пункт Properties. В правой части окна программы откроется соотвествующее причаливающее окно:

 

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

 

16.          Используя кнопку Edit в данном окне можно видоизменять текстуру воздействуя на параметры алгоритма создающего изображение текстуры. Для начала попробуйте нажимать кнопку Preview (см. рисунок после шага 12). Каждый раз генерируется новый образец со случайно заданными параметрами. Если самостоятельно изменить какие-либо параметры и нажать Preview, то при создании текстуры будут использованы заданные параметры.

17.          Попробуем изменить теперь толщину и цвет обводки объекта тела персонажа. В окне свойств объекта выберите вкладку перо (Outline). В данном окне измените толщину и цвет линии обводки (абриса) контура.

 

Тело персонажа готово. Используя снова инструмент Эллипс создайте персонажу глаза.

 

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

 

Затем Вы выделяете обе фигуры и производите операцию логического вычитания: Arrange > Shaping > Back Minus Front (или Front Minus Back). Отличие заключается в том, какая фигура расположена поверх другой (Front), т.е. на переднем плане или (Back) на заднем плане.

 

Положение любого объекта по глубине (Передний план, Задний план и т.п.) можно задавать командой: щелчок ПРАВОЙ кнопкой мыши по центру (крестик) объекта и выбор Order (Порядок) > и соответствующая команда (To Front, To Back …).

 

Полученный объект можно масштабировать, раскрашивать, вообщем использовать в качестве бровей и рта персонажа. Для того, чтобы дублировать объект дабы не повторять проделанное заново просто Edit > Duplicate – дублируйте объект и получите второй. Заливка сплошным цветом – Fill Color Dialog на панели инструментов или кнопка Uniform fill на вкладке Fill окна свойств объекта (Property docker).

 

Персонаж готов.

 
     
  [к содержанию] [назад] [далее]  
     
     
подробнее

Отзывы оставленные пользователями как впечатление о проделанной работе или о том, что понравилось на сайте.

megainformatic » 08 авг 2010, 07:51

Привет Вам путник виртуального пространства интернета !

Если Вам понравился (или не понравился) наш форум, сайт, какой-то урок, статья, продукт или что-либо еще -

напишите пожалуйста здесь свой отзыв.

Это будет полезно по-многим причинам -

- для других посетителей - они узнают Ваше мнение о сайте;
- для нас - мы сможем улучшать наш сайт;
- для Вас - Вы внесете собственный вклад в развитие сайта;
Спасибо за проявленное внимание !!!



Смиренный Алексей 25.12.2012

Здравствуйте! Не мог удержаться от слов благодарности за создание такого нужного ресурса. Занимаюсь HTML и CSS, недавно подключил к этому делу FLASH, и совсем недавно решил подключить технологию 3D. (не плохо было бы подключить еще JS и PHP для полноты инстрементария, но с базовыми понятиями программирования совсем туго, т.к. во времена когда я учился и было время, веб-технологии не существовало как таковой, а программированием занимались какие-то далекие и не понятные буржуи, ошибался). В поиске по сети нашел разные ресурсы с далекими, непонятными и пространными объяснениеми для тех, кто и так все (или почти) все знает. Очень сложно было найти информацию для тех кто хочет узнать. Так было пока не нарвался на ваще творение. Сейчас изучаю уроки по созданию модели девушки, все очень доходчиво и понятно, даже не требуется обращение к другим ресурсам, т.е. на вашем сайте я вижу 100% необходимой информации. Сделано все очень доступно и понятно. Очень хотелось бы, чтоб ваш ресурс не угасал, а только развивался. (на лету съел несколько уроков, насколько хватило ОЗУ моего не сильного менталитета. Очень хочется съесть все и побыстрее, но увы оперативка мозга не бесконечна. Пока потихоньку откладываю полученную инфу на долговременную память, подкрепляя примерами.) Огроменное Спасибо Вам за ваши труды и старания! Поздравляю с натупающим Новым Годом! , желаю новых достижений, успехов, интересных работ, хороших зарплат и просто радости и здоровья в наступающем году! Не оставляйте ваших работ, развивайтесь.

================ МОЙ ОТВЕТ =============

Спасибо, Алексей !

Я очень рад.

С НОВЫМ ГОДОМ ВАС !!!

С НОВЫМ СЧАСТЬЕМ !!!

http://megainformatic.ru/?page=335

Приглашаю принять участие в развитии моего ресурса.

Вас ждут новые уроки и новые горизонты.



================================

отзыв оставил - Жиляев Александр - 30.09.2010 в 08:26
admin » 27 янв 2011, 10:08

30.09.2010 в 08:26

Помог устранить проблемы с сайтом. Высокий профессионализм. Рекомендую.

http://www.weblancer.net/projects/220838.html

============
отзыв оставил - Жиляев Александр

http://www.vivaartgallery.ru/

ICQ: 595242965

Skype: vivaart1

================================

Вадим Тиханов [vadim747] - [16.11.2010 | 11:31]
admin » 27 янв 2011, 10:10

Вадим Тиханов [vadim747] - http://www.free-lance.ru/users/vadim747

Делал для меня логотип, быстро и добросовестно, РЕКОМЕНДУЮ!

http://www.free-lance.ru/users/megainformatic/opinions/

Леонард Токарев [Leonard1] [10.12.2010 | 12:39]
admin » 27 янв 2011, 10:12

Леонард Токарев [Leonard1] [10.12.2010 | 12:39]
http://www.free-lance.ru/users/Leonard1

Нужно было поправить гостевую книгу на моем сайте, lambox.ru .Все было проделано быстро и профессионально! Все рекомендации и просьбы учтены, цена\качество в превосходном соотношении у данного программиста! Рекомендую!

http://www.free-lance.ru/users/megainformatic/opinions/

================================

Николай Николай [EUSrussia] [14.12.2010 | 20:20]
admin » 27 янв 2011, 10:12

Николай Николай [EUSrussia] [14.12.2010 | 20:20]
http://www.free-lance.ru/users/EUSrussia

Оживлял (верстал) для меня сайт cardcar.ru быстро профессионально качественно. Если есть идея как приблизительно должно работать то этот специалист поможет вам реализоваться самым оптимальным способом. Всем рекомендую!!! СПАСИБО

http://www.free-lance.ru/users/megainformatic/opinions/

================================

Генадий Малахов [oblivioncet] [24.12.2010 | 19:23]
admin » 27 янв 2011, 10:13

Генадий Малахов [oblivioncet] [24.12.2010 | 19:23]
http://www.free-lance.ru/users/oblivioncet

Андрей – это специалист на все руки, сначала было задание – дизайн, потом верстка.
Но потом он согласился на PHP программирование, проект очень серьезный, без преувеличения!
Андрей адекватный, на 100% честный и очень отзывчивый человек. Пишу это не потому что это положительный отзыв, а потому что это действительно так.
Ещё раз огромное спасибо!

http://www.free-lance.ru/users/megainformatic/opinions/

================================

Михаил Евров [Viziteur] [31.12.2010 | 12:27]
admin » 27 янв 2011, 10:15

Михаил Евров [Viziteur] [31.12.2010 | 12:27]

http://www.free-lance.ru/users/Viziteur

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

http://www.free-lance.ru/users/megainformatic/opinions/

================================

Очерет Евгений (eugene) 8.02.2011 в 14:28
admin » 09 фев 2011, 09:52

Очерет Евгений (eugene) 8.02.2011 в 14:28

Перенос сайта с самописного движка на Joomla
http://www.weblancer.net/projects/245665.html

оценка: 10 баллов

Отлично справился с задачей, хотя при переносе сайта и возникло множество сложностей, все проблемы по моим просьбам терпеливо устранял до тех пор, пока не довели сайт до ума.
Побольше бы таких терпеливых работников!

http://www.weblancer.net/users/megainformatic/reviews/

================================

Отзыв оставила Ткаченко Наталья (ntcity)
suhantsev_sergey » 25 фев 2011, 10:18

25.02.2011 09:24

Очень приятно было работать с Андреем, профессионализм на высоком уровне. Кроме основной выполненой работы, бонусом получили массу рекомендаций и разъяснений о дальнейшей работе с сайтом.

http://lider-in.ru

============
отзыв оставила - Ткаченко Наталья (ntcity) - http://www.weblancer.net/users/ntcity/

http://www.weblancer.net/users/megainformatic/reviews/117615.html

================================

Отзыв оставил: Александр Dondya [ADpro]
megainformatic » 21 июн 2011, 12:08

Александр Dondya [ADpro] [21.06.2011 | 12:41]

http://www.free-lance.ru/users/ADpro

(+)
Строго положительный отзыв. Грамотная работа. Оперативные исправления. Молодец Андрей. Спасибо за выполненный заказ. ВСЕМ РЕКОМЕНДУЮ К СОТРУДНИЧЕСТВУ!

http://www.free-lance.ru/users/megainformatic/opinions/?from=frl

Андрей: Мне тоже было приятно поработать с Александром

================================

Re: Отзывы
admin » 22 июл 2011, 13:13

http://www.free-lance.ru/users/khodzhakov - отзыв оставил Руслан Ходжаков - 22.07.2011 13:03

Нанимал Андрея для осуществления доработок интернет-магазина www.falogina.ru. Проект: www.free-lance.ru/project... Работать с Андреем понравилось, выполнил обязательства четко в озвученный срок и за оговоренные деньги. Андрей скрупулезно и быстро реагировал работой на мои комментарии, пожелания и правки. Выполняя проект, делал полезные доработки для сайте, которые даже не были предусмотрены в ТЗ, но верные с логическо-бизнесовой точки зрения. Например, в картинке шапки у нас есть контактные данные, типа скайпа, аськи, имейла. Хоть и не давал такого задания, Андрей добавил автоматический звонок/письмо, при клике на контакт. За это – отдельное спасибо Андрею. Он также сам предложил цвет для окантовки сайта, который мне очень понравился, и я его использую.

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

Руслан Ходжаков

ссылка на отзыв - http://www.free-lance.ru/users/megainformatic/opinions/?from=emp&sort=1&period=0#op_head

================================

Максим Федоров [dFedor1] 24.08.2011 14:16
admin » 26 авг 2011, 19:43

Максим Федоров [dFedor1] - http://www.free-lance.ru/users/dFedor1 24.08.2011 14:16

ссылка на отзыв - http://www.free-lance.ru/users/megainformatic/opinions/?from=emp&period=0#op_head

Отличный исполнитель. Заказывал доработки сайта. Сделал все согласно ТЗ и в оговоренный срок. Планирую и дальше продолжать сотрудничество с Андреем

================================

Re: Отзывы
Kirill_Korobov » 01 ноя 2011, 10:02

Мне очень повезло , что на мой запрос о доработке интернет - магазина ответил Андрей. Скурпулезное изучение пожеланий и требований заказчика. Четкая и ответственная работа и всегда на связи. Не часто встречаются такие исполнители работ!!!

================================

Re: Отзывы
millennium11 » 08 дек 2011, 09:10

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

================================

Web Deluxe 14.12.2011 15:30
admin » 14 дек 2011, 14:34

Отзыв оставил - Web Deluxe 14.12.2011 15:30

http://www.free-lance.ru/users/megainformatic/opinions/?from=emp&sort=1&period=0#op_head

Web Deluxe [WebDeluxe]
Работали над вёрсткой сайта. Остался доволен отношением, стилем работы и адекватностью общения. Рекомендую!

================================

Содержимое данной страницы доступно только зарегистрированным пользователям.



Пожалуйста войдите на сайт - Вход

или пройдите процедуру регистрации - Регистрация

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

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



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


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