<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkcAQH86eip7ImA9WhRUGUg.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102</id><updated>2012-01-31T03:14:01.112+06:00</updated><category term="C++" /><category term="PHP" /><category term="Python" /><category term="Alternativa3D" /><category term="У-шу" /><category term="Flash" /><category term="CSS" /><category term="Разное" /><category term="Статьи" /><category term="HTML" /><category term="Программирование" /><category term="Mozilla Firefox" /><category term="Игры" /><category term="Molehill" /><category term="Забавно" /><category term="JavaScript" /><category term="Java" /><category term="Android" /><category term="django" /><category term="IDE" /><category term="Познавательно" /><title>Угол Эйлера</title><subtitle type="html">О платформе Flash, трехмерной графике, веб-разработке, разработке игр и многом другом...</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://pixxxxxel.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://pixxxxxel.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>72</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/fcHuU" /><feedburner:info uri="blogspot/fchuu" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;A0YBSXY-cCp7ImA9WhRVEEw.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-6797728737127450582</id><published>2012-01-08T16:36:00.001+06:00</published><updated>2012-01-08T16:39:18.858+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-08T16:39:18.858+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Android" /><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><title>Календарь с циклической разметкой на Flash под Android</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2012/01/flash-android.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/6797728737127450582?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/6797728737127450582?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/05pwobCqbcY/flash-android.html" title="Календарь с циклической разметкой на Flash под Android" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-KVInhvAhhcM/TwltuXj0n_I/AAAAAAAAAGU/Fh_dapMoSLU/s72-c/EmployeeCalendar.png" height="72" width="72" /><thr:total>0</thr:total><content type="html">

Написал календарь с разметкой по дням на ActionScript 3. Для тех, у кого график работы 2 через 2, например. Т.е. пользователь выставляет нужный ему режим, день отсчета и может посмотреть работает или нет он в любой день, согласно выбранного графика.
С версии 4 замечательный бесплатный редактор кода FlashDevelop для ActionScript стал поддерживать деплой для Андроид и iOS. Решил попробовать 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7TUj33qWHVlvMkQttTk44W2H3kA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7TUj33qWHVlvMkQttTk44W2H3kA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7TUj33qWHVlvMkQttTk44W2H3kA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7TUj33qWHVlvMkQttTk44W2H3kA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/05pwobCqbcY" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2012/01/flash-android.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUEQX49eip7ImA9WhRTFkU.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-6644565274549423260</id><published>2011-11-07T18:28:00.001+06:00</published><updated>2011-11-07T23:33:20.062+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-07T23:33:20.062+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><title>Хранение булевых полей в базе данных</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/11/blog-post.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/6644565274549423260?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/6644565274549423260?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/Ds6Sdj4a-t0/blog-post.html" title="Хранение булевых полей в базе данных" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>0</thr:total><content type="html">Очень часто встречается ситуация, когда в базе данных необходимо хранить уйму битовых полей. Банальными решениями, конечно же, будут вставка необходимых колонок, несущих булевый смысл или хранение строки с перечислением всех необходимых сущностей. Но оба решения видятся мне громоздкими, не производительными и не гибкими. Более элегантным видится хранение булевых значений в одном целочисленном 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/b1vFO-WXukDQziHhj2ivL-cbSWs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b1vFO-WXukDQziHhj2ivL-cbSWs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/b1vFO-WXukDQziHhj2ivL-cbSWs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b1vFO-WXukDQziHhj2ivL-cbSWs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/Ds6Sdj4a-t0" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/11/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEMRns8eip7ImA9WhdVEU4.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-8154543106656167851</id><published>2011-09-16T07:31:00.002+06:00</published><updated>2011-09-16T07:31:27.572+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-16T07:31:27.572+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><title>Класс обновления приложения AIR</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/09/air.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/8154543106656167851?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/8154543106656167851?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/8g0Q9heVjBU/air.html" title="Класс обновления приложения AIR" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>0</thr:total><content type="html">Часто встречаю вопрос типа "Как сделать обновление приложения AIR". Не проверял, есть ли в сети что-то подобное (наверняка есть), а просто решил выложить свой класс для этой процедуры. Он далеко не отшлифован и функционал предполагалось значительно расширить. Но сразу не сделал, а времени на это уже нет. Поэтому, кому понравится, может расширять и модернизировать этот класс без всяческих 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QuM4eWxJNz6uTCOSzPi4mtdwE-8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QuM4eWxJNz6uTCOSzPi4mtdwE-8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QuM4eWxJNz6uTCOSzPi4mtdwE-8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QuM4eWxJNz6uTCOSzPi4mtdwE-8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/8g0Q9heVjBU" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/09/air.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUEQno8cCp7ImA9WhdWFEQ.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-200316719552955060</id><published>2011-09-08T21:36:00.000+06:00</published><updated>2011-09-08T21:36:43.478+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-08T21:36:43.478+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><title>Использование компилятора ресурсов pyrcc4 в PyQt</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/09/pyrcc4-pyqt.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/200316719552955060?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/200316719552955060?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/fvyqdpOd21A/pyrcc4-pyqt.html" title="Использование компилятора ресурсов pyrcc4 в PyQt" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>0</thr:total><content type="html">При использовании замечательной питоновской библиотеки PyQT для компиляции ресурсов (например файлов изображений) в код модуля применяется утилита, поставляемая вместе с библиотекой. Находится она в папке bin (а иногда в корне библиотеки) и называется pyrcc4.В нашем случае давайте скомпилируем в ресурс файл изображения Qt-logo.png. Для этого выполним несколько несложных действий.Создадим файл 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7hPEsl01LZ_kLgLumcMj873Z5PE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7hPEsl01LZ_kLgLumcMj873Z5PE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7hPEsl01LZ_kLgLumcMj873Z5PE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7hPEsl01LZ_kLgLumcMj873Z5PE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/fvyqdpOd21A" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/09/pyrcc4-pyqt.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcAQX4-fip7ImA9WhdXFk4.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-8335425017258690165</id><published>2011-08-29T23:12:00.001+06:00</published><updated>2011-08-29T23:14:00.056+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-29T23:14:00.056+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript" /><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><title>Функция форматирования числа на Javascript</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/08/javascript.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/8335425017258690165?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/8335425017258690165?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/DM_X5JmN2K8/javascript.html" title="Функция форматирования числа на Javascript" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>0</thr:total><content type="html">Мой велосипед форматирования числа на Javascript.

&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&amp;gt;
&amp;lt;title&amp;gt;Format Number Example&amp;lt;/title&amp;gt;
&amp;lt;script type="text/javascript"&amp;gt;

/**
 * Это - та самая функция форматирования числа.
 * Start
 */
function 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eXDrKimQzgbJycIkvIAaYsFR2JU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eXDrKimQzgbJycIkvIAaYsFR2JU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eXDrKimQzgbJycIkvIAaYsFR2JU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eXDrKimQzgbJycIkvIAaYsFR2JU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/DM_X5JmN2K8" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/08/javascript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYNQncycSp7ImA9WhdXFUk.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-2425243088606883106</id><published>2011-08-28T20:29:00.002+06:00</published><updated>2011-08-28T20:36:33.999+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-28T20:36:33.999+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="IDE" /><category scheme="http://www.blogger.com/atom/ns#" term="PHP" /><title>ZendDebugger для PHP в Aptana</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/08/zenddebugger-php-aptana.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/2425243088606883106?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/2425243088606883106?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/dSKkNnT-fFw/zenddebugger-php-aptana.html" title="ZendDebugger для PHP в Aptana" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>0</thr:total><content type="html">Озадачился подключением debugger'а для PHP под Винду. Выбор пал на ZendDebugger. А так как я разрабатываю больше под Aptana и основательно уже успел к ней привыкнуть, то решил и поддержку PHP встроить туда же и ZendDebugger настроить там же, благо Aptana без всяких проблем поддерживает и PHP и ZendDebugger. Но дебаггер требует небольшой дополнительной настройки. Как настроить найти можно, 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Y0UKYyzPuNKnCyyRh8ZOWLh8blQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Y0UKYyzPuNKnCyyRh8ZOWLh8blQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Y0UKYyzPuNKnCyyRh8ZOWLh8blQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Y0UKYyzPuNKnCyyRh8ZOWLh8blQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/dSKkNnT-fFw" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/08/zenddebugger-php-aptana.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04HRnw8eyp7ImA9WhdSFU0.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-7317894603744551299</id><published>2011-07-24T18:18:00.000+06:00</published><updated>2011-07-24T18:18:57.273+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-24T18:18:57.273+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Alternativa3D" /><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><title>Walking camera для Alternativa3D 8</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/07/walking-camera-alternativa3d-8.html#comment-form" title="Комментарии: 12" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/7317894603744551299?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/7317894603744551299?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/uV_Egu_ZVqk/walking-camera-alternativa3d-8.html" title="Walking camera для Alternativa3D 8" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>12</thr:total><content type="html">После большого количества вопросов о том, как сделать перемещаемую пользователем камеру для Альтернативы, а иногда и такую, которая не "проходит сквозь стены", я решил всё же написать простенький пример. Для облегчения понимания максимально упростил логику и оставил только показательный функционал — "навернуть" всегда можно.
Также, пример рассчитан на новую, 8-ю версию "движка" Альтернативы, 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zbzTRxWmI8nfBwh96m2cnYN1MhY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zbzTRxWmI8nfBwh96m2cnYN1MhY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zbzTRxWmI8nfBwh96m2cnYN1MhY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zbzTRxWmI8nfBwh96m2cnYN1MhY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/uV_Egu_ZVqk" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/07/walking-camera-alternativa3d-8.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ABQHs5fyp7ImA9WhdSFE4.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-1177360979317566529</id><published>2011-07-23T21:42:00.000+06:00</published><updated>2011-07-23T21:42:31.527+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-23T21:42:31.527+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><category scheme="http://www.blogger.com/atom/ns#" term="Molehill" /><title>Flash3D, Molehill. Модель освещения по Фонгу на AGAL</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/07/flash3d-molehill-agal_23.html#comment-form" title="Комментарии: 7" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/1177360979317566529?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/1177360979317566529?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/32sssrev-IE/flash3d-molehill-agal_23.html" title="Flash3D, Molehill. Модель освещения по Фонгу на AGAL" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-hg5Yz8A_NaU/Tirqzrd3sEI/AAAAAAAAAEA/WmainFTOQvk/s72-c/phong.jpg" height="72" width="72" /><thr:total>7</thr:total><content type="html">


В прошлый раз для освещения 3-мерной сцены применялась модель освещения по Блинну. В этот раз применим модель Фонга и добавим цвет блику и окружающему освещению (ambient). Модель Фонга отличается лишь тем, что коэффициент для отраженного света вычисляется по-другому. При его расчете учитываются все 3 вектора: нормаль вершины, положение наблюдателя и положение источника света.
Вершинный шейдер:
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dCPiAmxrnfkmj6OJIMV_9wI4OTw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dCPiAmxrnfkmj6OJIMV_9wI4OTw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dCPiAmxrnfkmj6OJIMV_9wI4OTw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dCPiAmxrnfkmj6OJIMV_9wI4OTw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/32sssrev-IE" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/07/flash3d-molehill-agal_23.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MAQ3Yzeyp7ImA9WhdSEk4.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-7038889410763999231</id><published>2011-07-21T12:12:00.002+06:00</published><updated>2011-07-21T15:10:42.883+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-21T15:10:42.883+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><category scheme="http://www.blogger.com/atom/ns#" term="Molehill" /><title>Flash3D, Molehill. Добавляем блик от источника света на AGAL</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/07/flash3d-molehill-agal_21.html#comment-form" title="Комментарии: 2" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/7038889410763999231?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/7038889410763999231?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/Ejnym1VAaek/flash3d-molehill-agal_21.html" title="Flash3D, Molehill. Добавляем блик от источника света на AGAL" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-fyxTXtvXHq8/TifCSmKC8HI/AAAAAAAAAD8/8Ib_gJTQPpk/s72-c/SpecularLighting.jpg" height="72" width="72" /><thr:total>2</thr:total><content type="html">


В прошлой записи к 3-мерной сцене было добавлено рассеянное (диффузное) освещение. Но можно сделать освещение объектов чуть более естественным, добавив к нему блик от источника света. Сделать это не сложно. Следует лишь дополнительно учитывать положение наблюдателя в пространстве. Зная положение наблюдателя и положение источника света можно найти биссектрису между этими направлениями. 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OVg8wOqq4hOqN1f3Qi3JkWKDrsU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OVg8wOqq4hOqN1f3Qi3JkWKDrsU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OVg8wOqq4hOqN1f3Qi3JkWKDrsU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OVg8wOqq4hOqN1f3Qi3JkWKDrsU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/Ejnym1VAaek" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/07/flash3d-molehill-agal_21.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ICRXwyeyp7ImA9WhdSEk4.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-8087580142430395059</id><published>2011-07-20T21:57:00.004+06:00</published><updated>2011-07-21T15:12:44.293+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-21T15:12:44.293+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><category scheme="http://www.blogger.com/atom/ns#" term="Molehill" /><title>Flash3D, Molehill. Шейдер диффузного освещения на AGAL</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/07/flash3d-molehill-agal.html#comment-form" title="Комментарии: 6" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/8087580142430395059?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/8087580142430395059?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/rXjmGDaypkk/flash3d-molehill-agal.html" title="Flash3D, Molehill. Шейдер диффузного освещения на AGAL" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-jHkm6BxmFNs/TibwEziclcI/AAAAAAAAAD4/YwF-zA9NozM/s72-c/diffuseLighting.jpg" height="72" width="72" /><thr:total>6</thr:total><content type="html">


В своей записи Flash3D, Molehill. Добавляем трехмерный объект я рассказал как добавлять трехмерный объект во Flash-приложение, использующее новый API для работы с ресурсами графического адаптера Molehill. Но объект был раскрашен текстурой без учета освещения. Здесь я расскажу как добавить освещение, пока простое, рассеянное.
Я немного рефакторил код приложения по сравнению с предыдущими 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mkwjjdDN-coe1CmMm4ok_L60P2o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mkwjjdDN-coe1CmMm4ok_L60P2o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mkwjjdDN-coe1CmMm4ok_L60P2o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mkwjjdDN-coe1CmMm4ok_L60P2o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/rXjmGDaypkk" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/07/flash3d-molehill-agal.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMHQH88fip7ImA9WhZaFkw.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-7192983806145562359</id><published>2011-07-02T19:30:00.000+06:00</published><updated>2011-07-02T19:30:31.176+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-02T19:30:31.176+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Игры" /><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><title>Классический пазл Пятнашки на ActionScript3</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/07/actionscript3.html#comment-form" title="Комментарии: 4" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/7192983806145562359?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/7192983806145562359?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/XDNsPSrKVhA/actionscript3.html" title="Классический пазл Пятнашки на ActionScript3" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>4</thr:total><content type="html">Давно лежал, мозолил глаза, незаконченный проект — игра «Пятнашки». Решил доделать (в простом виде). Можно, конечно, и таблицу результатов перенести на сервер, и различных "плюшек" в арте добавить. Но решил сильно не заморачиваться, а сделать по минимуму, а время уделить чему-нибудь более интересному.

    
    


&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6cY4pxHzF3fLvRAnSJtQvD-MuLc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6cY4pxHzF3fLvRAnSJtQvD-MuLc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6cY4pxHzF3fLvRAnSJtQvD-MuLc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6cY4pxHzF3fLvRAnSJtQvD-MuLc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/XDNsPSrKVhA" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/07/actionscript3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8ARns4fCp7ImA9WhZaFEk.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-4264950452394579921</id><published>2011-06-28T14:07:00.004+06:00</published><updated>2011-06-30T21:47:27.534+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-30T21:47:27.534+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><title>Компонент Table на ActionScript 3</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/06/table-actionscript-3.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/4264950452394579921?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/4264950452394579921?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/tNr94j3oWZQ/table-actionscript-3.html" title="Компонент Table на ActionScript 3" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>0</thr:total><content type="html">Потребовалось отображать табличные данные на чистом as3 без использования компонентов Flex (типа DataGrid) или Flash. Как обычно, первым на очереди был гугл. Но, к своему удивлению, ничего бесплатно-приемлемого найти не удалось. Изваял свой. Старался сделать компонент максимально простым в использовании. Можно загрузить swc-файл и подключать к любому проекту. Версия Flash-плеера не меньше 10-й. 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ALGxbdIOMd3UMnvZZzYQjj2jXfM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ALGxbdIOMd3UMnvZZzYQjj2jXfM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ALGxbdIOMd3UMnvZZzYQjj2jXfM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ALGxbdIOMd3UMnvZZzYQjj2jXfM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/tNr94j3oWZQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/06/table-actionscript-3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUFR389cSp7ImA9WhZUGEw.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-6844212093322557499</id><published>2011-06-12T00:45:00.001+06:00</published><updated>2011-06-12T00:50:16.169+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-12T00:50:16.169+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="IDE" /><category scheme="http://www.blogger.com/atom/ns#" term="C++" /><title>Настройка C++ проекта в Eclipse CDT с MinGW</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/06/c-eclipse-cdt-mingw.html#comment-form" title="Комментарии: 5" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/6844212093322557499?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/6844212093322557499?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/3wFCLzhMb9Q/c-eclipse-cdt-mingw.html" title="Настройка C++ проекта в Eclipse CDT с MinGW" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>5</thr:total><content type="html">Ради интереса решил попробовать писать код C/C++ в Eclipse. Надо сказать задача оказалась не из "установил и заработало". По крайней мере под Винду и для компилятора MinGW. Но и слишком сложной процедуру тоже не назовешь. Пришлось немного посерфить по Инету в поисках ответов на вопросы. И, надо сказать, всех ответов в одном месте я не нашел. А некоторых не нашел совсем. Поэтому поделюсь своим 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IrZ1oHcMdqiP40oQJK_nKgyoCEY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IrZ1oHcMdqiP40oQJK_nKgyoCEY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IrZ1oHcMdqiP40oQJK_nKgyoCEY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IrZ1oHcMdqiP40oQJK_nKgyoCEY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/3wFCLzhMb9Q" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/06/c-eclipse-cdt-mingw.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUNRno4cCp7ImA9WhZUF04.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-8495018907370794320</id><published>2011-06-11T02:17:00.001+06:00</published><updated>2011-06-11T02:38:17.438+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-11T02:38:17.438+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="C++" /><title>Подключение фреймворка для учебных примеров OpenGL и DirectX</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/06/opengl-directx.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/8495018907370794320?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/8495018907370794320?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/3e-_XxyL96k/opengl-directx.html" title="Подключение фреймворка для учебных примеров OpenGL и DirectX" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>0</thr:total><content type="html">В предыдущей моей записи я описал набор модулей на C++, используя которые можно заниматься только API рисования, не заморачиваясь на создании окна и подсоединении выбранного API. Причем, можно создавать код и под OpenGL, и под DirectX отдельно, при желании переключаясь между ними.
Теперь расскажу как создать проект с классами в wxDev-С++. Проекты в Visual Studio потребуют очень похожих действий.

&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2w51DgWXoS7wxDzeW4ORzjFNeEQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2w51DgWXoS7wxDzeW4ORzjFNeEQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2w51DgWXoS7wxDzeW4ORzjFNeEQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2w51DgWXoS7wxDzeW4ORzjFNeEQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/3e-_XxyL96k" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/06/opengl-directx.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUCSXs_cCp7ImA9WhZUF04.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-2738924774787796856</id><published>2011-06-10T14:22:00.003+06:00</published><updated>2011-06-11T02:37:48.548+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-11T02:37:48.548+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="C++" /><title>Фреймворк для учебных примеров OpenGL и DirectX на C++</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/06/opengl-directx-c.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/2738924774787796856?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/2738924774787796856?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/bit825JCbi4/opengl-directx-c.html" title="Фреймворк для учебных примеров OpenGL и DirectX на C++" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>0</thr:total><content type="html">

В своё время, выполняя множество уроков по OpenGL и DirectX под Windows у меня выработалась определенная схема построения приложения. И только недавно до меня дошло, что можно объединить функционал создания окна Windows и для OpenGL и для DirectX! Пошерстив Интернет на предмет данной темы, у меня не получилось найти нечто подобное, поэтому сделал свой "велосипед" и выкладываю результат для 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tb2uXHvaIJ4M1vWyYPREWw5kYGA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tb2uXHvaIJ4M1vWyYPREWw5kYGA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tb2uXHvaIJ4M1vWyYPREWw5kYGA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tb2uXHvaIJ4M1vWyYPREWw5kYGA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/bit825JCbi4" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/06/opengl-directx-c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEDQXg_eSp7ImA9WhdTGE8.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-5782051909750102790</id><published>2011-06-05T21:39:00.002+06:00</published><updated>2011-07-16T19:57:50.641+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-16T19:57:50.641+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="C++" /><title>Пример реализации паттерна Singleton на C++</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/06/singleton-c.html#comment-form" title="Комментарии: 1" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/5782051909750102790?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/5782051909750102790?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/ZIzu0uvd6_U/singleton-c.html" title="Пример реализации паттерна Singleton на C++" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>1</thr:total><content type="html">Паттерн программирования Singleton в C++ можно реализовать по крайней мере двумя способами: использованием только статических членов (методов) и реализацией единственного экземпляра класса. Первый способ более тривиален и менее гибок. Поэтому представлю второй. Итак, пример файла определения синглтон-класса:

/* Файл Singleton.h */
#include &amp;lt;iostream&amp;gt;

class Singleton
{
    public:
        static
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/59xCEBJz-KgsIy-NgJpfkrucCEY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/59xCEBJz-KgsIy-NgJpfkrucCEY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/59xCEBJz-KgsIy-NgJpfkrucCEY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/59xCEBJz-KgsIy-NgJpfkrucCEY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/ZIzu0uvd6_U" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/06/singleton-c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIGR3g7cSp7ImA9WhZUEEQ.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-2615240583950171839</id><published>2011-06-03T14:11:00.001+06:00</published><updated>2011-06-03T15:15:26.609+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-03T15:15:26.609+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript" /><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><title>Генератор паролей на jQuery</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/06/jquery.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/2615240583950171839?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/2615240583950171839?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/vTwBXKmccIc/jquery.html" title="Генератор паролей на jQuery" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>0</thr:total><content type="html">Сделал свой генератор паролей на jQuery. Не спрашивайте зачем :). Генерирует пароли любой длины. Можно управлять содержанием символов в пароле: включать/выключать цифры, большие латинские, маленькие латинские, специальные символы.

/**
 * Password Generator plugin for jQuery
 *
 * Copyright (c) 2011 .p.i.x.e.l. (www.pixel-tyumen.ru)
 *
 * Dual licensed under the MIT and GPL licenses:
 * http://
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CVTdZCM0HrnMhABJeETLHd2nR1U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CVTdZCM0HrnMhABJeETLHd2nR1U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CVTdZCM0HrnMhABJeETLHd2nR1U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CVTdZCM0HrnMhABJeETLHd2nR1U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/vTwBXKmccIc" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/06/jquery.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEADR389eSp7ImA9WhZVGE8.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-2391623122009758166</id><published>2011-05-31T12:17:00.001+06:00</published><updated>2011-05-31T12:19:36.161+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-31T12:19:36.161+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="django" /><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><title>CAPTCHA для Django. Альтернативный вариант.</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/05/captcha-django_31.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/2391623122009758166?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/2391623122009758166?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/Tk0Oc8n68Ms/captcha-django_31.html" title="CAPTCHA для Django. Альтернативный вариант." /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>0</thr:total><content type="html">В предыдущей моей записи я рассказал как можно написать свою CAPTCHA для Django. Недостатком этого способа мне видится то, что до функций обработки запросов ("вьюх") не всегда есть доступ, точнее он не всегда оправдан. Например, когда "вьюхи" находятся в сторонних приложениях. Эту проблему можно решить несколькими способами. Один из них — использовать Middleware.
Алгоритм решения по началу похож.
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fTF87XLc6GIsYtpdKhjBUh3uWLg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fTF87XLc6GIsYtpdKhjBUh3uWLg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fTF87XLc6GIsYtpdKhjBUh3uWLg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fTF87XLc6GIsYtpdKhjBUh3uWLg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/Tk0Oc8n68Ms" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/05/captcha-django_31.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cBRHs_eSp7ImA9WhZVF0k.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-4664239327236571471</id><published>2011-05-30T15:10:00.005+06:00</published><updated>2011-05-30T15:50:55.541+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-30T15:50:55.541+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="django" /><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Python" /><title>Как сделать Captcha для Django</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/05/captcha-django.html#comment-form" title="Комментарии: 1" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/4664239327236571471?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/4664239327236571471?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/aK1NZqZRaMY/captcha-django.html" title="Как сделать Captcha для Django" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>1</thr:total><content type="html">Посмотрев примеры CAPTCHA для Django в сети, не нашел понравившийся. Поэтому решил набросать не сложную свою. Для подключения понадобится в файле urls.py прописать паттерн:

(r'^captcha/$', 'здесь_полный_путь_к_вьюхе.render_captcha'),

Далее прописываем саму "вьюху":

from django.http import HttpResponse
import Image, ImageFont, ImageDraw
import random

def render_captcha(request):
    
    def 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GXAZ93jeFVLKlMrLiLsG5QUYK7g/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GXAZ93jeFVLKlMrLiLsG5QUYK7g/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GXAZ93jeFVLKlMrLiLsG5QUYK7g/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GXAZ93jeFVLKlMrLiLsG5QUYK7g/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/aK1NZqZRaMY" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/05/captcha-django.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIFR3g5fSp7ImA9WhZWE0o.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-3525934074119105213</id><published>2011-05-14T17:34:00.001+06:00</published><updated>2011-05-14T18:01:56.625+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-14T18:01:56.625+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Игры" /><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><title>Тестирование алгоритма поиска пути A* для Flash</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/05/flash.html#comment-form" title="Комментарии: 7" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/3525934074119105213?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/3525934074119105213?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/R5i10pycnHM/flash.html" title="Тестирование алгоритма поиска пути A* для Flash" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>7</thr:total><content type="html">При тестировании алгоритма поиска пути A* попутно получилось создать некий прототип игры-стрелялки. Но суть не в этом. Предполагалась возможность использования этого алгоритма в 3D-шутере (FPS) для Flash. Предположительно на базе 3-мерного движка для Flash Alternativa3D 7 или 8 версии. Важно было оценить саму возможность и примерную ресурсоемкость алгоритма.
Что можно сказать про возможность? 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LA8ybwc-Y_lHk0Jnj4wm6hqcwYQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LA8ybwc-Y_lHk0Jnj4wm6hqcwYQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LA8ybwc-Y_lHk0Jnj4wm6hqcwYQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LA8ybwc-Y_lHk0Jnj4wm6hqcwYQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/R5i10pycnHM" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/05/flash.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YBRXY_cCp7ImA9WhZUGEU.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-4917444061802794697</id><published>2011-05-05T17:14:00.008+06:00</published><updated>2011-06-12T20:32:34.848+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-12T20:32:34.848+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Игры" /><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><title>Несложная стрелялка, вид сверху</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/05/blog-post.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/4917444061802794697?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/4917444061802794697?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/efxgYl79Xhg/blog-post.html" title="Несложная стрелялка, вид сверху" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>0</thr:total><content type="html">Знакомился с алгоритмом A* (алгоритм поиска пути) и попутно получилась несложная стрелялка (можно видеть в следующей записи).
Создал простенький редактор сеток, чтобы оперативно генерить различные виды поля боя.
То есть сейчас вполне реально быстро создать массу разнообразных уровней, продумать геймплей, отрегулировать игровой баланс, ввести дополнительные фичи. Но это уже должно быть задачей 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XeK6bBPrhR0zDWy4KdhrKkrJCz0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XeK6bBPrhR0zDWy4KdhrKkrJCz0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XeK6bBPrhR0zDWy4KdhrKkrJCz0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XeK6bBPrhR0zDWy4KdhrKkrJCz0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/efxgYl79Xhg" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/05/blog-post.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0INSHYzcCp7ImA9WhZUEEU.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-837087223338945801</id><published>2011-04-24T19:09:00.003+06:00</published><updated>2011-06-03T14:26:39.888+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-03T14:26:39.888+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Игры" /><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Alternativa3D" /><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><title>Первый уровень Doom2 на Alternativa3D 7</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/04/doom2-alternativa3d-7.html#comment-form" title="Комментарии: 8" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/837087223338945801?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/837087223338945801?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/dMc4sgD6gsQ/doom2-alternativa3d-7.html" title="Первый уровень Doom2 на Alternativa3D 7" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>8</thr:total><content type="html">Подключил к своему контроллеру FirstPersonController определение столкновений. Теперь персонаж может ходить по уровням не опасаясь болезни прохождения сквозь стены. Добавил прыжок клавишей Space.
Для тестирования функционала решил построить подобие первого уровня игры Doom 2. Пришлось вспомнить давно забытые навыки 3d-моделирования. Уровень смоделил достаточно быстро, а вот текстурировать 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vIS5bn9z9tebMsA-QzUuwJiYTpA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vIS5bn9z9tebMsA-QzUuwJiYTpA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vIS5bn9z9tebMsA-QzUuwJiYTpA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vIS5bn9z9tebMsA-QzUuwJiYTpA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/dMc4sgD6gsQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/04/doom2-alternativa3d-7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8DR385eCp7ImA9WhZQFkg.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-4039782964628419614</id><published>2011-04-19T15:55:00.004+06:00</published><updated>2011-04-24T19:14:36.120+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-24T19:14:36.120+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Alternativa3D" /><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><title>Определение столкновений в Alternativa3D 7</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/04/alternativa3d-7_19.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/4039782964628419614?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/4039782964628419614?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/xlAoz09MJGo/alternativa3d-7_19.html" title="Определение столкновений в Alternativa3D 7" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>0</thr:total><content type="html">Определение столкновений трехмерных объектов при разработке большинства трехмерных анимированных, а тем более интерактивных сцен, является одним из важнейших аспектов. API Alternativa3D 7 предоставляет один из вариантов решения этой проблемы посредством класса EllipsoidCollider. В этом моем уроке вы можете познакомиться с технологией ближе.
Ну, а на мувике можно видеть процесс вычисления 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7sLieCgOcMXZykspKmGiKZsADhQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7sLieCgOcMXZykspKmGiKZsADhQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7sLieCgOcMXZykspKmGiKZsADhQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7sLieCgOcMXZykspKmGiKZsADhQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/xlAoz09MJGo" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/04/alternativa3d-7_19.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEABQ3w5eCp7ImA9WhZQEk4.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-6096322385197994927</id><published>2011-04-15T17:26:00.003+06:00</published><updated>2011-04-19T23:05:52.220+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-19T23:05:52.220+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Alternativa3D" /><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><title>Стрельба по бутылкам в Alternativa3D 7</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/04/alternativa3d-7.html#comment-form" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/6096322385197994927?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/6096322385197994927?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/9raIc8SEmjM/alternativa3d-7.html" title="Стрельба по бутылкам в Alternativa3D 7" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>0</thr:total><content type="html">Немного подправил FirstPersonController и реализовал стрельбу, что вылилось в простенький шутер. Перемещаться можно с помощью клавиш WSAD или стрелочками. Обзор мышью включается/отключается клавишей L. Если вдруг :) закончатся бутылки — жмем R.

    
    


&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yKCdlqgJDyNA-wjwRlVDfqdx478/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yKCdlqgJDyNA-wjwRlVDfqdx478/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yKCdlqgJDyNA-wjwRlVDfqdx478/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yKCdlqgJDyNA-wjwRlVDfqdx478/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/9raIc8SEmjM" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/04/alternativa3d-7.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMMRX84eSp7ImA9WhZQEk0.&quot;"><id>tag:blogger.com,1999:blog-8600514341152508102.post-1591890223105367555</id><published>2011-04-14T11:34:00.002+06:00</published><updated>2011-04-19T15:48:04.131+06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-19T15:48:04.131+06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Программирование" /><category scheme="http://www.blogger.com/atom/ns#" term="Alternativa3D" /><category scheme="http://www.blogger.com/atom/ns#" term="Flash" /><title>Контролер FirstPersonController для Alternativa3D 7</title><link rel="replies" type="text/html" href="http://pixxxxxel.blogspot.com/2011/04/firstpersoncontroller-alternativa3d-7.html#comment-form" title="Комментарии: 2" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/1591890223105367555?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8600514341152508102/posts/default/1591890223105367555?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/fcHuU/~3/pIOt-46CGH0/firstpersoncontroller-alternativa3d-7.html" title="Контролер FirstPersonController для Alternativa3D 7" /><author><name>Ivan Sergeev</name><uri>https://profiles.google.com/108837713801788023781</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh5.googleusercontent.com/-ZffTwy69IM8/AAAAAAAAAAI/AAAAAAAAAFg/8HJVLYh_Nbk/s512-c/photo.jpg" /></author><thr:total>2</thr:total><content type="html">Реализовал контроллер вида от первого лица на API Alternativa3D 7. По небольшому миру с маркерами можно перемещаться с помощью клавиш WSAD или стрелочками. Обзор мышью включается/отключается клавишей L.
Назначение пользовательских клавиш, реализация прыжка, приседания, регулировка чувствительности мыши — это уже "дело техники".

    
    


&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/rdBJZNets8Se03FhYOI94Rd0PIA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rdBJZNets8Se03FhYOI94Rd0PIA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/rdBJZNets8Se03FhYOI94Rd0PIA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/rdBJZNets8Se03FhYOI94Rd0PIA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/fcHuU/~4/pIOt-46CGH0" height="1" width="1"/&gt;</content><feedburner:origLink>http://pixxxxxel.blogspot.com/2011/04/firstpersoncontroller-alternativa3d-7.html</feedburner:origLink></entry></feed>

